[英]Running spark-submit with --master yarn-cluster: issue with spark-assembly
[英]Hive on Spark: Missing <spark-assembly*.jar>
我正在运行Hive 2.1.1,Spark 2.1.0和Hadoop 2.7.3。
./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不会从2.0.0构建spark-assembly.jar
,而是将所有依赖项jar构建到目录$SPARK_HOME/jars
此外,Hive不支持Spark的每个版本,实际上它具有强大的版本兼容性限制,可以在Spark上运行Hive。 取决于您使用的是哪个版本的Hive,您总是可以在Hive的pom.xml
文件中找到相应的Spark版本。 对于Hive 2.1.1
, pom.xml中指定的spark版本是:
<spark.version>1.6.0</spark.version>
正如您已经知道的那样,您需要在没有蜂巢支持的情况下构建火花。 我不知道为什么但是Hive on Spark - Getting Started中的命令对我不起作用,最后我成功完成了以下命令:
mvn -Pyarn -Phadoop-2.6 -Dscala-2.11 -DskipTests clean package
我之前遇到的其他一些故障排除技巧(希望你不会见面):
export SPARK_DIST_CLASSPATH=$(hadoop classpath)
并再试一次 $SPARK_HOME/lib/
lib并将其放在$SPARK_HOME/lib/
,然后运行export SPARK_DIST_CLASSPATH=$SPARK_HOME/lib/*:$(hadoop classpath)
试。 希望这可能会有所帮助,一切顺利。
是的,他们没有从spark 2.0.0开始构建spark-assembly.jar文件。 jar目录中提供了独立的小jar文件。
https://issues.apache.org/jira/browse/SPARK-11157
https://issues.apache.org/jira/secure/attachment/12767129/no-assemblies.pdf
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.