【发布时间】:2016-01-07 15:37:50
【问题描述】:
我正在尝试通过一个简单的 Java 应用程序与 MapR-DB 表进行交互,该应用程序在 M3 MapR 集群的一个节点中运行。似乎我能够连接到集群,但显然我无法正确连接到表。这是代码中的一个sn-p:
Configuration configuration = new Configuration();
configuration.set("hbase.zookeeper.quorum", "192.168.2.1,192.168.2.2,192.168.2.3");
configuration.set("hbase.zookeeper.property.clientPort", "5181");
configuration.set("mapr.htable.impl", "com.mapr.fs.MapRHTable");
configuration.set("hbase.table.namespace.mappings", "*:/user/mapr/");
configuration = HBaseConfiguration.create(configuration);
HConnection connection = HConnectionManager.createConnection(configuration);
System.out.println("Is Master running? " + connection.isMasterRunning());
String tableName = args[0];
HTable table = (HTable) connection.getTable(tableName.getBytes());
for (HColumnDescriptor columnFamily : table.getTableDescriptor().getColumnFamilies()) {
System.out.println("Column family: " + columnFamily.getNameAsString());
}
我有一个名为“/user/mapr/test_table”的表(我在 MapR Web 控制台中看到它,我可以通过hbase shell 访问它)。使用任何合理的表名参数运行代码只会返回此异常:
org.apache.hadoop.hbase.TableNotFoundException: /user/mapr/test_table
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHTableDescriptor(HConnectionManager.java:2750)
at org.apache.hadoop.hbase.client.HTable.getTableDescriptor(HTable.java:701)
at it.noovle.bigdata.hadoop.MaprDBLocalTest.main(MaprDBLocalTest.java:49)
- 我在几个地方读到,使用 MapR-DB 不需要通过 Zookeeper 进行连接。一般情况下是这样还是只适用于 M7?我目前正在运行 M3。
- 是否有从 Java HBase API 寻址 MapR-DB 表的特定方法?在
hbase shell我只是使用'/user/mapr/test_table'。 - 有人可以分享 M3 集群运行示例的体面示例吗?
【问题讨论】: