Почему соединение Happybase с Hbase Thrift просто перестало работать?

Вчера у меня был код, работающий и читающий из 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 ответ

Поправьте меня, если я ошибаюсь, но кажется, что REST и THRIFT не работают на одном сервере одновременно. Таким образом, похоже, что я могу либо извлечь данные из Hbase, используя THRIFT, либо передать данные в Hbase, используя REST. Если одна программа работает с извлечением данных, другая программа, которая выталкивает данные, не будет работать, и наоборот.

Я решил проблему, набрав jps (вы также можете использовать ps -a), чтобы найти номер, соответствующий процессу THRIFT. Затем я убил процесс с kill 12345, После этого я перезапустил THRIFT в фоновом режиме, набрав ./hbase-daemon.sh start thrift, После этого моя программа могла успешно извлекать данные из базы данных, но моя другая программа, которая вставляет данные, перестала работать.

В коде нет ничего плохого, проблема в том, что REST и THRIFT не работают на одном сервере одновременно.

Другие вопросы по тегам