2014-01-06 40 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添加到允许的端口号列表中,我就可以连接到它。

相关问题