docker - Spark+Hive 与 Docker 的集成测试
问题描述
我的 Spark+Hive 工作运行良好。
我正在尝试为本地开发和集成测试配置环境:
现在我有 docker-compose for #1 运行整个环境(包括 Hive 元存储),我可以使用直线工具连接到这个元存储。
我可以使用 docker run 使用#2 中的图像运行我的 spark 并且它正在运行。
我遇到的问题与 Hive 配置有关。每当作业尝试读取 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 提交参数(/var/lib 是正确的路径):
--conf spark.sql.hive.metastore.version=2.1.1 --conf spark.sql.hive.metastore.jars=/var/lib/*
hive-site.xml(添加到 Hive 和 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>
如何揭开这个错误的神秘面纱?
解决方案
推荐阅读
- c# - 使用非托管导出将字符串从 C# 返回到 C++ 返回数字
- c++ - 文件存在时,最新检查声称构建输入“丢失”
- opentk - OpenTK 识别 PS4v2 控制器(通过 USB)
- machine-learning - 创建基于 3 列的预测模型
- android - IntentService 使用 NativeScript 和 Angular 处理 FCM
- r - ggplot2中的分组条形图
- qt - 仅从 Qt 中的给定 MIME 类型(无文件本身)获取文件图标
- c - C - 检查系统是否是虚拟机的便捷方法?
- javascript - 在循环中将不同的变量值传递给事件处理程序
- python - PLY - 添加第二条类似行时出现解析错误