WebHCat в EMR Amazon?

Возможно или целесообразно запускать WebHCat в кластере Amazon Elastic MapReduce?

Я новичок в этой технологии, и мне было интересно, можно ли использовать WebHCat в качестве интерфейса REST для выполнения запросов Hive. Рассматриваемый кластер работает под управлением Hive.


person James McMahon    schedule 25.03.2014    source источник


Ответы (2)


Мне не удалось заставить его работать, но WebHCat на самом деле установлен по умолчанию на экземпляре Amazon EMR.

Чтобы запустить его, вам нужно сделать следующее,

chmod u+x /home/hadoop/hive/hcatalog/bin/hcat
chmod u+x /home/hadoop/hive/hcatalog/sbin/webhcat_server.sh
export TEMPLETON_HOME=/home/hadoop/.versions/hive-0.11.0/hcatalog/
export HCAT_PREFIX=/home/hadoop/.versions/hive-0.11.0/hcatalog/
/home/hadoop/hive/hcatalog/webhcat_server.sh start

Затем вы можете подтвердить, что он работает на порту 50111, используя curl,

curl -i http://localhost:50111/templeton/v1/status

Чтобы попасть на 50111 на других машинах, вы должны открыть порт в группе безопасности EC2 EMR.

Затем вам нужно настроить пользователей, которых вы собираетесь «прокси», когда вы запускаете запросы в hcatalog. На самом деле я не сохранял эту конфигурацию, но она обрисована в Документация WebHCat. Я бы хотел, чтобы у них были какие-то конкретные примеры, но в основном я настроил локального пользователя «hadoop» как того, кто запускает запросы, не самый безопасный способ, я уверен, но я просто пытался его запустить и запустить .

Попытка запроса затем дала мне эту ошибку,

{"error":"Сервер IPC версии 9 не может связаться с клиентом версии 4"}

Обходной путь состоял в том, чтобы отключить последний образ EMR (3.0.4 с Hadoop 2.2.0) и переключиться на образ Hadoop 1.0 (2.4.2 с Hadoop 1.0.3).

Затем я столкнулся с другими проблемами, из-за которых он не мог правильно найти банку Hive, после еще большей борьбы с конфигурацией я решил, что потратил достаточно времени, пытаясь заставить это работать, и решил напрямую связаться с Hive (используя RBHive для Ruby и JDBC для JVM).

Чтобы ответить на мой собственный вопрос, можно запустить WebHCat на EMR, но это вообще не задокументировано (гугление ни к чему меня не привело, поэтому я изначально создал этот вопрос, в настоящее время это первое попадание при поиске «WebHCat EMR» ) и документация по WebHCat оставляет желать лучшего. Заставить его работать кажется болью, хотя я надеюсь, что, написав начальные шаги, кто-то придет, проделает остальную часть пути и опубликует полный ответ.

person James McMahon    schedule 03.04.2014

Я не проверял это, но это должно быть выполнимо.

EMR позволяет настраивать действия начальной загрузки, т. е. сценарии запускаются там, где запускаются узлы. Вы можете использовать действия начальной загрузки для установки дополнительного программного обеспечения и изменения конфигурации приложений в кластере. Дополнительные сведения см. по адресу http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-bootstrap.html.

Я бы создал сценарий оболочки для установки WebHCat и сначала протестировал ваш сценарий на обычном экземпляре EC2 (вне контекста EMR — просто как тест, чтобы убедиться, что ваш сценарий в порядке)

Для проверки своих сценарий, как правило:

#!/bin/bash curl http://path_to_your_install_script.sh | sh

Затем, как только вы убедитесь, что сценарий работает, сделайте его доступным для кластера в корзине S3 и следуйте этим инструкциям, чтобы включить свой сценарий в качестве пользовательского действия начальной загрузки вашего кластера.

--Себ

person Sébastien Stormacq    schedule 03.04.2014