2014-01-06 41 views
0

我正在從事一個項目,我試圖通過來自C#客戶端的節儉服務器與HBase服務器通信。Thrift RPC從c#中的節儉客戶端失敗轉到HBase服務器上的節點服務器

我設置了HBase服務器。我可以打開插座。

當調用API:_hbase.getTableNames()時,它會引發異常;我加入了這個功能, 它在內部呼叫 - send_getTableNames();recv_getTableNames();

第一個函數通過(在內部它們正在寫入套接字),但在第二個 函數中,它們試圖從套接字讀取並且客戶端節儉代碼正在接收零字節,因此它會拋出異常。

這可能是什麼原因?

注意:服務器上安裝了HBase 0.92.0,並使用HBase.thrift,它在服務器端很簡單。 但是在客戶端,我們使用的是HBase 0.94.0附帶的HBase.thrift文件。 我猜這可能是原因(雖然我可能不正確)。

以下是在客戶端的代碼片段,其失敗:

transport.Open();     
var names = _hbase.getTableNames(); 
+0

請添加例外詳情。可能有幫助。 – JensG

回答

0

我使用AWS的HBase在EMR,然後紡在HBase的服務器節儉服務器。在設置節儉服務器時,AWS管理控制檯中有一個選項可設置允許的IP地址和端口號。我允許端口號爲9000,但節點服務器監聽端口號9090.一旦我將端口號9090添加到允許的端口號列表中,我就可以連接到它。

相關問題