立即注册 登录
About云-梭伦科技 返回首页

zhanggl的个人空间 https://www.aboutyun.com/?5862 [收藏] [复制] [分享] [RSS]

日志

用Hbase api 实现创建数据库 异常client.HConnectionManager$HConnectionImplementati ...

热度 1已有 1155 次阅读2014-5-29 14:24 |个人分类:hbase| import

我的基础环境是cdh4.5(hadoop2.0) ,hbase是0.945
package cn.util.frame.baes.hbase;

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.Get;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.util.Bytes;

public class CreateTableT {

    /**
     * @param args
     * @throws IOException
     */
    private static     Configuration conf = null;
    static {
        conf = new Configuration();
        conf = HBaseConfiguration.create();
        //PleaseHoldException
         conf.set("hbase.master", "localhost:60000"); 
        conf.set("hbase.zookeeper.quorum", "localhost");
    }
   
    public static void main(String[] args) throws IOException {
   
        //create table
        HBaseAdmin admin = new HBaseAdmin(conf);
        HTableDescriptor htd = new HTableDescriptor("users");
        HColumnDescriptor hcd = new HColumnDescriptor("data");
        htd.addFamily(hcd);
        admin.createTable(htd);
       
        byte[] tableName = htd.getName();
        HTableDescriptor[] listTables = admin.listTables();
        if(listTables.length !=1 && Bytes.equals(tableName,listTables[0].getName())){
            throw new IOException("create table faile.......");
        }
        // put get scan table
        HTable table = new HTable(conf,tableName);
        byte[] row1 = Bytes.toBytes("row1");
        Put prow1 = new Put(row1);
        byte[] dataBytes = Bytes.toBytes("data");
        table.put(prow1);
       
        Get g = new Get(row1);
        Result result = table.get(g);
        System.out.println("Get:"+result);
        Scan scan = new Scan();
        ResultScanner scanner = table.getScanner(scan);
            for(Result scannerResult:scanner){
                System.out.println("Scan" +scannerResult);
            }
            scanner.close();
            admin.disableTable(tableName);
            admin.deleteTable(tableName);
    }

}
出现异常:
INFO  client.HConnectionManager$HConnectionImplementation (HConnectionManager.java:shouldRetryGetMaster(664)) - getMaster attempt 0 of 10 failed; retrying after sleep of 1000
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hbase.ipc.ServerNotRunningYetException): org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet
    at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1417)

    at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:1004)
    at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:86)
    at com.sun.proxy.$Proxy7.getProtocolVersion(Unknown Source)
    at org.apache.hadoop.hbase.ipc.WritableRpcEngine.getProxy(WritableRpcEngine.java:138)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:711)
    at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:126)
    at cn.util.frame.baes.hbase.CreateTableT.main(CreateTableT.java:36)

路过

雷人

握手

鲜花

鸡蛋

发表评论 评论 (2 个评论)

回复 sstutu 2014-5-31 22:02
是不是master有问题了
回复 zhanggl 2014-6-1 13:50
sstutu: 是不是master有问题了
是的,启动一下子然后Hmaster就没了

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

关闭

推荐上一条 /2 下一条