簡體   English   中英

如何從Beeline或任何JDBC客戶端在Spark作業上運行Hive?

[英]How to run Hive on Spark job from Beeline or any JDBC client?

我正在嘗試在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)

以下在Hive on Spark上運行良好:

使用Hive CLI:

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

使用直線嵌入式模式:

$ $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

我在用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>

祝好運。

嘗試這個

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM