1.运行hive时显示Missing Hive Execution Jar: /usr/hive/hive-0.11.0/bin/lib/hive-exec-*.jar
细细分析这个目录/bin/lib,在hive安装文件夹中这两个目录是并列的,而系统能够找到这样的链接,说明hive在centos系统配置文件中的路径有误,打开 /etc/profile会发现hive的配置路径
修改前:
#HIVE
export HIVE_HOME=$PWD/hive
export PATH=$PATH:$HIVE_HOME/bin
明显可以看出是路径配置的问题,这样的配置系统会在hive安装文件夹中的bin目录下寻找它所需要的jar包,而bin和lib文件夹是并列的,所以我们需要在centos系统配置文件中将hive路径配置为文件夹安装路径,即
修改后:
#HIVE
export HIVE_HOME=$PWD/hive
export PATH=$JAVA_HOME/bin:$PATH:$HIVE_HOME/bin
2. Log4j冲突,由于Hadoop和hive的log4j版本不一致导致
mv log4j-slf4j-impl-2.10.0.jar log4j-slf4j-impl-2.10.0.jar.bak
3.Exception in thread “main” java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
这是因为guava-27.0-jre.jar 包不匹配,把Hadoop和hive中该包取最新的保留
4. 如果启动失败,也可能是权限不够,赋予其更大的权限
sudo chmod -R a+w /home/zl/hadoop-3.0.0/
此外还可能有
hive-site.xml配置不对
jdbc包不匹配
5. Terminal initialization failed; falling back to unsupported
这也是包的问题导致的jline.jar包较老,关即可
6. hive进行版本更换时不需要再进行数据库初始化操作,直接更换后启动hive即可
schematool -dbType mysql -initSchema #这个语句是初次安装hive时设置数据库用的
7.org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !
这个是因为,hive元数据库为启动,进入hive/bin目录下
cd hive/bin
./hive --service metastore &
若执行报错
8. Hive Schema version 3.1.0 does not match metastore’s schema version 1.2.0 Metastore is not upgraded or corrupt
则是因为版本不对,要进入数据库修改
更新完再执行启动操作即可