【问题标题】:Hbase table is not listingHbase 表未列出
【发布时间】:2015-01-22 19:59:56
【问题描述】:

我创建了一个示例 java 程序来在 HBase 中创建一个表,它显示成功创建了表。但是当我打开我的 HBase 终端并使用命令 list 时,创建的表不存在。为什么会这样?我的代码如下

    Configuration config = HBaseConfiguration.create();
    conf.set("hbase.master","192.168.1.47:60000");
       Configuration config = HBaseConfiguration.create();
         config.set("hbase.zookeeper.quorum", "192.168.1.47");
         config.set("hbase.zookeeper.property.clientPort", "2181");
         config.set("hbase.master", "192.168.1.47:60000");
         config.set("zookeeper.znode.parent", "/hbase-unsecure");
    HBaseAdmin hbase = new HBaseAdmin(conf);

    HTableDescriptor desc = new HTableDescriptor("sample");
    HColumnDescriptor meta = new  ColumnDescriptor("samplecolumn1".getBytes());
    desc.addFamily(meta);
    System.out.println( "Created Success fully..." );

hbase.createTable(desc);

其中192.168.1.47:60000是Hbase所在的地方。

编辑后:

我试过了,现在它也给了我一个错误,

Eception in thread "main" org.apache.hadoop.hbase.MasterNotRunningException: com.google.protobuf.ServiceException: java.net.UnknownHostException: unknown host: sandbox.hortonworks.com
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$StubMaker.makeStub(HConnectionManager.java:1651)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$MasterServiceStubMaker.makeStub(HConnectionManager.java:1677)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getKeepAliveMasterService(HConnectionManager.java:1884)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.listTables(HConnectionManager.java:2589)
at org.apache.hadoop.hbase.client.HBaseAdmin.listTables(HBaseAdmin.java:307)
at org.HBaseJDBC.HBaseClient.main(HBaseClient.java:53)Caused by: com.google.protobuf.ServiceException: java.net.UnknownHostException: unknown host: sandbox.hortonworks.com
at org.apache.hadoop.hbase.ipc.RpcClient.callBlockingMethod(RpcClient.java:1673)
at org.apache.hadoop.hbase.ipc.RpcClient$BlockingRpcChannelImplementation.callBlockingMethod(RpcClient.java:1714)
at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$BlockingStub.isMasterRunning(MasterProtos.java:42561)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$MasterServiceStubMaker.isMasterRunning(HConnectionManager.java:1688)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$StubMaker.makeStubNoRetries(HConnectionManager.java:1597)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$StubMaker.makeStub(HConnectionManager.java:1623)

【问题讨论】:

    标签: java hadoop hbase apache-zookeeper


    【解决方案1】:

    上述代码中你还没有创建表,你只提供了名称和架构信息。

    请在打印“完全创建成功”之前添加以下行 -

    hbase.createTable(desc);
    

    【讨论】:

    • 我错过了那条线。直到倒数第二行,一切都运行良好。一旦提到 createTable() 它就停止工作了。
    • 您是否看到任何控制台消息?
    • 没有。它似乎永远消失后就卡在那里了
    • 而不是在配置中使用hbase.master,你可以设置zookeper quorum吗?conf.set("hbase.zookeeper.quorum", "your_zk_h​​ost"); conf.set("hbase.zookeeper.property.clientPort", "2181");
    • 好吧,您之前的代码可以检查 HBase 日志并查看是否收到任何创建请求,这看起来更像是设置问题而不是代码问题
    猜你喜欢
    • 1970-01-01
    • 2020-12-15
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    • 2018-02-15
    相关资源
    最近更新 更多