我有一个问题。当我运行我的spark任务时,在本地使用hive-jdbc,我可以连接hive。但是当我在使用spark-submit的集群中运行它时,它失败了。
线程“main”中的异常java.sql.SQLException:无法建立与jdbc的连接:hive2://172.16.28.99:10000 / vdm_da_dev.db:未设置必填字段'client_protocol'! Struct:TOpenSessionReq(client_protocol:null,configuration:{use:database = vdm_da_dev.db})“
客户端为hive-jdbc-1.1.0-cdh5.6.0
,服务器为hive-1.1.0-cdh5.6.0.
但是火花是spark-2.0.0
,/opt/spark/jars
中的hive-jdbc是hive-jdbc-1.2.1.spark2.jar
。
我将其替换为所有节点的hive-jdbc-1.1.0-cdh5.6.0.jar
,但仍然是错误的。
我使用依赖项打包项目,但在spark-submit中,它没有使用它们。 我该怎么办?
拜托,任何人都可以帮助我。非常感谢。
答案 0 :(得分:0)
您可以使用cloudera中的指南来获取其他参数: running spark apps on cloudera
一般来说,spark-submit应该如下:
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
才能使用hive和hive Metastore。
答案 1 :(得分:0)
非常感谢FaigB!
我做了@FaigB告诉我,但我发现依赖类路径中没有依赖jar。
然后我删除了/ opt / spark / jars /中的所有hive依赖jar,并从/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
[spark@d2 jars]$ cp hive-service-1.1.0-cdh5.6.0.jar /opt/spark/jars/
[spark@d2 jars]$ cp hive-cli-1.1.0-cdh5.6.0.jar /opt/spark/jars/
[spark@d2 jars]$ cp spark-hive_2.10-1.5.0-cdh5.6.0.jar /opt/spark/jars/
[spark@d2 jars]$ cp hive-exec-1.1.0-cdh5.6.0.jar /opt/spark/jars/
[spark@d2 jars]$ cp hive-metastore-1.1.0-cdh5.6.0.jar /opt/spark/jars/
[spark@d2 jars]$ cp hive-beeline-1.1.0-cdh5.6.0.jar /opt/spark/jars/