首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在添加了对Iceberg的支持后火花壳牌无法工作

在添加了对Iceberg的支持后火花壳牌无法工作
EN

Stack Overflow用户
提问于 2022-04-07 14:02:08
回答 1查看 559关注 0票数 1

我们正在对冰山进行POC测试,并首次对其进行评估。

火花环境:

workers)

  • Spark: spark-3.1.2-bin-hadoop3.2

  • Scala:

  • 独立集群设置(1主服务器和5 2.12.10
  • Java: 1.8.0_321
  • Hadoop: 3.2.0
  • Iceberg 0.13.1

)

正如Iceberg的官方文档中所建议的,为了在shell中添加对Iceberg的支持,我们在启动shell时添加了Iceberg依赖项,如下所示,

代码语言:javascript
复制
spark-shell --packages org.apache.iceberg:iceberg-spark-runtime-3.2_2.12:0.13.1

在使用上面的命令启动Spark之后,我们根本无法使用Spark。对于所有命令(甚至是非Iceberg命令),我们得到的异常如下所示,

代码语言:javascript
复制
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/sql/catalyst/plans/logical/BinaryCommand

下面的简单命令也会引发相同的异常。

代码语言:javascript
复制
val df : DataFrame = spark.read.json("/spark-3.1.2-bin-hadoop3.2/examples/src/main/resources/people.json")
df.show()

在Spark源代码中,BinaryCommand类属于Spark SQL模块,因此尝试在按下面的方式启动shell时显式添加Spark依赖项,但仍然得到相同的异常。

代码语言:javascript
复制
spark-shell --packages org.apache.iceberg:iceberg-spark-runtime-3.2_2.12:0.13.1,org.apache.spark:spark-sql_2.12:3.1.2

当我们正常启动spark-shell 时,即不依赖于冰山,那么它就正常工作了。

任何正确方向的指针对故障排除都会很有帮助。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-08 07:26:08

我们正在使用错误的冰山版本,选择星火3.2冰山罐,但运行Spark3.1。在使用正确的依赖版本(即3.1)之后,我们能够使用Iceberg启动shell。另外,不需要使用包来指定org.apache.spark火花罐,因为所有这些都将在类路径上。

代码语言:javascript
复制
spark-shell --packages org.apache.iceberg:iceberg-spark-runtime-3.1_2.12:0.13.1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71783634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档