0

我昨天从 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)。那是问题吗?我只需要从数据库中提取数据。

4

1 回答 1

0

如果我错了,请纠正我,但似乎 REST 和 THRIFT 不能同时在同一台服务器上工作。因此,看来我可以使用 THRIFT 从 Hbase 提取数据,也可以使用 REST 将数据推送到 Hbase。如果一个程序在提取数据时工作,则另一个推送数据的程序将失败,反之亦然。

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

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

于 2016-01-22T12:57:26.083 回答