![](/img/trans.png)
[英]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.