hbase命令与hadoop命令

时间:2011-04-12 21:43:01

标签: hadoop hbase

O'Reilly Elephant书中对hbase的一点描述显示了使用'hbase'命令行包装器来运行使用hbase的map-reduce作业。

但是,我们的代码有一个很长的类路径,所以我们想要使用JobConf.setClassByJar启用的hadoop的lib目录功能和'hadoop'命令。虽然我们可能搞砸了一些东西,但在我们看来,这对hbase命令没有用。

普通的hadoop作业可以调用hbase API吗?什么是hbase命令行呢?

(hadoop 0.20.2,hbase对应)

2 个答案:

答案 0 :(得分:1)

您可以在Hadoop作业中使用HBase API。

以下是在作业中使用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。

希望有所帮助。

答案 1 :(得分:0)

是的,它会起作用。我们如何做,将所有东西(包括HBase jar)打包在胖罐中并运行Hadoop命令。

hbase命令行实用程序可用于:

  1. 表访问 - 这使您可以扫描表,运行压缩,启用/禁用表等。它就像任何其他数据库shell一样,但功能更强大,因为在我的下一个点

  2. 您可以使用以下命令运行jruby脚本:

    hbase org.jruby.Main <your_script>
    
  3. 您甚至可以在shell中运行Java内容。这对于打印群集属性等很有帮助。 这里的例子: http://wiki.apache.org/hadoop/Hbase/Shell