Node.js и HBase в Azure (HDInsight)

Я пытаюсь получить доступ к HBase в Microsoft Azure из Node.js. Я просмотрел разные библиотеки, такие как hbase, а также REST API (webhcat). Чего я хочу добиться, так это создать таблицу и загрузить данные из Node. Позже я хочу делать запросы к этому набору данных. К сожалению, документация от Azure не очень полезна в этом вопросе, так как она сосредоточена на PowerShell и .NET SDK.

Я нашел одну очень полезную статью: native-powershell-or-node-js.aspx" rel="nofollow">http://blogs.msdn.com/b/bigdatasupport/archive/2014/04/22/querying-hdinsight-job-status-with- webhcat-via-native-powershell-or-node-js.aspx Запрос статуса задания у меня работает нормально, но я немного застрял, когда дело доходит до адаптации запроса для загрузки и запроса данных. Возможно ли это даже с использованием API webhcat (бывший Templeton)?

На этой странице Azure описано, как использовать Hive или REST API для взаимодействия с HBase в HDInsight: http://azure.microsoft.com/en-us/documentation/articles/hdinsight-hbase-get-started/#hive-query Однако я не Не знаете, можно ли это сделать с помощью node.js, а не PowerShell?

Я был бы очень благодарен за любые мысли и ведет в правильном направлении!!


person user3122267    schedule 01.08.2014    source источник


Ответы (1)


Вы можете использовать HBase REST API в HDInsight, но перед ним необходимо добавить /hbaserest/.

Вам также необходимо предоставить базовые учетные данные для аутентификации, которые предоставляются при создании кластера. Это также должно работать с любым допустимым пользователем Hadoop в кластере.

Конечная точка: https://[clustername].azurehdinsight.net/hbaserest/

Остальная часть REST API задокументирована здесь: https://wiki.apache.org/hadoop/Hbase/Stargate

Так, например, в узле:

var superagent = require('superagent')
superagent.get('https://clustername.azurehdinsight.net/hbaserest/my_table/schema')
.auth(username, password)
.end(function(err, result) {
    console.log(result.text)
})

Существуют модули NPM для hbase, но в настоящее время (v 0.1.7) они не поддерживают проверку подлинности или SSL, которые необходимы для кластеров HDInsight Hbase.

person Simon Elliston Ball    schedule 01.08.2014
comment
большое спасибо, это работает отлично! Только одну вещь, которую я заметил: когда я успешно удаляю таблицу, я получаю код ответа 502, хотя в документации говорится, что это должно быть 200. (В случае неудачи возвращается соответствующий код состояния ошибки HTTP. В случае успеха возвращается статус HTTP 200) вы знаете, почему это так? - person user3122267; 07.08.2014
comment
@ user3122267 502 от шлюза. Либо ваш запрос не прошел внутри, либо что-то случилось на шлюзе. Вам нужно проверить. В основном оставшийся запрос будет проходить через шлюз и перенаправляться на любой из остальных серверов. - person onpduo; 06.11.2014