HIve安装配置常见问题汇总

来源:互联网 发布:网络营销必备软件 编辑:程序博客网 时间:2024/05/22 15:06
问题1:
Caused by: javax.jdo.JDODataStoreException: Required table missing : "`VERSION`" in Catalog "" Schema "". DataNucleus requires this table to perform its persistence operations. Either your MetaData is incorrect, or you need to enable "datanucleus.autoCreateTables"NestedThrowables:org.datanucleus.store.rdbms.exceptions.MissingTableException: Required table missing : "`VERSION`" in Catalog "" Schema "". DataNucleus requires this table to perform its persistence operations. Either your MetaData is incorrect, or you need to enable "datanucleus.autoCreateTables"        at org.datanucleus.api.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:461)        at org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:732)        at org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:752)        at org.apache.hadoop.hive.metastore.ObjectStore.setMetaStoreSchemaVersion(ObjectStore.java:6664)


解决方法:
if ((this.readOnlyDatastore) || (this.fixedDatastore))     {       this.autoCreateTables = false;       this.autoCreateColumns = false;       this.autoCreateConstraints = false;     }     else     {       boolean autoCreateSchema = conf.getBooleanProperty("datanucleus.autoCreateSchema");       if (autoCreateSchema)       {         this.autoCreateTables = true;         this.autoCreateColumns = true;         this.autoCreateConstraints = true;       }       else     {         this.autoCreateColumns = conf.getBooleanProperty("datanucleus.autoCreateColumns");         this.autoCreateTables = conf.getBooleanProperty("datanucleus.autoCreateTables");         this.autoCreateConstraints = conf.getBooleanProperty("datanucleus.autoCreateConstraints");       }   }


   看来关键是 this.readOnlyDatastore        this.fixedDatastore 这2个字段
  而且autoCreateSchema 这个设置为true 就可以决定了其他的设置,所以其他设置在此都无效了
  继续追踪org.datanucleus.store.AbstractStoreManager 发现了这2个字段的设置代码
  this.readOnlyDatastore = conf.getBooleanProperty("datanucleus.readOnlyDatastore");
  this.fixedDatastore = conf.getBooleanProperty("datanucleus.fixedDatastore");  

修改的配置的内容如下
  
 <property>        <name>datanucleus.readOnlyDatastore</name>        <value>false</value>    </property>    <property>         <name>datanucleus.fixedDatastore</name>        <value>false</value>     </property>    <property>         <name>datanucleus.autoCreateSchema</name>         <value>true</value>     </property>    <property>        <name>datanucleus.autoCreateTables</name>        <value>true</value>    </property>    <property>        <name>datanucleus.autoCreateColumns</name>        <value>true</value>    </property>
 
    
问题2:
15/02/04 09:21:14 WARN conf.HiveConf: DEPRECATED: Configuration property hive.metastore.local no longer has any effect. Make sure to provide a valid value for hive.metastore.uris if you are connecting to a remote metastore.15/02/04 09:21:14 WARN conf.HiveConf: HiveConf of name hive.metastore.local does not existLogging initialized using configuration in jar:file:/usr/local/hive/lib/hive-common-0.14.0.jar!/hive-log4j.propertiesException in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rwx--x--x        at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:444)        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:672)        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:616)        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)        at java.lang.reflect.Method.invoke(Method.java:597)        at org.apache.hadoop.util.RunJar.main(RunJar.java:160)Caused by: java.lang.RuntimeException: The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rwx--x--x        at org.apache.hadoop.hive.ql.session.SessionState.createRootHDFSDir(SessionState.java:529)        at org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:478)        at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:430)        ... 7 more



解决方法:
[root@hadoop ~]# hadoop fs -chmod -R 777 /tmp/hive[root@hadoop ~]# hadoop fs -ls /tmpFound 1 itemsdrwxrwxrwx   - root supergroup          0 2015-02-04 08:48 /tmp/hive


问题3:
15/02/04 09:33:13 WARN conf.HiveConf: DEPRECATED: Configuration property hive.metastore.local no longer has any effect. Make sure to provide a valid value for hive.metastore.uris if you are connecting to a remote metastore.15/02/04 09:33:13 WARN conf.HiveConf: HiveConf of name hive.metastore.local does not existLogging initialized using configuration in jar:file:/usr/local/hive/lib/hive-common-0.14.0.jar!/hive-log4j.propertiesException in thread "main" java.lang.RuntimeException: java.net.ConnectException: Call to hadoop/192.168.52.139:9000 failed on connection exception: java.net.ConnectException: Connection refused        at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:444)        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:672)        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:616)        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)        at java.lang.reflect.Method.invoke(Method.java:597)        at org.apache.hadoop.util.RunJar.main(RunJar.java:160)Caused by: java.net.ConnectException: Call to hadoop/192.168.52.139:9000 failed on connection exception: java.net.ConnectException: Connection refused


解决方法:
此问题是因为 hadoop没有启动,启动hadoop后问题解决

问题4:
[root@hadoop ~]# hive15/02/04 09:38:06 WARN conf.HiveConf: DEPRECATED: Configuration property hive.metastore.local no longer has any effect. Make sure to provide a valid value for hive.metastore.uris if you are connecting to a remote metastore.15/02/04 09:38:06 WARN conf.HiveConf: HiveConf of name hive.metastore.local does not existLogging initialized using configuration in jar:file:/usr/local/hive/lib/hive-common-0.14.0.jar!/hive-log4j.propertieshive>



解决方法:
在0.10  0.11或者之后的HIVE版本 hive.metastore.local 属性不再使用。
在配置文件里面:
 
<property> <name>hive.metastore.local</name>  <value>false</value>  <description>controls whether to connect to remove metastore server or open a new metastore server in Hive Client JVM</description></property>

删除掉,再次登录警告就消失了

问题5:
Exception in thread "main" java.lang.RuntimeException: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D        at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:444)        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:672)        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:616)        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)        at java.lang.reflect.Method.invoke(Method.java:606)        at org.apache.hadoop.util.RunJar.main(RunJar.java:160)Caused by: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D        at org.apache.hadoop.fs.Path.initialize(Path.java:148)        at org.apache.hadoop.fs.Path.<init>(Path.java:126)        at org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:487)        at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:430)        ... 7 moreCaused by: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D        at java.net.URI.checkPath(URI.java:1804)        at java.net.URI.<init>(URI.java:752)        at org.apache.hadoop.fs.Path.initialize(Path.java:145)        ... 10 more



解决方法:
在配置文件hive-site.xml里找"system:java.io.tmpdir"把他们都换成绝对路径如:/home/grid/apache-hive-0.14.0-bin/iotmp

hive-site.xml 完整的内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration>    <property>         <name>javax.jdo.option.ConnectionURL</name>         <value>jdbc:mysql://192.168.52.139:3306/hive?createDatabaseIfNotExsit=true;characterEncoding=UTF-8</value>     </property>     <property>         <name>javax.jdo.option.ConnectionDriverName</name>         <value>com.mysql.jdbc.Driver</value>    </property>    <property>        <name>javax.jdo.option.ConnectionUserName</name>        <value>hive</value>    </property>    <property>         <name>javax.jdo.option.ConnectionPassword</name>         <value>hive</value>     </property>     <property>        <name>datanucleus.readOnlyDatastore</name>        <value>false</value>    </property>    <property>         <name>datanucleus.fixedDatastore</name>        <value>false</value>     </property>    <property>         <name>datanucleus.autoCreateSchema</name>         <value>true</value>     </property>        <property>        <name>datanucleus.autoCreateTables</name>        <value>true</value>    </property>    <property>        <name>datanucleus.autoCreateColumns</name>        <value>true</value>    </property></configuration>

原文地址:http://blog.csdn.net/jim110/article/details/44907745
原创粉丝点击