如何从Beeline或任何JDBC客户端运行Spark作业上的Hive?

时间:2015-07-05 08:17:47

标签: hadoop jdbc apache-spark hive

我正在尝试在Spark查询上运行Hive(使用Spark作为执行引擎进行Hive查询)。我已经在hive-site.xml中设置了它

我已经启动了一个hiveserver2,并尝试使用Beeline在同一台计算机上连接它,如下所示:

$ hiveserver2 &
$ $HIVE_HOME/bin/beeline -u jdbc:hive2://myIP:10000 -e "select count(*) from item;"  

但是工作没有提交,我得到以下的错误

Error: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.spark.SparkTask (state=08S01,code=1)

以下内容适用于Spark上的Hive:

使用Hive CLI:

$ $HIVE_HOME/bin/hive -e "select count(*) from item;"

使用Beeline嵌入模式:

$ $HIVE_HOME/bin/beeline -u jdbc:hive2:// -e "select count(*) from item;"

PS:hive-site.xml包含以下属性:

<property>
<name>hive.execution.engine</name>
<value>spark</value>
</property>

<property>
<name>spark.master</name>
<value>yarn-cluster</value>
</property>

<property>
<name>spark.eventLog.enabled</name>
<value>true</value>
</property>

<property>
<name>spark.eventLog.dir</name>
<value>file:///tmp/spark-events</value>
</property>

<property>
<name>spark.executor.memory</name>
<value>512m</value>
</property>

<property>
<name>spark.serializer</name>
<value>org.apache.spark.serializer.KryoSerializer</value>
</property>

编辑:在日志中找到它:

INFO  [stderr-redir-1]: client.SparkClientImpl (SparkClientImpl.java:run(569)) - ERROR: org.apache.hadoop.security.authorize.AuthorizationException: User: root is not allowed to impersonate anonymous

2 个答案:

答案 0 :(得分:5)

我遇到了与hive-2.0.0和spark 1.4.2一起运行Hive-on-Spark的问题。要克服它,只需将以下属性添加到hadoop配置文件core-site.xml:

<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
 </property>
<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>
祝你好运。

答案 1 :(得分:0)

试试这个

$ $HIVE_HOME/bin/beeline -n <username> -p <password> -u jdbc:hive2://myIP:10000 -e "select count(*) from item;"