spark整合hive后,hive启动报错:
ls: cannot access /develop/spark/lib/spark-assembly-*.jar: No such file or directory
原因:spark版本升级到2.x以后,原有lib目录下的大JAR包被分散成多个小JAR包,原来的spark-assembly-*.jar已经不存在,所以hive没有办法找到这个JAR包。
解决方法:打开hive下面的bin目录,找到hive文件,编辑hive文件,找到如下一行:
sparkAssemblyPath=`ls ${SPARK_HOME}/lib/spark-assembly-*.jar`
修改为如下一行:
sparkAssemblyPath=`ls ${SPARK_HOME}/jars/*.jar`
发现还是报相同的错误,于是执行which hive,发现在/usr/bin/下,还有一个hive命令,vim /usr/bin/hive,发现里面是执行/usr/lib/hive/bin/hive的shell文件,
于是, vim /usr/lib/hive/bin/hive,将里面的sparkAssemblyPath也改掉,错误解决。
注:以上步骤不用重启hive。
然后和hive交互时,执行bin/hive 命令时:报错:
SemanticException org.apache.hadoop.hive.ql.metadata.HiveException
解决方法:重装hive