设为首页 收藏本站
查看: 1734|回复: 0

[经验分享] Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreCli

[复制链接]

尚未签到

发表于 2017-12-18 10:08:07 | 显示全部楼层 |阅读模式
  一句话总结:连不上Hive的元数据库(Meta Store)所致。需要查看hive.log确定问题原因。我的问题是HADOOP_CONF_DIR下的hive-site.xml中元数据库地址配置错误所致。因为Hive会默认先读取HADOOP_CONF_DIR下的hive-site.xml而非自身conf目录下的hive-site.xml。
  解决过程:
  从别的机器上复制了hive和hadoop过来,修改了所有配置,但发现还是不能正常使用hive。可以通过bin/hive命令正常启动Hive CLI,但是一旦输入命令show databases;就会报错:
  hive (default)> show databases;
  FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
  通过查看日志tmp/${user.name}/hive.log,发觉如下语句:
  2017-08-27 23:13:13,352 ERROR [main]: Datastore.Schema (Log4JLogger.java:error(125)) - Failed initialising database.
  Unable to open a test connection to the given database. JDBC url = jdbc:mysql://Jing3.zhu/hive?createDatabaseIfNotExist=true, username = root. Terminating connection pool (set lazyInit to true if you expect to start your database after your app). Original Exception: ------
  com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
  看到了jdbc:mysql://Jing3.zhu,而我元数据库(metastore)的位置现在已迁移到了Jing6.zhu!
  于是再次检查hive-site.xml,但是hive-site.xml显示:
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://Jing6.zhu/hive?createDatabaseIfNotExist=true</value>
  明明指向的是Jing6.zhu啊!
  后来终于想起来,当初为了用sqoop,因为sqoop找不到hive的的配置文件,曾今把hive-site.xml文件复制到$HADOOP_CONF_DIR目录下,即$HADOOP_HOME/etc/hadoop,而这个hive-site.xml并未修改元数据库地址!
  而Hive会优先读取$HADOOP_CONF_DIR下的配置文件!!
  所以这也导致了我配置的hive-log4j.properties失效,Hive CLI启动时,提示使用的还是/hive-1.1.0-cdh5.7.6/lib/hive-common-1.1.0-cdh5.7.6.jar中hive-log4j.properties!因为我没有把hive-log4j.properties一起复制到$HADOOP_CONF_DIR!
  最后经Stack Overflow上高人指点,告诉我复制hive-site.xml之类的配置文件是一个很不好的方法,最好是直接建立link,或者使用Cloudera Manager管理设置文件更佳!
  StackOverflow原帖:https://stackoverflow.com/questions/45906680/why-hive-will-search-its-configuration-profile-in-hadoop-conf-dir-first

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-425304-1-1.html 上篇帖子: Hadoop如何修改HDFS文件存储块大小 下篇帖子: Hadoop MapReduce编程 API入门系列之多个Job迭代式MapReduce运行(十二)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表