2013-08-09 3 views
0

하이브 테이블로 thrift/hbase를 사용하여 HDFS에서 데이터를 추출하려고 시도하고 있지만 다음 오류 메시지에 대한 해결책을 찾기 위해 고심하고 있습니다.하이브/Hbase 통합 : 구성 문제

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 

이러한 오류는 하이브 터미널에서 다음 쿼리를 실행 한 후 하이브 로그에 나타납니다;

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와 쉘 내에서 찾을 수있다, 그리고 나는 HMASTER 프로세스가 실행되고 있는지 확인했다. 'zookeeper.znode.parent'는 기본값으로 설정되고 hbase는 이것을받습니다 (변경된 경우 hbase이 불평하므로 올바른 것으로 확신합니다). 문제없이 ZK 클라이언트를 설정할 수 있습니다.

내가 사용하고있는 HBase 버전에 대해 Hive를 다시 컴파일하는 것이 해결책이라고 말한이 문제를 연구하는 시점에 이르렀습니다. 어떤 종류의 배포판을 사용하지 않을지를 결정합니다. ZK 및 HBase 마스터는 HiveQL 명령을 실행하는 동일한 시스템에 있습니다.

다른 컴퓨터에서 쿼리를 실행하면 다음이 표시됩니다. 내가 zookeeper.quorum의 하이브를 site.xml 파일에 속성을 추가 할 경우

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 

, 나는 첫 번째 시스템과 동일한 동작을 얻을. 나는 Ambari의 사육사 .quorum에 대한 가치를 취했습니다.

Hortonworks 릴리스 1.3 배포를 사용하고 있습니다. 우리는 HCatalog로 Hive를 성공적으로 실행하여 테이블 등을 만들었으며 우리는 다양한 다른 시나리오를 실행했습니다. 도움이 될 추가 정보가 필요하면 알려주세요. 나는이 게시물을 깨끗하게 유지하고 싶습니다. 당신은 사육사의 서비스 포트의 수표를 가질 수 사전

답변

0

감사합니다. 독립 사육사 클러스터를 사용하는지 여부는 확실하지 않습니다. 그렇지 않은 경우, 다른 프로세스가 포트 2181을 점유하고 hbase이 포트 2142를 사용하여 사육자를 시작하려고 시도 할 수 있습니다. 서비스 포트가 2181이 아닌 경우 특정 구성없이 Hive가 불평합니다.

0

자바에서 Hbase와 통신하는 동안 동일한 오류가 발생했습니다. 다음 conf를 추가했을 때 문제가 해결되었습니다.

을하는 데 도움이

conf.set("zookeeper.znode.parent", "/hbase-unsecure"); 

희망