我正在尝试使用 thrift/hbase 从放置在那里的 HDFS 中提取数据到 Hive 表中,但我正在努力寻找以下错误消息的解决方案;
ERROR client.HConnectionManager$HConnectionImplementation (HConnectionManager.java:checkIfBaseNodeAvailable(751))
– Check the value configured in ‘zookeeper.znode.parent’. There could be a mismatch with the one configured in the master.
其次是;
FAILED: Error in metadata: MetaException(message:org.apache.hadoop.hbase.MasterNotRunningException
从 hive 终端运行以下查询后,这些错误出现在 hive 日志中;
create external table d_table (id bigint, date string)
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler’
with serdeproperties (“hbase.columns.mapping” = “:key,a:date”)
TBLPROPERTIES (“hbase.table.name” = “demo_table”);
该表存在,已填充并且可以从 hbase shell 中找到,并且我检查了 HMASTER 进程是否正在运行。'zookeeper.znode.parent' 设置为默认值,并且 hbase 接受这一点(如果更改,hbase 会抱怨,所以我相当有信心它是正确的)。我能够毫无问题地建立一个 ZK 客户端。
我已经达到了研究这个问题的地步,我被告知解决方案是针对我正在使用的 HBase 版本重新编译 Hive,这有点违背了使用发行版的意义。ZK 和 HBase 主控器位于我从中运行 HiveQL 命令的同一台机器上。
如果我从另一台机器运行查询,我会看到以下内容;
ERROR client.HConnectionManager$HConnectionImplementation
(HConnectionManager.java:checkIfBaseNodeAvailable(751))
– Check the value configured in ‘zookeeper.znode.parent’. There could be a mismatch with the one configured in the master.
WARN zookeeper.ClientCnxn (ClientCnxn.java:run(1089))
– Session 0×0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:567)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1068)
WARN zookeeper.RecoverableZooKeeper (RecoverableZooKeeper.java:retryOrThrow(219))
– Possibly transient ZooKeeper exception:
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode =
ConnectionLoss for /hbase/hbaseid
如果我将属性添加到 zookeeper.quorum 的 hive-site.xml 文件,我会得到与第一台机器相同的行为。我从 Ambari 获取了 zookeeper.quorum 的值。
我正在使用 Hortonworks 1.3 发行版。我们已经成功地使用 HCatalog 运行 Hive 来创建表等,并且我们已经运行了各种其他场景。如果需要更多信息来提供帮助,请告诉我,我想保持这篇文章的清洁。
提前致谢