用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)