1. 程式人生 > >Hbase java建立表時,除錯一直卡住

Hbase java建立表時,除錯一直卡住

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