1、hive版本 1.2.2太低,hadoop版本 2.7.7
Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:522)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:677)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:621)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.util.RunJar.run(RunJar.java:226)
at org.apache.hadoop.util.RunJar.main(RunJar.java:141)
Caused by: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
解决办法:重新下载高版本的hive:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/
2、从hive下载的tar包里,lib文件目录下缺少mysql连接包
Caused by: org.datanucleus.store.rdbms.connectionpool.DatastoreDriverNotFoundException: The specified datastore driver ("com.mysql.jdbc.Driver") was not found in the CLASSPATH. Please check your CLASSPATH specification, and the name of the driver.
at org.datanucleus.store.rdbms.connectionpool.AbstractConnectionPoolFactory.loadDriver(AbstractConnectionPoolFactory.java:58)
at org.datanucleus.store.rdbms.connectionpool.HikariCPConnectionPoolFactory.createConnectionPool(HikariCPConnectionPoolFactory.java:66)
at org.datanucleus.store.rdbms.ConnectionFactoryImpl.generateDataSources(ConnectionFactoryImpl.java:213)
... 81 more
解决办法:从mysql下载jar包放到hive/lib目录下:https://dev.mysql.com/downloads/connector/j/
3、执行
hive
进入shell页面,执行show databases;报错:org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
(错误信息刷掉了,找一张网图,内容是一样的)
原因:metadata未初始化,需要写进元数据到mysql表
解决方法,执行命令:
如果没设置全局变量就进入hive/bin目录
./hive --service metastore &
如果设置了,直接执行
hive --service metastore &
重新执行命令 hive 进入hive shell,成功!!!