2016-11-09 75 views
0

我有一个问题。当我运行我的火花任务时,使用hive-jdbc在本地,我可以连接配置单元。但是当我在群集中运行它时火花提交,它失败了。如何spark2.0连接到配置单元-jdbc-1.1.0

异常线程 “main” 值java.sql.SQLException:无法建立连接为jdbc:hive2://172.16.28.99:10000/vdm_da_dev.db:必填字段 'client_protocol' 未设置!的结构:TOpenSessionReq(client_protocol:空,配置:{用途:数据库= vdm_da_dev.db})”

客户端是hive-jdbc-1.1.0-cdh5.6.0,并且服务器hive-1.1.0-cdh5.6.0. 但火花是spark-2.0.0,蜂房-JDBC在/opt/spark/jarshive-jdbc-1.2.1.spark2.jar

我与所有节点的hive-jdbc-1.1.0-cdh5.6.0.jar,但还是错了更换。

我包具有相关性的项目,但在火花提交,它并没有使用它们。 我该怎么办它?

请,任何人都可以帮助我。非常感谢。

+0

什么版本是蜂巢的客户端和服务器的蜂巢版本? – FaigB

+0

配置单元客户端版本:hive-jdbc-1.1.0-cdh5.6.0; hive服务器版本:hive-jdbc-1.1.0-cdh5.6.0 一样!当把一个jar无火花任务,只需连接到配置单元,并在服务器中创建一个表,它的成功。 但是当我连接到火花任务中的配置单元时,也使用hive-jdbc,它失败了。 – user7135450

回答

0

非常感谢FaigB!

我做了@FaigB告诉,但我发现在依赖类路径中没有依赖瓶。

然后,我删除了/ opt/spark/jars /中的所有配置单元依赖瓶,并从/opt/cloudera/parcels/CDH-5.6.0-1.cdh5.6.0.p0.45/jars/中复制它们然后我解决了不匹配版本的错误。

就像:

-rw-r--r--. 1 spark spark 138464 8月 19 13:55 hive-beeline-1.2.1.spark2.jar_bk 
-rw-r--r--. 1 spark spark 37995 11月 15 01:00 hive-cli-1.1.0-cdh5.6.0.jar 
-rw-r--r--. 1 spark spark 40817 8月 19 13:55 hive-cli-1.2.1.spark2.jar_bk 
-rw-r--r--. 1 spark spark 11498852 8月 19 13:55 hive-exec-1.2.1.spark2.jar_bk 
-rw-r--r--. 1 spark spark 95006 11月 9 14:59 hive-jdbc-1.1.0-cdh5.6.0.jar 
-rw-r--r--. 1 spark spark 100680 8月 19 13:55 hive-jdbc-1.2.1.spark2.jar_bk 
-rw-r--r--. 1 spark spark 5505200 8月 19 13:55 hive-metastore-1.2.1.spark2.jar_bk 
-rw-r--r--. 1 spark spark 1874242 11月 15 01:00 hive-service-1.1.0-cdh5.6.0.jar 
-rw-r--r--. 1 spark spark 1033763 8月 19 13:55 spark-hive_2.11-2.0.0.jar_bk 
-rw-r--r--. 1 spark spark 1813851 8月 19 13:55 spark-hive-thriftserver_2.11-2.0.0.jar_bk 

[[email protected] jars]$ cp hive-service-1.1.0-cdh5.6.0.jar /opt/spark/jars/ 
[[email protected] jars]$ cp hive-cli-1.1.0-cdh5.6.0.jar /opt/spark/jars/ 
[[email protected] jars]$ cp spark-hive_2.10-1.5.0-cdh5.6.0.jar /opt/spark/jars/ 
[[email protected] jars]$ cp hive-exec-1.1.0-cdh5.6.0.jar /opt/spark/jars/ 
[[email protected] jars]$ cp hive-metastore-1.1.0-cdh5.6.0.jar /opt/spark/jars/ 
[[email protected] jars]$ cp hive-beeline-1.1.0-cdh5.6.0.jar /opt/spark/jars/ 
0

您可以使用指南从Cloudera的附加参数: running spark apps on cloudera

一般火花提交应该是这样的:

spark-submit --class *class_main* \ 
--master yarn \ 
--deploy-mode cluster \ 
--conf "key=value" \ 
--files path_to_spark_conf/hive-site.xml \ 
--jars full_path/addiational_dependecy_jars \ 
app_package.jar 

--jars可能你应该为了与蜂巢工作提供datanucleus-core, datanucleus-rdbms, datanucleus-api-jdo和蜂房Metastore。

+0

非常感谢。 我做到了,如: '/选择/火花/斌/火花提交 --class com.BinlogCombinerZK \ --master纱\ --files /opt/spark/conf/hive-site.xml \ --executor-memory 8G --executor-cores 4 \ --jars /jars/datanucleus-core-3.2.10.jar,/jars/datanucleus-api-jdo-3.2.1.jar,/jars/datanucleus- rdbms-3.2.1.jar \ /home/datadev_nbdata-1.0-SNAPSHOT-executable.jar 60> spark.log' 仍然存在错误。 '造成:TApplicationException:必填字段'client_protocol'未设置! Struct:TOpenSessionReq(client_protocol:null,配置:{use:database = vdm_da_dev.db})' – user7135450

相关问题