我有Spark+Hive的工作,是工作得很好。
我正在尝试为本地开发和集成测试配置环境:
docker映像到引导配置单元服务器、元存储等
具有spark环境/本地群集的docker映像
现在我有了docker compose for#1,它运行整个环境(包括hive metastore),我可以用beeline工具连接到这个metastore。
我可以运行我的Spark与docker运行使用图像从#2和它正在运行。
我遇到的问题与配置单元有关。每当作业尝试读取sparkcontext中的表时,它都会失败:
[Error] [JvmBridge] java.lang.NoSuchFieldError: HIVE_STATS_JDBC_TIMEOUT
hadoop:2.7.3 spark:2.4.5 hive metastore jar:2.1.1
spark submit参数(/var/lib是正确的路径):
--conf spark.sql.hive.metastore.version=2.1.1 --conf spark.sql.hive.metastore.jars=/var/lib/*
hive-site.xml(添加到配置单元和spark配置文件夹)
<configuration>
<property><name>hive.metastore.warehouse.dir</name><value>hdfs://localhost:50075</value></property>
<property><name>hive.metastore.uris</name><value>thrift://localhost:9083</value></property>
<property><name>spark.sql.uris</name><value>thrift://localhost:9083</value></property>
<property><name>hive.exec.dynamic.partition.mode</name><value>nonstrict</value></property>
<property><name>hive.exec.dynamic.partition</name><value>true</value></property>
</configuration>
如何揭开这个错误的神秘面纱?
暂无答案!
目前还没有任何答案,快来回答吧!