启动hive的时候出现如下错误
[root@Bigdata01 bin]# hive
ls: 无法访问/opt/module/spark/lib/spark-assembly-*.jar: 没有那个文件或目录
20/09/03 20:29:03 WARN conf.HiveConf: HiveConf of name hive.metastore.local does not exist
Logging initialized using configuration in jar:file:/opt/module/hive/lib/hive-common-1.2.1.jar!/hive-log4j.properties
hive (default)>
原因是:
spark升级到spark2以后,原有lib目录下的大JAR包被分散成多个小JAR包,原来的spark-assembly-*.jar已经不存在,所以hive没有办法找到这个JAR包。
解决办法是:修改bin目录下的hive文件
[root@Bigdata01 bin]# vim hive
找到以下内容:
add Spark assembly jar to the classpath
if [[ -n “$SPARK_HOME” ]]
then
sparkAssemblyPath=ls ${SPARK_HOME}/lib/spark-assembly-*.jar
CLASSPATH=" C L A S S P A T H : {CLASSPATH}: CLASSPATH:{sparkAssemblyPath}"
fi
将标红处 修改为:sparkAssemblyPath=
ls ${SPARK_HOME}/jars/*.jar
再次启动
[root@Bigdata01 bin]# vim hive
[root@Bigdata01 bin]# ./hive
20/09/03 20:33:53 WARN conf.HiveConf: HiveConf of name hive.metastore.local does not exist
Logging initialized using configuration in jar:file:/opt/module/hive/lib/hive-common-1.2.1.jar!/hive-log4j.properties
hive (default)>
OK,问题解决。
这也印证了各个软件升级过程中如何涉及到自动联运或者向下兼容的问题。