Hbase java建立表時,除錯一直卡住
阿新 • • 發佈:2019-01-25
java程式碼
HbaseTest
public class HbaseTest {
/**
* 配置
* */
static Configuration conf = null;
static{
conf = HBaseConfiguration.create();
}
/**
* create a table
* @throws IOException
* @throws ZooKeeperConnectionException
* @throws MasterNotRunningException
* */
public void createTable(String tableName,String [] familys) {
/**
* 0.9X edition
* */
// HBaseAdmin admin = new HBaseAdmin(conf);
// HTableDescriptor descriptor = new HTableDescriptor();
/**
* 1.X edition
* */
Connection connection;
Admin admin = null;
try {
connection = ConnectionFactory.createConnection(conf);
admin = connection.getAdmin();
} catch (IOException e) {
e.printStackTrace();
}
/**
* 新的寫法
* */
HTableDescriptor table = new HTableDescriptor(TableName.valueOf(tableName));
for(String family:familys){
HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(family);
table.addFamily(hColumnDescriptor);
}
try {
admin.createTable(table);
System.out.println("table is already created!\n");
/**
* 關閉admin
* */
admin.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
TestCase
public class TestCase {
HbaseTest hbase = new HbaseTest();
@Test
public void testCreateTable() throws MasterNotRunningException, ZooKeeperConnectionException, IOException{
String [] fs = {"personal","public","name"};
hbase.createTable("tttzz", fs);
}
}
問題
在執行的時候一直卡在了`admin.createTable(table)`然後去查詢資料,看到了一個解決,就是HDFS的`safemode`開著,但是檢視自己的安全模式確實關閉的。
hadoop dfsadmin -safemode get
顯示Safe mode is OFF
然後懵逼了。
解決
然後突然想到我的配置檔案裡面用的是hostname
而不是ip地址,所以執行的時候無法確定ip地址,需要改host檔案或者改hbase-site.xml