Thrift RPC从c#中的thrift客户端故障转移到通过HBase服务器转换的thrift服务器

时间:2014-01-06 12:42:37

标签: rpc thrift

我正在开发一个项目,我试图通过来自C#客户端的thrift服务器与HBase服务器进行通信。

我已经设置了HBase服务器。我能够打开插座。

调用API:_hbase.getTableNames()时,会抛出异常;我介入了这个功能, 它内部调用 - send_getTableNames();recv_getTableNames();

第一个函数传递(内部它们正在写入套接字),但在第二个函数中 他们试图从套接字读取函数,客户端thrift代码接收零字节, 因此,这是一个例外。

这可能是什么原因?

注意:服务器上安装了HBase 0.92.0,并使用了thrift服务器端附带的HBase.thrift。 但在客户端,我们使用的是HBase 0.94.0附带的HBase.thrift文件。 我猜这可能是原因(虽然我可能不正确)。

以下是客户端的代码段失败:

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

1 个答案:

答案 0 :(得分:0)

我在EMR上使用AWS HBase,然后通过HBase服务器调整thrift服务器。在设置thrift服务器时,AWS管理控制台中有一个选项可用于设置允许的IP地址和端口号。我允许端口号为9000,但是thrift服务器侦听端口号9090.一旦我将端口号9090添加到允许的端口号列表,我就可以连接到它。