gpt4 book ai didi

hadoop - Hive on Spark : Missing

转载 作者:可可西里 更新时间:2023-11-01 14:30:28 27 4
gpt4 key购买 nike

我正在运行 Hive 2.1.1、Spark 2.1.0 和 Hadoop 2.7.3。

我尝试按照 Hive on Spark: Getting Started 构建 Spark :

./dev/make-distribution.sh --name "hadoop2-without-hive" --tgz"-Pyarn,hadoop-provided,hadoop-2.7,parquet-provided"

但是,我在 spark 目录下找不到任何 spark-assembly jar 文件(find . -name "spark-assembly*.jar" 没有返回任何内容)。我没有将 spark-assembly jar 链接到 HIVE_HOME/lib,而是尝试了 export SPARK_HOME=/home/user/spark

我在直线中收到以下 Hive 错误:

0: jdbc:hive2://localhost:10000> set hive.execution.engine=spark;
0: jdbc:hive2://localhost:10000> insert into test (id, name) values (1, 'test1');
Error: Error running query: java.lang.NoClassDefFoundError: scala/collection/Iterable (state=,code=0)

我认为错误是由于缺少 spark-assembly jar 造成的。

我如何构建/在哪里可以找到那些 spark-assembly jar 文件?

如何解决上述错误?

谢谢!

最佳答案

首先,Spark不会构建spark-assembly.jar从 2.0.0 开始,但将所有依赖项 jar 构建到目录 $SPARK_HOME/jars

此外,Hive并非支持所有版本的Spark,实际上在Spark上运行Hive有很强的版本兼容性限制。根据您使用的 Hive 版本,您始终可以在 pom.xml 中找到相应的 Spark 版本。 hive 的文件。对于 Hive 2.1.1 , spark version specified in pom.xml是:

<spark.version>1.6.0</spark.version>

如您所知,您需要在没有 Hive 支持的情况下构建 Spark。我不知道为什么,但是 Hive on Spark - Getting Started 中的命令对我不起作用,最后我成功地执行了以下命令:

mvn -Pyarn -Phadoop-2.6 -Dscala-2.11 -DskipTests clean package

以及我之前遇到的其他一些故障排除技巧(希望你不会遇到):

  • 由于找不到 slf4f 或 hadoop 相关类,启动 Spark Master 失败,运行 export SPARK_DIST_CLASSPATH=$(hadoop classpath)再试一次
  • 无法加载 snappy 原生库,这是由于类路径中没有 snappy 依赖,或者 hadoop 类路径下的 snappy 库不是 Spark 的正确版本。您可以下载正确版本的 snappy lib 并将其放在 $SPARK_HOME/lib/ 下, 然后运行 ​​export SPARK_DIST_CLASSPATH=$SPARK_HOME/lib/*:$(hadoop classpath)然后重试。

希望这对您有所帮助,一切顺利。

关于hadoop - Hive on Spark : Missing <spark-assembly*. jar>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42373745/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com