报错如下: ls: 无法访问/opt/wdp/spark/lib/spark-assembly-*.jar: 没有那个文件或目录
[root@hrbu30 hive]# hive
ls: 无法访问/opt/wdp/spark/lib/spark-assembly-*.jar: 没有那个文件或目录
Logging initialized using configuration in jar:file:/opt/wdp/hive/lib/hive-common-1.2.2.jar!/hive-log4j.properties
报错原因:
spark1升级到spark2以后,原有lib目录下的大jar包被分散成多个小jar包,原来的spark-assembly-*.jar已经不存在,所以hive没有办法找到这个jar包。简单来讲:新版本的spark,hive没有及时支持更新。
解决办法:
1.进入到hive的lib下面,修改hive启动脚本
[hadoop@hrbu30 hive]$ cd bin/
[hadoop@hrbu30 bin]$ vi hive
找到大约116行,然后修改sparkAssemblyPath=ls ${SPARK_HOME}/lib/spark-assembly-*.jar
为sparkAssemblyPath=ls ${SPARK_HOME}/jars/*.jar
# add Spark assembly jar to the classpath
if [[ -n "$SPARK_HOME" ]]
then
sparkAssemblyPath=`ls ${SPARK_HOME}/lib/spark-assembly-*.jar`
CLASSPATH="${CLASSPATH}:${sparkAssemblyPath}"
fi
# add Spark assembly jar to the classpath
if [[ -n "$SPARK_HOME" ]]
then
#sparkAssemblyPath=`ls ${SPARK_HOME}/lib/spark-assembly-*.jar`
sparkAssemblyPath=`ls ${SPARK_HOME}/jars/*.jar`
CLASSPATH="${CLASSPATH}:${sparkAssemblyPath}"
fi
2.替换之后保存并退出,再次启动hive,就不会报错了