为什么Happybase与Hbase Thrift的连接停止工作?

时间:2016-01-21 20:19:15

标签: python hbase thrift happybase nosql

我昨天有代码工作并从Hbase读取,流式传输大量数据。我没有触及代码,但不知何故,当我今天回到它时它不想打印出数据。我在服务器上做的唯一事情就是建立一个用于写入数据库的REST框架。这是代码的一部分(所以它似乎正在建立连接) -

import happybase

connection = happybase.Connection('<ip-address>', '9090')

table = connection.table('rawdataingestion')

然后,当它到达这个部分时,它就会停止工作。

n = 0
li = []
for key, data in table.scan(row_start=None):
    data = json.loads(data['cf:rawmsg'])
    li.append(data)
    n += 1
    if n == 1000:
        break

就像我说的那样,服务器上唯一改变的是我设置了REST端口(8000)。那是问题吗?我只需要从数据库中提取数据。

1 个答案:

答案 0 :(得分:0)

如果我错了,请纠正我,但似乎REST和THRIFT不能同时在同一台服务器上运行。所以我似乎可以使用THRIFT从Hbase中提取数据,或者使用REST将数据推送到Hbase。如果一个程序用于提取数据,则推送数据的另一个程序将失败,反之亦然。

我通过输入jps(您也可以使用ps -a)找到与THRIFT流程相对应的数字来解决问题。然后我用kill 12345杀死了这个过程。之后,我通过键入./hbase-daemon.sh start thrift在后​​台重新启动THRIFT。在我这样做之后,我的程序可以成功地从数据库中提取数据,但我插入数据的其他程序停止工作。

代码没有问题,问题是REST和THRIFT不能同时在同一台服务器上运行。