我昨天有代码工作并从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)。那是问题吗?我只需要从数据库中提取数据。
答案 0 :(得分:0)
如果我错了,请纠正我,但似乎REST和THRIFT不能同时在同一台服务器上运行。所以我似乎可以使用THRIFT从Hbase中提取数据,或者使用REST将数据推送到Hbase。如果一个程序用于提取数据,则推送数据的另一个程序将失败,反之亦然。
我通过输入jps
(您也可以使用ps -a
)找到与THRIFT流程相对应的数字来解决问题。然后我用kill 12345
杀死了这个过程。之后,我通过键入./hbase-daemon.sh start thrift
在后台重新启动THRIFT。在我这样做之后,我的程序可以成功地从数据库中提取数据,但我插入数据的其他程序停止工作。
代码没有问题,问题是REST和THRIFT不能同时在同一台服务器上运行。