spark上的配置单元:缺少< spark assembly*.jar>

hjqgdpho  于 2021-06-02  发布在  Hadoop
关注(0)|答案(3)|浏览(622)

我正在运行Hive2.1.1、Spark2.1.0和Hadoop2.7.3。
我试着在spark上构建spark:getting started:
./dev/make-distribution.sh--name“hadoop2 without hive”--tgz“-pyarn,提供hadoop,提供hadoop-2.7,提供parquet”
但是,我在spark目录下找不到任何spark程序集jar文件( find . -name "spark-assembly*.jar" 不返回任何内容)。而不是将Spark组件罐与 HIVE_HOME/lib ,我试过了 export SPARK_HOME=/home/user/spark .
我在beeline中遇到以下配置单元错误:

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装配罐造成的。
我如何构建/在哪里可以找到那些spark程序集jar文件?
如何修复上述错误?
谢谢您!

oug3syen

oug3syen1#

是的,他们没有从spark 2.0.0开始构建spark-assembly.jar文件。jars目录中提供了独立的小型jar文件。
https://issues.apache.org/jira/browse/spark-11157
https://issues.apache.org/jira/secure/attachment/12767129/no-assemblies.pdf

d5vmydt9

d5vmydt92#

找到-在名称“spark
不会给你找到任何与Spark有关的jar
不过,我正在mac上通过brew安装使用hive 2.1.0。问题仍然存在。
看一看
星火Hive:入门

ymdaylpp

ymdaylpp3#

首先,spark不会建立 spark-assembly.jar 从2.0.0开始,但将所有依赖jar构建到目录 $SPARK_HOME/jars 此外,hive并不支持spark的所有版本,实际上它对在spark上运行hive有很强的版本兼容性限制。根据您使用的配置单元的版本,您总能在中找到相应的spark版本 pom.xml Hive的档案。为了 Hive 2.1.1 ,pom.xml中指定的spark版本为: <spark.version>1.6.0</spark.version> 正如你已经知道,你需要建立没有Hive支持Spark。我不知道为什么,但是spark上hive中的命令“入门”对我不起作用,最后我成功地使用了以下命令:

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) 再试一次。
希望这能对你有所帮助,一切顺利。

相关问题