繁体   English   中英

Spark上的蜂巢:失踪<spark-assembly*.jar>

[英]Hive on Spark: Missing <spark-assembly*.jar>

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

我尝试按照Spark上的Hive构建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不会从2.0.0构建spark-assembly.jar ,而是将所有依赖项jar构建到目录$SPARK_HOME/jars

此外,Hive不支持Spark的每个版本,实际上它具有强大的版本兼容性限制,可以在Spark上运行Hive。 取决于您使用的是哪个版本的Hive,您总是可以在Hive的pom.xml文件中找到相应的Spark版本。 对于Hive 2.1.1pom.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

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

  • 由于未能找到slf4f或hadoop相关类而启动Spark Master失败,请运行export SPARK_DIST_CLASSPATH=$(hadoop classpath)并再试一次
  • 无法加载snappy本机库,这是由于类路径中没有snappy依赖,或者hadoop classpath下的snappy lib不是Spark的正确版本。 您可以下载正确版本的$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

找 。 -iname'* spark *'

不会找到任何与火花相关的罐子

但是,我通过mac安装brew安装Hive 2.1.0。 问题还在。

看一下

Spark上的Hive:入门

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM