首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Hive连接的hive事务属性

使用Hive连接的hive事务属性
EN

Stack Overflow用户
提问于 2015-04-01 19:04:52
回答 1查看 1.5K关注 0票数 0

我试图在hive 0.14中执行Hive ACID事务属性,比如通过Java.I、delete和update,我能够设置必需的ACID事务属性。还可以使用事务属性创建表。但它失败了。下面是示例代码:

代码语言:javascript
复制
public class HiveJdbcClient {
    private static String driverName = "org.apache.hive.jdbc.HiveDriver";

    public static void main(String[] args) throws SQLException {
        try {
            Class.forName(driverName);
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.exit(1);
        }
        Connection con = DriverManager.getConnection("jdbc:hive2://ipaddress:port/default", "user", "password");
        Statement stmt = con.createStatement();

        stmt.execute("set set hive.support.concurrency=true");
        stmt.execute("set hive.enforce.bucketing=true");
        stmt.execute("set hive.exec.dynamic.partition.mode=nonstrict");
        stmt.execute("set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager");
        stmt.execute("set hive.compactor.initiator.on=true");
        stmt.execute("set hive.compactor.worker.threads=2");



        String tableName = "hive_acid_test";

        stmt.execute("drop table if exists " + tableName);


        stmt.execute("create table " + tableName + " (id int, name string,department string) clustered by (department) into 3 buckets stored as orc TBLPROPERTIES   ('transactional'='true')");


        stmt.execute("insert into table hive_acid_test values(1,'jon','sales')");
    }
}

在尝试插入时获得以下异常:

线程“主”org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:296)中的异常: java.sql.SQLException: Error同时处理语句: FAILED: Execution,在promo.hive.sample.HiveJdbcClient.main(HiveJdbcClient.java:49)的org.apache.hadoop.hive.ql.exec.mr.MapRedTask上返回代码1

相同的insert命令是从命令行运行的。请帮我找出问题。

EN

回答 1

Stack Overflow用户

发布于 2015-04-23 08:59:54

我能够重现问题,并检查了蜂窝服务器日志- hiveserver2.log。这是一个已知的问题-- https://issues.apache.org/jira/browse/HIVE-8326,它在Hive1.1版本中得到了修正

问题与您在ACID配置中使用的DbTxManager有关。

错误日志:

代码语言:javascript
复制
java.lang.NullPointerException
        at org.apache.hadoop.hive.ql.lockmgr.DbTxnManager.heartbeat(DbTxnManager.java:254)
        at org.apache.hadoop.hive.ql.exec.Heartbeater.heartbeat(Heartbeater.java:81)
        at org.apache.hadoop.hive.ql.exec.mr.HadoopJobExecHelper.progress(HadoopJobExecHelper.java:242)
        at org.apache.hadoop.hive.ql.exec.mr.HadoopJobExecHelper.progress(HadoopJobExecHelper.java:547)
        at org.apache.hadoop.hive.ql.exec.mr.ExecDriver.execute(ExecDriver.java:435)
        at org.apache.hadoop.hive.ql.exec.mr.MapRedTask.execute(MapRedTask.java:137)
        at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:160)
        at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:85)
        at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1604)
        at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1364)
        at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1177)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1004)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:999)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29398785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档