Hive无法启动:创建路径/配置单元/集群/委派/ METASTORE / keys

时间:2016-08-29 08:32:01

标签: hadoop hive

我在一个kerberized集群上遇到了一个问题,hive无法启动。

症状:

  • 服务成功启动(并且没有停止)
  • 在Ambari,出现了警告,其中提到Hive Metastore失败
  • 在命令行上启动配置单元没有成功(它只是保持挂起)
  • 通过beeline,我能够看到元数据,但却无法获得实际数据

我在/var/log/hive/hivemetastore.log

中发现了以下错误
2016-08-29 10:12:49,047 ERROR [main]: metastore.HiveMetaStore (HiveMetaStore.java:main(5934)) - Metastore Thrift Server threw an exception...
org.apache.hadoop.hive.thrift.DelegationTokenStore$TokenStoreException: Error creating path /hive/cluster/delegation/METASTORE/keys
    at org.apache.hadoop.hive.thrift.ZooKeeperTokenStore.ensurePath(ZooKeeperTokenStore.java:166)
    at org.apache.hadoop.hive.thrift.ZooKeeperTokenStore.initClientAndPaths(ZooKeeperTokenStore.java:236)
    at org.apache.hadoop.hive.thrift.ZooKeeperTokenStore.init(ZooKeeperTokenStore.java:469)
    at org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge$Server.startDelegationTokenSecretManager(HadoopThriftAuthBridge.java:444)
    at org.apache.hadoop.hive.metastore.HiveMetaStore.startMetaStore(HiveMetaStore.java:6015)
    at org.apache.hadoop.hive.metastore.HiveMetaStore.main(HiveMetaStore.java:5930)
    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:221)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
Caused by: org.apache.zookeeper.KeeperException$AuthFailedException: KeeperErrorCode = AuthFailed for /hive/cluster/delegation/METASTORE/keys
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:123)
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
    at org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:783)
    at org.apache.curator.framework.imps.CreateBuilderImpl$11.call(CreateBuilderImpl.java:691)
    at org.apache.curator.framework.imps.CreateBuilderImpl$11.call(CreateBuilderImpl.java:675)
    at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:107)
    at org.apache.curator.framework.imps.CreateBuilderImpl.pathInForeground(CreateBuilderImpl.java:672)
    at org.apache.curator.framework.imps.CreateBuilderImpl.protectedPathInForeground(CreateBuilderImpl.java:453)
    at org.apache.curator.framework.imps.CreateBuilderImpl.forPath(CreateBuilderImpl.java:443)
    at org.apache.curator.framework.imps.CreateBuilderImpl.forPath(CreateBuilderImpl.java:423)
    at org.apache.curator.framework.imps.CreateBuilderImpl$3.forPath(CreateBuilderImpl.java:257)
    at org.apache.curator.framework.imps.CreateBuilderImpl$3.forPath(CreateBuilderImpl.java:205)
    at org.apache.hadoop.hive.thrift.ZooKeeperTokenStore.ensurePath(ZooKeeperTokenStore.java:160)
    ... 11 more

1 个答案:

答案 0 :(得分:0)

请注意,我实际上尝试了几件事,所以我不确定这是否是完整的解决方案,但这是最后一步,我认为这是关键的一步:

经过长时间的搜索,我间接找到了这个网站:https://community.hortonworks.com/articles/49040/hive-metastore-crashes-on-nullpointerexception-wit.html

以下是帮助我解决问题的相关片段:

  

这是在以下Hortonworks错误中跟踪的已知问题:

     

https://hortonworks.jira.com/browse/BUG-42602

     

替代方法:

     

将hive.cluster.delegation.token.store.class设置为以下内容:

     

hive.cluster.delegation.token.store.class = org.apache.hadoop.hive.thrift.DBTokenStore

     

如果使用Ambari,可以通过单击Hive来更改此设置   Ambari仪表板上的服务,导航到" Configs"选项卡,和   修改"高级蜂巢网站"中的参数部分   蜂巢配置。保存更改并从Ambari用户重新启动Hive   提示时界面。

     

如果不使用ambari,此设置可以位于   /etc/hive/conf/hive-site.xml文件。确保进行此更改   群集上的所有适用节点。一旦做出改变,就可以了   必须重新启动Hive服务。