2013-06-18 114 views
0

我正嘗試在Amazon EMR上設置測試集羣。使用一個主節點和兩個從節點,端口將打開60000-65535,並在主設備2181上打開。亞馬遜EMR上的HBase集羣,客戶端錯誤:NoServerForRegionException

HBase的hbck

Version: 0.92.0 

Number of Tables: 2 
Number of live region servers: 2 
Number of dead region servers: 0 
Master: 10.33.204.***,60000,1371570170893 
Number of backup masters: 0 
Number of empty REGIONINFO_QUALIFIER rows in .META.: 0 
Summary: 
    -ROOT- is okay. 
    Number of regions: 1 
    Deployed on: ip-10-33-188-***.eu-west-1.compute.internal,60020,1371570165684 
    .META. is okay. 
    Number of regions: 1 
    Deployed on: ip-10-33-159-***.eu-west-1.compute.internal,60020,1371570171430 
    firstTS is okay. 
    Number of regions: 1 
    Deployed on: ip-10-33-159-***.eu-west-1.compute.internal,60020,1371570171430 
    sensorValues is okay. 
    Number of regions: 1 
    Deployed on: ip-10-33-159-***.eu-west-1.compute.internal,60020,1371570171430 

因此該地區服務器啓動並運行,我的客戶端可以連接到動物園管理員實例的主節點上:

conf = HBaseConfiguration.create(); 
conf.set("hbase.zookeeper.quorum", "ec2-54-******.eu-west-1.compute.amazonaws.com"); 

但執行後拋出錯誤HTableInterface table = pool.getTable("sensorValues");

org.apache.hadoop.hbase.client.NoServerForRegionException: Unable to find region for sensorValues,,99999999999999 after 10 tries.

在HBase Master WebUI提供的日誌中找不到任何有用的東西。

我用hbase-site.xml,因爲它是貝亞馬遜EMR產生:

<configuration> 
    <property><name>fs.hdfs.impl</name><value>emr.hbase.fs.BlockableFileSystem</value></property> 
    <property><name>hbase.regionserver.handler.count</name><value>100</value></property> 
    <property><name>hbase.zookeeper.quorum</name><value>ip-10-33-204-***.eu-west-1.compute.internal</value></property> 
    <property><name>hbase.rootdir</name><value>hdfs://10.33.204.***:9000/hbase</value></property> 
    <property><name>hbase.cluster.distributed</name><value>true</value></property> 
    <property><name>hbase.tmp.dir</name><value>/mnt/var/lib/hbase/tmp-data</value></property> 
    </configuration> 

是這個問題涉及到結合的區域服務器到內部私有DNS域?我怎樣才能解決這個問題?

UPDATE:第二次嘗試完全相同的設置後,我沒有得到錯誤。區域服務器需要具有可從客戶端訪問的域名。所以我將我的應用程序也移動到亞馬遜雲中,通過私有DNS訪問區域服務器。

回答

0

第二次嘗試完全相同的設置,我沒有得到錯誤後。區域服務器需要具有可從客戶端訪問的域名。所以我將我的應用程序也移動到亞馬遜雲中,通過私有DNS訪問區域服務器。

0

在客戶端添加此屬性,看看它的工作原理:

conf.set("hbase.zookeeper.property.clientPort","2181"); 
+0

就像我說的,客戶端很好地連接到Zookeeper。 (這表明他已經知道默認端口)'org.apache.zookeeper.ClientCnxn - 會話建立在服務器ec2-54-216上完成 - ***。eu-west-1.compute.amazonaws.com/54.216.* **:2181,sessionid = 0x13f576be525009f,協商超時時間= 180000' – seb

+0

請教你告訴我錯誤日誌? – Tariq

+0

你能告訴我究竟,你的意思是?因爲我不想爲不工作的集羣支付費用,所以我安裝了下一個集羣,然後我可以提供詳細的日誌。 – seb