2014-05-14 6 views
1

HBase 위에 하이브 테이블을 만들려고하는데 매번 오류가 발생합니다. 내가 여기서 뭘 잘못하고 있는지 말해줘.Hbase 테이블 맨 위에 하이브 테이블을 만드는 중 오류가 발생했습니다.

CREATE TABLE hbase_trades(key string, value string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf1:val") TBLPROPERTIES ("hbase.table.name" = "trades"); 

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:java.io.IOException: Attempt to start meta tracker failed. 
     at org.apache.hadoop.hbase.catalog.CatalogTracker.start(CatalogTracker.java:199) 
     at org.apache.hadoop.hbase.client.HBaseAdmin.getCatalogTracker(HBaseAdmin.java:221) 
     at org.apache.hadoop.hbase.client.HBaseAdmin.tableExists(HBaseAdmin.java:269) 
     at org.apache.hadoop.hbase.client.HBaseAdmin.tableExists(HBaseAdmin.java:285) 
     at org.apache.hadoop.hive.hbase.HBaseStorageHandler.preCreateTable(HBaseStorageHandler.java:162) 
     at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.createTable(HiveMetaStoreClient.java:483) 
     at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.createTable(HiveMetaStoreClient.java:476) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.invoke(RetryingMetaStoreClient.java:89) 
     at com.sun.proxy.$Proxy12.createTable(Unknown Source) 
     at org.apache.hadoop.hive.ql.metadata.Hive.createTable(Hive.java:598) 
     at org.apache.hadoop.hive.ql.exec.DDLTask.createTable(DDLTask.java:3697) 
     at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:253) 
     at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:151) 
     at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:65) 
     at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1485) 
     at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1263) 
     at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1091) 
     at org.apache.hadoop.hive.ql.Driver.run(Driver.java:931) 
     at org.apache.hadoop.hive.ql.Driver.run(Driver.java:921) 
     at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:268) 
     at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:220) 
     at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:422) 
     at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:790) 
     at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:684) 
     at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:623) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.apache.hadoop.util.RunJar.main(RunJar.java:212) 
Caused by: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/meta-region-server 
     at org.apache.zookeeper.KeeperException.create(KeeperException.java:99) 
     at org.apache.zookeeper.KeeperException.create(KeeperException.java:51) 
     at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1041) 
     at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:199) 
     at org.apache.hadoop.hbase.zookeeper.ZKUtil.watchAndCheckExists(ZKUtil.java:425) 
     at org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.start(ZooKeeperNodeTracker.java:77) 
     at org.apache.hadoop.hbase.catalog.CatalogTracker.start(CatalogTracker.java:195) 
     ... 33 more 
) 
+0

나는 정확히 같은 문제가 있습니다. 어떻게 해결 했습니까? –

답변

0

당신은 어디 사육사가 해당 사육사 '호스트의 이름으로 HBase를 마스터

변경 zk1.mymachine.com,zk2.mymachine.com을 선출 것이다 정원 회 찾을 수 하이브를 말할 필요가있다.

$HIVE_SRC/build/dist/bin/hive -hiveconf hbase.zookeeper.quorum=zk1.mymachine.com,zk2.mymachine.com 
+0

동일하게했으나 여전히 같은 오류가 발생했습니다 –

+0

@IbrarAhmed는 서비스를 다시 시작하면 다시 설정해야 함을 유의하십시오. 그렇지 않으면 hiveconf의 값을 변경하고 이후에 서비스가 다시 시작되도록하십시오. – MoustafaAAtta

관련 문제