O'Reilly Elephant书中对hbase的一点描述显示了使用'hbase'命令行包装程序来使用hbase运行map-reduce作业。
但是,我们的代码具有较长的类路径,因此我们想使用由JobConf.setClassByJar和'hadoop'命令启用的hadoop的lib目录功能。尽管我们可能搞砸了一些东西,但在我们看来,这对hbase命令不起作用。
普通的hadoop作业可以调用hbase API吗? hbase命令行做什么?
(hadoop 0.20.2,hbase对应)
最佳答案
您可以在Hadoop作业中使用HBase API。
以下是在Job中使用HBase API的一些代码片段。
进口货
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.util.Bytes;
这在我的代码的
@Override
函数内部private HTable hTable = null;
Configuration hConfig = HBaseConfiguration.create();
hConfig.set(Constants.HBASE_CONFIGURATION_ZOOKEEPER_QUORUM, zkQuorum);
hConfig.set(Constants.HBASE_CONFIGURATION_ZOOKEEPER_CLIENTPORT, zkclientPort);
hTable = new HTable(hConfig, hbCube);
...
hTable.put(subPuts);
显然不是完整的代码片段,但是使用正确的
imports
并提供正确的值,您的工作(我只有一个映射器)可以访问HBase API。希望能有所帮助。
关于hadoop - hbase命令与hadoop命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5641974/