HBase JAVA API无法创建表

HBase JAVA API无法创建表,hbase,create-table,Hbase,Create Table,我一直在尝试用JavaAPI创建一个简单的表,但一直未能做到这一点。我会尽力解释整个过程,以防有人能帮我 首先,我已经从我的ubuntu机器上下载了1.2.1版 解压缩后,我使用以下路径修改了hbase站点文件: <configuration> <property> <name>hbase.rootdir</name> <value>file:///home/XXXXX/hbase</value> </property

我一直在尝试用JavaAPI创建一个简单的表,但一直未能做到这一点。我会尽力解释整个过程,以防有人能帮我

首先,我已经从我的ubuntu机器上下载了1.2.1版

解压缩后,我使用以下路径修改了hbase站点文件:

<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///home/XXXXX/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/XXXX/zookeeper</value>
</property>
</configuration>
然后我启动了shell hbase shell并创建了一个表,并验证了该表是否存在

hbase(main):001:0> create 'table1', 'colfam1', 'colfam2'
0 row(s) in 1.6920 seconds
=> Hbase::Table - table1
hbase(main):002:0> list
TABLE                                                              
table1                                                                  
1 row(s) in 0.0410 seconds
=> ["table1"]
一旦一切似乎都在控制台模式下运行,我就尝试使用JavaAPI进行同样的操作

这是我的CreateTable.java代码

import java.io.IOException;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.conf.Configuration;

public class HBaseCreateTable {

   public static void main(String[] args) throws IOException {
       // Instantiating configuration class
       Configuration conf = HBaseConfiguration.create();
        Connection conn =ConnectionFactory.createConnection(conf);
        Admin admin = conn.getAdmin();

       // Instantiating table descriptor class
      HTableDescriptor tableDescriptor = new HTableDescriptor(TableName.valueOf("emp"));

   // Adding column families to table descriptor
   tableDescriptor.addFamily(new HColumnDescriptor("personal"));
   tableDescriptor.addFamily(new HColumnDescriptor("professional"));

   // Execute the table through admin
   System.out.println(" Creating the table ");
   admin.createTable(tableDescriptor);
   System.out.println(" Table created ");
   }
  }
创建文件后,我使用以下命令创建了一个类文件:

javac -classpath /home/XXXX/example/lib/hadoop-core-1.2.1.jar:/home/XXXX/hbase/lib/* CreateTable.java
正如您所看到的,我正在使用hbase jar以及更多,我已经下载了另一个jar文件

wget http://central.maven.org/maven2/org/apache/hadoop/hadoop-core/1.2.1/hadoop-core-1.2.1.jar
最后,我发布了java代码:

java -classpath /home/XXXX/example/lib/hadoop-core-1.2.1.jar:/home/XXXX/hbase/lib/*:. CreateTable
因此,我得到以下日志

16/05/07 12:49:34 INFO zookeeper.RecoverableZooKeeper: Process identifier=hconnection-0xd9cbc24 connecting to ZooKeeper ensemble=localhost:2181
16/05/07 12:49:34 INFO zookeeper.ZooKeeper: Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT
16/05/07 12:49:34 INFO zookeeper.ZooKeeper: Client environment:host.name=XXX
16/05/07 12:49:34 INFO zookeeper.ZooKeeper: Client environment:java.version=1.7.0_65
16/05/07 12:49:34 INFO zookeeper.ZooKeeper: Client environment:java.vendor=Oracle Corporation
16/05/07 12:49:34 INFO zookeeper.ZooKeeper: Client environment:java.home=/usr/lib/jvm/java-7-openjdk-amd64/jre
16/05/07 12:49:34 INFO zookeeper.ZooKeeper: Client environment:java.class.path=/home/XXX/example/lib/hadoop-core-1.2.1.jar:/home/XXX/hbase/lib/xom-1.2.5.jar:/home/XXX/hbase/lib/jcodings-1.0.8.jar:/home/XXX/hbase/lib/hadoop-auth-2.5.1.jar:/home/XXX/hbase/lib/jsch-0.1.42.jar:/home/XXX/hbase/lib/hadoop-yarn-server-common-2.5.1.jar:/home/XXX/hbase/lib/jamon-runtime-2.4.1.jar:/home/XXX/hbase/lib/hadoop-mapreduce-client-core-2.5.1.jar:/home/XXX/hbase/lib/commons-cli-1.2.jar:/home/XXX/hbase/lib/commons-configuration-1.6.jar:/home/XXX/hbase/lib/asm-3.1.jar:/home/XXX/hbase/lib/log4j-1.2.17.jar:/home/XXX/hbase/lib/commons-io-2.4.jar:/home/XXX/hbase/lib/guice-servlet-3.0.jar:/home/XXX/hbase/lib/xml-apis-1.3.03.jar:/home/XXX/hbase/lib/activation-1.1.jar:/home/XXX/hbase/lib/hadoop-hdfs-2.5.1.jar:/home/XXX/hbase/lib/commons-digester-1.8.jar:/home/XXX/hbase/lib/guava-12.0.1.jar:/home/XXX/hbase/lib/jettison-1.3.3.jar:/home/XXX/hbase/lib/jetty-util-6.1.26.jar:/home/XXX/hbase/lib/hbase-external-blockcache-1.2.1.jar:/home/XXX/hbase/lib/hbase-common-1.2.1.jar:/home/XXX/hbase/lib/jersey-client-1.9.jar:/home/XXX/hbase/lib/hbase-hadoop2-compat-1.2.1.jar:/home/XXX/hbase/lib/commons-compress-1.4.1.jar:/home/XXX/hbase/lib/hbase-it-1.2.1-tests.jar:/home/XXX/hbase/lib/hbase-protocol-1.2.1.jar:/home/XXX/hbase/lib/hadoop-mapreduce-client-jobclient-2.5.1.jar:/home/XXX/hbase/lib/hbase-annotations-1.2.1-tests.jar:/home/XXX/hbase/lib/commons-httpclient-3.1.jar:/home/XXX/hbase/lib/joni-2.1.2.jar:/home/XXX/hbase/lib/hbase-examples-1.2.1.jar:/home/XXX/hbase/lib/hbase-thrift-1.2.1.jar:/home/XXX/hbase/lib/xalan-2.7.0.jar:/home/XXX/hbase/lib/slf4j-log4j12-1.7.5.jar:/home/XXX/hbase/lib/hbase-common-1.2.1-tests.jar:/home/XXX/hbase/lib/jets3t-0.9.0.jar:/home/XXX/hbase/lib/jersey-core-1.9.jar:/home/XXX/hbase/lib/commons-math-2.2.jar:/home/XXX/hbase/lib/commons-math3-3.1.1.jar:/home/XXX/hbase/lib/jackson-jaxrs-1.9.13.jar:/home/XXX/hbase/lib/xmlenc-0.52.jar:/home/XXX/hbase/lib/netty-all-4.0.23.Final.jar:/home/XXX/hbase/lib/commons-beanutils-core-1.7.0.jar:/home/XXX/hbase/lib/jersey-guice-1.9.jar:/home/XXX/hbase/lib/hbase-hadoop-compat-1.2.1.jar:/home/XXX/hbase/lib/snappy-java-1.0.4.1.jar:/home/XXX/hbase/lib/hbase-server-1.2.1.jar:/home/XXX/hbase/lib/hadoop-yarn-api-2.5.1.jar:/home/XXX/hbase/lib/bsh-core-2.0b4.jar:/home/XXX/hbase/lib/hbase-rest-1.2.1.jar:/home/XXX/hbase/lib/hbase-server-1.2.1-tests.jar:/home/XXX/hbase/lib/antisamy-1.4.3.jar:/home/XXX/hbase/lib/commons-logging-1.2.jar:/home/XXX/hbase/lib/aopalliance-1.0.jar:/home/XXX/hbase/lib/commons-collections-3.2.2.jar:/home/XXX/hbase/lib/hbase-client-1.2.1.jar:/home/XXX/hbase/lib/jsp-2.1-6.1.14.jar:/home/XXX/hbase/lib/jruby-complete-1.6.8.jar:/home/XXX/hbase/lib/jsr305-1.3.9.jar:/home/XXX/hbase/lib/hadoop-mapreduce-client-app-2.5.1.jar:/home/XXX/hbase/lib/htrace-core-3.1.0-incubating.jar:/home/XXX/hbase/lib/findbugs-annotations-1.3.9-1.jar:/home/XXX/hbase/lib/httpcore-4.4.1.jar:/home/XXX/hbase/lib/metrics-core-2.2.0.jar:/home/XXX/hbase/lib/protobuf-java-2.5.0.jar:/home/XXX/hbase/lib/hadoop-mapreduce-client-common-2.5.1.jar:/home/XXX/hbase/lib/batik-ext-1.7.jar:/home/XXX/hbase/lib/batik-css-1.7.jar:/home/XXX/hbase/lib/zookeeper-3.4.6.jar:/home/XXX/hbase/lib/batik-util-1.7.jar:/home/XXX/hbase/lib/servlet-api-2.5.jar:/home/XXX/hbase/lib/commons-codec-1.9.jar:/home/XXX/hbase/lib/apacheds-i18n-2.0.0-M15.jar:/home/XXX/hbase/lib/esapi-2.1.0.jar:/home/XXX/hbase/lib/commons-fileupload-1.2.jar:/home/XXX/hbase/lib/jetty-6.1.26.jar:/home/XXX/hbase/lib/hadoop-yarn-client-2.5.1.jar:/home/XXX/hbase/lib/hadoop-common-2.5.1.jar:/home/XXX/hbase/lib/apacheds-kerberos-codec-2.0.0-M15.jar:/home/XXX/hbase/lib/hbase-resource-bundle-1.2.1.jar:/home/XXX/hbase/lib/avro-1.7.4.jar:/home/XXX/hbase/lib/jasper-runtime-5.5.23.jar:/home/XXX/hbase/lib/libthrift-0.9.3.jar:/home/XXX/hbase/lib/hbase-prefix-tree-1.2.1.jar:/home/XXX/hbase/lib/leveldbjni-all-1.8.jar:/home/XXX/hbase/lib/paranamer-2.3.jar:/home/XXX/hbase/lib/commons-daemon-1.0.13.jar:/home/XXX/hbase/lib/jackson-xc-1.9.13.jar:/home/XXX/hbase/lib/xml-apis-ext-1.3.04.jar:/home/XXX/hbase/lib/httpclient-4.2.5.jar:/home/XXX/hbase/lib/hadoop-client-2.5.1.jar:/home/XXX/hbase/lib/jsp-api-2.1-6.1.14.jar:/home/XXX/hbase/lib/commons-beanutils-1.7.0.jar:/home/XXX/hbase/lib/jersey-server-1.9.jar:/home/XXX/hbase/lib/spymemcached-2.11.6.jar:/home/XXX/hbase/lib/xz-1.0.jar:/home/XXX/hbase/lib/guice-3.0.jar:/home/XXX/hbase/lib/hadoop-annotations-2.5.1.jar:/home/XXX/hbase/lib/servlet-api-2.5-6.1.14.jar:/home/XXX/hbase/lib/junit-4.12.jar:/home/XXX/hbase/lib/hbase-it-1.2.1.jar:/home/XXX/hbase/lib/jasper-compiler-5.5.23.jar:/home/XXX/hbase/lib/hbase-procedure-1.2.1.jar:/home/XXX/hbase/lib/disruptor-3.3.0.jar:/home/XXX/hbase/lib/api-asn1-api-1.0.0-M20.jar:/home/XXX/hbase/lib/jaxb-api-2.2.2.jar:/home/XXX/hbase/lib/javax.inject-1.jar:/home/XXX/hbase/lib/hbase-shell-1.2.1.jar:/home/XXX/hbase/lib/jaxb-impl-2.2.3-1.jar:/home/XXX/hbase/lib/commons-lang-2.6.jar:/home/XXX/hbase/lib/jackson-mapper-asl-1.9.13.jar:/home/XXX/hbase/lib/nekohtml-1.9.12.jar:/home/XXX/hbase/lib/java-xmlbuilder-0.4.jar:/home/XXX/hbase/lib/hbase-annotations-1.2.1.jar:/home/XXX/hbase/lib/hadoop-mapreduce-client-shuffle-2.5.1.jar:/home/XXX/hbase/lib/commons-el-1.0.jar:/home/XXX/hbase/lib/commons-net-3.1.jar:/home/XXX/hbase/lib/slf4j-api-1.7.7.jar:/home/XXX/hbase/lib/jackson-core-asl-1.9.13.jar:/home/XXX/hbase/lib/jetty-sslengine-6.1.26.jar:/home/XXX/hbase/lib/api-util-1.0.0-M20.jar:/home/XXX/hbase/lib/jersey-json-1.9.jar:/home/XXX/hbase/lib/hadoop-yarn-common-2.5.1.jar:.
16/05/07 12:49:34 INFO zookeeper.ZooKeeper: Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib
16/05/07 12:49:34 INFO zookeeper.ZooKeeper: Client environment:java.io.tmpdir=/tmp
16/05/07 12:49:34 INFO zookeeper.ZooKeeper: Client environment:java.compiler=<NA>
16/05/07 12:49:34 INFO zookeeper.ZooKeeper: Client environment:os.name=Linux
16/05/07 12:49:34 INFO zookeeper.ZooKeeper: Client environment:os.arch=amd64
16/05/07 12:49:34 INFO zookeeper.ZooKeeper: Client environment:os.version=3.13.0-32-generic
16/05/07 12:49:34 INFO zookeeper.ZooKeeper: Client environment:user.name=XXX
16/05/07 12:49:34 INFO zookeeper.ZooKeeper: Client environment:user.home=/home/XXX
16/05/07 12:49:34 INFO zookeeper.ZooKeeper: Client environment:user.dir=/home/XXX/example
16/05/07 12:49:34 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=localhost:2181 sessionTimeout=90000 watcher=hconnection-0xd9cbc240x0, quorum=localhost:2181, baseZNode=/hbase
16/05/07 12:49:34 INFO zookeeper.ClientCnxn: Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
16/05/07 12:49:34 INFO zookeeper.ClientCnxn: Socket connection established to localhost/127.0.0.1:2181, initiating session
16/05/07 12:49:34 INFO zookeeper.ClientCnxn: Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x1548aa96e9b0012, negotiated timeout = 40000
Creating the table
16/05/07 12:50:23 INFO client.RpcRetryingCaller: Call exception, tries=10, retries=35, started=48777 ms ago, cancelled=false, msg=
16/05/07 12:50:43 INFO client.RpcRetryingCaller: Call exception, tries=11, retries=35, started=68849 ms ago, cancelled=false, msg=
16/05/07 12:51:03 INFO client.RpcRetryingCaller: Call exception, tries=12, retries=35, started=88997 ms ago, cancelled=false, msg=
16/05/07 12:51:23 INFO client.RpcRetryingCaller: Call exception, tries=13, retries=35, started=109114 ms ago, cancelled=false, msg=
16/05/07 12:51:44 INFO client.RpcRetryingCaller: Call exception, tries=14, retries=35, started=129260 ms ago, cancelled=false, msg=

有什么想法吗?

我给出了一些建议,因为我无法给出准确的答案

  • 由于您可以使用shell创建表,而通过java客户端则无法创建表,因此您还可以执行以下操作:

    export HBASE_CLASSPATH= `hbase classpath`
    
    我建议使用java-classpath$HBASE\u classpath

  • 通常这些都是来自zookeeper的错误。请检查zookeeper仲裁/连接到zkcli命令


我已经重新启动了机器,现在它可以正常工作了。我不明白问题出在哪里。无论如何,感谢您的帮助RamPrasad。一般来说,不建议重新启动Hbase(除非最后一步太难找到),以修复问题。尤其是在其生产系统中,多个作业正在运行。我们需要找到根本原因并加以解决。有一些hbase管理命令,如hbck()和故障排除指南()
   System.out.println(" Creating the table ");
   admin.createTable(tableDescriptor);
   System.out.println(" Table created ");

Creating the table
16/05/07 12:50:23 INFO client.RpcRetryingCaller: Call exception, tries=10, retries=35, started=48777 ms ago, cancelled=false, msg=
export HBASE_CLASSPATH= `hbase classpath`