重新build hadoop后进入hive客户端异常

本文解决在虚拟机上使用MySQL作为Hive元数据存储时遇到的配置问题,通过修改JDBC连接配置并删除HADOOP_HOME/build目录来解决执行错误。最终在公司机器上成功执行showdatabases命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在自己虚拟机上使用mysql作为hive元数据存储, 修改配置如下:

  1. <property>
  2. <name>javax.jdo.option.ConnectionURL</name>
  3. <value>jdbc:mysql://localhost:3306/metastore</value>
  4. <description>JDBCconnectstringforaJDBCmetastore</description>
  5. </property>
  6. <property>
  7. <name>javax.jdo.option.ConnectionDriverName</name>
  8. <value>com.mysql.jdbc.Driver</value>
  9. <description>DriverclassnameforaJDBCmetastore</description>
  10. </property>
  11. <property>
  12. <name>javax.jdo.option.ConnectionUserName</name>
  13. <value>hive</value>
  14. <description>usernametouseagainstmetastoredatabase</description>
  15. </property>
  16. <property>
  17. <name>javax.jdo.option.ConnectionPassword</name>
  18. <value>hive</value>
  19. <description>passwordtouseagainstmetastoredatabase</description>
  20. </property>

并将mysql jdbc驱动拷贝到HIVE_HOME/lib目录下.
接下去登陆hive客户端,执行show databases;命令, 异常:


  1. [ruizhe@localhost~]$hive
  2. Hivehistoryfile=/tmp/ruize/hive_job_log_ruize_201204091822_467986476.txt
  3. hive>showdatabases;
  4. FAILED:Errorinmetadata:javax.jdo.JDOFatalInternalException:Unexpectedexceptioncaught.
  5. NestedThrowables:
  6. java.lang.reflect.InvocationTargetException
  7. FAILED:ExecutionError,returncode1fromorg.apache.hadoop.hive.ql.exec.DDLTask
  8. hive>

被这个问题困扰好久, 同样的配置在自己笔记本环境上可以,但在公司机器上异常,
最后网上搜索了一把,发现解决方法如下:


  1. delete$HADOOP_HOME/buildandeverythingshouldbefine

切换到 HADOOP_HOME目录:


  1. [hadoop@localhostbuild]$pwd
  2. /opt/app/hadoop-0.20.2-cdh3u3/build
  3. [hadoop@localhostbuild]$ls
  4. antc++classescontribexampleshadoop-core-0.20.2-cdh3u3.jarhadoop-tools-0.20.2-cdh3u3.jarivysrctesttoolswebapps
  5. [hadoop@localhostbuild]$

果然在HADOOP_HOME/build目录下有新build的信息(我用ant重新build过hadoop)
直接删除build目录:


  1. [hadoop@localhosthadoop-0.20.2-cdh3u3]$rm-rfbuild

重新进入hive客户端:


  1. [ruize@localhost~]$hive
  2. Hivehistoryfile=/tmp/ruize/hive_job_log_ruize_201204091826_1452110220.txt
  3. hive>showdatabases;
  4. OK
  5. default
  6. Timetaken:1.786seconds
  7. hive>

这次OK了!

出处http://yaoyinjie.blog.51cto.com/3189782/830481

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值