在配置好hive后启动报错信息如下:
1 [walloce@bigdata-study-104 hive-0.13.1-cdh5.3.6]$ bin/hive 2 3 Logging initialized using configuration in file:/opt/modules/cdh/hive-0.13.1-cdh5.3.6/conf/hive-log4j.properties 4 Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient 5 at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:371) 6 at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:689) 7 at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:633) 8 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 9 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 10 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 11 at java.lang.reflect.Method.invoke(Method.java:606) 12 at org.apache.hadoop.util.RunJar.main(RunJar.java:212) 13 Caused by: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient 14 at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1426) 15 at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.<init>(RetryingMetaStoreClient.java:63) 16 at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:73) 17 at org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.java:2625) 18 at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:2644) 19 at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:365) 20 ... 7 more 21 Caused by: java.lang.reflect.InvocationTargetException 22 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 23 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 24 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 25 at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 26 at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1424) 27 ... 12 more 28 Caused by: MetaException(message:Could not connect to meta store using any of the URIs provided. Most recent failure: org.apache.thrift.transport.TTransportException: java.net.ConnectException: Connection refused 29 at org.apache.thrift.transport.TSocket.open(TSocket.java:185) 30 at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.open(HiveMetaStoreClient.java:351) 31 at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaStoreClient.java:219) 32 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 33 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 34 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 35 at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 36 at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1424) 37 at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.<init>(RetryingMetaStoreClient.java:63) 38 at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:73) 39 at org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.java:2625) 40 at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:2644) 41 at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:365) 42 at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:689) 43 at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:633) 44 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 45 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 46 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 47 at java.lang.reflect.Method.invoke(Method.java:606) 48 at org.apache.hadoop.util.RunJar.main(RunJar.java:212) 49 Caused by: java.net.ConnectException: Connection refused 50 at java.net.PlainSocketImpl.socketConnect(Native Method) 51 at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 52 at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 53 at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 54 at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 55 at java.net.Socket.connect(Socket.java:579) 56 at org.apache.thrift.transport.TSocket.open(TSocket.java:180) 57 ... 19 more 58 ) 59 at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.open(HiveMetaStoreClient.java:398) 60 at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaStoreClient.java:219) 61 ... 17 more
hive的配置hive-site.xml内容如下:
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 3 4 5 <configuration> 6 <property> 7 <name>hive.metastore.warehouse.dir</name> 8 <value>/user/hive/warehouse</value> 9 </property> 10 <property> 11 <name>hive.exec.mode.local.auto</name> 12 <value>true</value> 13 <description> Let Hive determine whether to run in local mode automatically </description> 14 </property> 15 <property> 16 <name>hive.metastore.uris</name> 17 <value>thrift://bigdata-study-104:9083</value> 18 <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description> 19 </property> 20 <property> 21 <name>javax.jdo.option.ConnectionURL</name> 22 <value>jdbc:mysql://bigdata-study-104:3306/hive?createDatabaseIfNotExist=true</value> 23 </property> 24 <property> 25 <name>javax.jdo.option.ConnectionDriverName</name> 26 <value>com.mysql.jdbc.Driver</value> 27 </property> 28 <property> 29 <name>javax.jdo.option.ConnectionUserName</name> 30 <value>root</value> 31 </property> 32 <property> 33 <name>javax.jdo.option.ConnectionPassword</name> 34 <value>123456</value> 35 </property> 36 <!-- 显示表的列名 --> 37 <property> 38 <name>hive.cli.print.header</name> 39 <value>true</value> 40 </property> 41 42 <!-- 显示数据库名称 --> 43 <property> 44 <name>hive.cli.print.current.db</name> 45 <value>true</value> 46 </property> 47 </configuration>
hive的配置文件hive-env.sh的内容如下:
1 # Set HADOOP_HOME to point to a specific hadoop install directory 2 HADOOP_HOME=/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6 3 4 # Hive Configuration Directory can be controlled by: 5 export HIVE_CONF_DIR=/opt/modules/cdh/hive-0.13.1-cdh5.3.6/conf
经过报错信息提示分析,可以看出是因为metastore的原因,解决方案有两种:
1、由于配置好以后,metastore服务没有启动。启动metastore:
bin/hive --service metastore &
2、如果没有用到hive的metastore服务,可以先注释掉,注释代码如下:
<!--<property> <name>hive.metastore.uris</name> <value>thrift://bigdata-study-104:9083</value> <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description> </property>-->
按照以上步骤处理后,重新启动hive,问题即解决。