【问题标题】:Hbase is not allowing to populate data using JAVA APIHbase 不允许使用 JAVA API 填充数据
【发布时间】:2014-11-29 11:01:05
【问题描述】:

我正在尝试使用 Java API 在 hbase 表中填充数据,但数据没有被插入到表中。这是我的代码。

public static void main(String[] args) throws Throwable{

    Configuration config = HBaseConfiguration.create(); 
    config.set("hbase.zookeeper.quorum", "192.168.133.4:2181");
    config.set("hbase.zookeeper.quorum", "192.168.133.5:2181");
    config.set("hbase.zookeeper.quorum", "192.168.133.3:2181");

    config.set("hbase.zookeeper.property.clientPort","2181");
    config.set("hbase.master", "192.168.133.3:60010"); 
    config.set("hbase.zookeeper.property.maxClientCnxns", "1000");

    System.out.println("HBase is running!");
    HTable table = new HTable(config, "manish_hash_table");
    Put p = new Put(Bytes.toBytes("11"));

    p.add(Bytes.toBytes("cf1"), Bytes.toBytes("hash_id"), Bytes.toBytes("h11"));
    p.add(Bytes.toBytes("cf1"), Bytes.toBytes("chunk_order"), Bytes.toBytes("11"));
    p.add(Bytes.toBytes("cf1"), Bytes.toBytes("chunk_usage"), Bytes.toBytes("1"));
    p.add(Bytes.toBytes("cf1"), Bytes.toBytes("s3_link"), Bytes.toBytes("hash11.com"));

    table.put(p);

    Get g = new Get(Bytes.toBytes("1"));
    Result r = table.get(g);
    byte[] value = r.getValue(Bytes.toBytes("cf1"), Bytes.toBytes("hash_id"));
    String valueStr = Bytes.toString(value);
    System.out.println("GET: " + valueStr); 
}

当我运行这个时,很多警告即将到来,并且正在继续。 警告看起来像

HBase is running!
14/11/29 16:15:18 INFO zookeeper.ZooKeeper: Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT
14/11/29 16:15:18 INFO zookeeper.ZooKeeper: Client environment:host.name=manish
14/11/29 16:15:18 INFO zookeeper.ZooKeeper: Client environment:java.version=1.7.0_67
14/11/29 16:15:18 INFO zookeeper.ZooKeeper: Client environment:java.vendor=Oracle Corporation
14/11/29 16:15:18 INFO zookeeper.ZooKeeper: Client environment:java.home=/usr/local/jdk1.7.0_67/jre
14/11/29 16:15:18 INFO zookeeper.ZooKeeper: Client environment:java.class.path=/home/hadoop/workspace/Hbase/bin:/usr/local/hbase/lib/commons-logging-1.1.3.jar:/usr/local/hbase/lib/log4j-1.2.17.jar:/usr/local/hbase/lib/zookeeper-3.4.6.jar:/usr/local/hbase/lib/hadoop-common-2.4.0.jar:/usr/local/hbase/lib/commons-configuration-1.6.jar:/usr/local/hbase/lib/commons-lang-2.6.jar:/usr/local/hbase/lib/protobuf-java-2.5.0.jar:/usr/local/hbase/lib/slf4j-api-1.7.5.jar:/usr/local/hbase/lib/slf4j-log4j12-1.7.5.jar:/home/hadoop/Downloads/lib/hadoop-core-1.1.2.jar:/home/hadoop/Downloads/lib/hbase-0.90.2.jar:/home/hadoop/Downloads/lib/org-apache-commons-codec.jar:/home/hadoop/Downloads/lib/jsr177.jar:/home/hadoop/Downloads/lib/aws-java-sdk.jar:/home/hadoop/Downloads/lib/framework_S3.jar:/home/hadoop/Downloads/lib/com.google.common.source_1.0.0.201004262004.jar:/home/hadoop/Downloads/lib/guava-12.0.1.jar:/home/hadoop/Downloads/lib/hadoop-auth-2.2.0.jar:/home/hadoop/Downloads/lib/hadoop-client-2.2.0.jar:/home/hadoop/Downloads/lib/hadoop-common-2.2.0.jar:/home/hadoop/Downloads/lib/hadoop-hdfs-2.2.0.jar:/home/hadoop/Downloads/lib/hbase-client-0.98.0-hadoop2.jar:/home/hadoop/Downloads/lib/hbase-common-0.98.0-hadoop2.jar:/home/hadoop/Downloads/lib/hbase-it-0.98.0-hadoop2.jar:/home/hadoop/Downloads/lib/commons-collections-3.2.1-1.0.0.jar
14/11/29 16:15:18 INFO zookeeper.ZooKeeper: Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
14/11/29 16:15:18 INFO zookeeper.ZooKeeper: Client environment:java.io.tmpdir=/tmp
14/11/29 16:15:18 INFO zookeeper.ZooKeeper: Client environment:java.compiler=<NA>
14/11/29 16:15:18 INFO zookeeper.ZooKeeper: Client environment:os.name=Linux
14/11/29 16:15:18 INFO zookeeper.ZooKeeper: Client environment:os.arch=amd64
14/11/29 16:15:18 INFO zookeeper.ZooKeeper: Client environment:os.version=3.13.0-40-generic
14/11/29 16:15:18 INFO zookeeper.ZooKeeper: Client environment:user.name=hadoop
14/11/29 16:15:18 INFO zookeeper.ZooKeeper: Client environment:user.home=/home/hadoop
14/11/29 16:15:18 INFO zookeeper.ZooKeeper: Client environment:user.dir=/home/hadoop/workspace/Hbase
14/11/29 16:15:18 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=192.168.133.153:2181 sessionTimeout=180000 watcher=hconnection
14/11/29 16:15:18 INFO zookeeper.ClientCnxn: Opening socket connection to server 192.168.133.153/192.168.133.153:2181. Will not attempt to authenticate using SASL (unknown error)
14/11/29 16:15:18 INFO zookeeper.ClientCnxn: Socket connection established to 192.168.133.153/192.168.133.153:2181, initiating session
14/11/29 16:15:18 INFO zookeeper.ClientCnxn: Session establishment complete on server 192.168.133.153/192.168.133.153:2181, sessionid = 0x149ae215d500058, negotiated timeout = 40000

请帮助我。我是 Hadoop 和 Hbase 的新手。

提前致谢

【问题讨论】:

    标签: java hadoop hbase apache-zookeeper


    【解决方案1】:

    在您发布的输出中没有警告...只是一些有关环境的信息以及有关成功连接到 zookeeper 的通知。

    从您尝试插入 "11" 并读取 "1" 的代码中,这将永远不会返回您可能期望的 "11"...

    Put p = new Put(Bytes.toBytes("11"));  
    Get g = new Get(Bytes.toBytes("1"));
    

    【讨论】:

    • 谢谢。但是 Hbase 中已经存在“1”行的数据(我通过 Shell CLI 添加了它)。
    【解决方案2】:

    您没有创建到 Hbase 的连接。 您需要使用您的配置创建与 hbase 的连接 HConnectionManager.createConnection(config)

    【讨论】:

      猜你喜欢
      • 2012-06-17
      • 1970-01-01
      • 2015-11-29
      • 1970-01-01
      • 2016-11-21
      • 1970-01-01
      • 2014-09-18
      • 2016-04-03
      • 1970-01-01
      相关资源
      最近更新 更多