报错一
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf
hadoop-env.sh中HADOOP_CLASSPATH为:
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HBASE_HOME/lib/*
关掉集群,重启即可
报错二
在启动metastore服务时报错
Caused by: ERROR XJ040: Failed to start database 'metastore_db' with class loader sun.misc.Launcher$AppClassLoader@7cca494b, see the next exception for details.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(Unknown Source)
... 61 more
Caused by: ERROR XSDB6: Another instance of Derby may have already booted the database /data/yzw/formal/handle/hive_sql/run_shell/metastore_db.
原因是因为在开启hive metastore服务前先开启的hiveserver2,生成了derby文件
1、关掉服务
关掉metastore
关掉hiveserver2
2、删除文件
删除上面报错指定的文件
/data/yzw/formal/handle/hive_sql/run_shell/metastore_db.
删除hive目录下的这两个文件
删除运行启动metastore时目录下的(可能有多个)
看一下其他节点的家目录下是否有这两个文件,也删掉
3、开启metastore服务
hive --service metastore
如果报错误三,就等2分钟就好,有时候反应慢
报错三
Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
开启hive metastore服务即可
hive --service metastore &
报错四
如果用以上方法还是报错,每次启动hive服务都会生成derby.log metastore.db
那就是你的hadoop-env.sh 中的HADOOP_CLASSPATH有问题!!
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HBASE_HOME/lib/*
说明
1、在使用hive的时候,一定要按照如下顺序开启hive服务
【1】hive --service metastore &
【2】hive --service hiveserver2 &
2、metastore记录的是hive元数据和数据的对应关系,默认存derby中,还可以存mysql中
存derby中时,一个目录一份元数据,换个目录你就看不到上个目录的数据库了。