簡體   English   中英

使用Java API在Hbase中創建表

[英]Creation of table in Hbase using Java API

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
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;

public class CreateTable {

    public static void main(String[] args) throws IOException {
        Configuration con = HBaseConfiguration.create();
        HBaseAdmin admin = new HBaseAdmin(con);

        HTableDescriptor ht = new HTableDescriptor("emp");

        ht.addFamily(new HColumnDescriptor("add"));
        ht.addFamily(new HColumnDescriptor("dept"));

        admin.createTable(ht);

        System.out.println("Table Created");
    }
}

我已經使用上面的代碼創建了Hbase表。 我已經下載了所有需要的Jar,並在遇到錯誤時將它們添加為一個。 但是仍然有很多與動物園管理員有關的錯誤。 我的疑問是,在創建表之前,我是否必須使用JAVA API與Zookeeper連接。 我正在使用JDK 1.8,請指導我使用JAVA API在Hbase中創建表的確切過程。 這些是Zookeeper出現的以下錯誤,但我添加了Zookeeper Jar。 17/12/11 12:44:10 INFO zookeeper.ZooKeeper:客戶端環境:zookeeper.version = 3.3.1-942149,建於2010年5月7日17:14 GMT 17/12/11 12:44:10 INFO zookeeper.ZooKeeper:客戶端環境:host.name = quickstart.cloudera 17/12/11 12:44:10信息zookeeper.ZooKeeper:客戶端環境:java.version = 1.8.0_144 17/12/11 12:44:10 INFO zookeeper.ZooKeeper:客戶端環境:java.vendor = Oracle Corporation 17/12/11 12:44:10信息zookeeper.ZooKeeper:客戶端環境:java.home = / home / cloudera / jdk1.8.0_144 / jre 17/12 / 11 12:44:10信息zookeeper.ZooKeeper:客戶端環境:java.class.path = / home / cloudera / workspace / HbaseTbl / bin:/home/cloudera/Downloads/apache-logging-log4j.jar:/ home / cloudera /Downloads/hadoop-core-0.20.2-cdh3u0.jar:/home/cloudera/Downloads/hbase-0.94.0.jar:/home/cloudera/Downloads/org-apache-commons-logging.jar:/home/ cloudera / Downloads / zookeeper.jar 17/12/11 12:44:10信息zookeeper.ZooKeeper:客戶端環境:java.library.path = / usr / java / packages / lib / amd64:/ usr / lib64:/ lib64: / lib:/ usr / LIB

這是適合我的代碼:

        conf = HBaseConfiguration.create();
        admin = new HBaseAdmin(conf);

        TableName tableName =  TableName.valueOf("test");
        HTableDescriptor htd = new HTableDescriptor(tableName);
        HColumnDescriptor hcd = new HColumnDescriptor("data");

        htd.addFamily(hcd);
        admin.createTable(htd);

並在bash_profile中添加以下env變量

export HADOOP_HOME=/Users/karan.verma/Documents/backups/h/hadoop-2.6.4
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_PREFIX=/Users/karan.verma/Documents/backups/h/hadoop-2.6.4
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM