2017-01-05 11 views
1

полный новичок в PigLatin, но ищет для извлечения данных из MetOffice DataPoint API т.д .:Вызов API из PigLatin

http://datapoint.metoffice.gov.uk/public/data/val/wxfcs/all/xml/350509?res=3hourly&key=abc123 ....

... в Hadoop.

Мой вопрос: «Может ли это быть выполнено с использованием PigLatin (изнутри Pig View, в Амбари)»?

Я охотился за тем, как отформатировать запрос GET в код, но без везения.

Я лаю неправильное дерево? Должен ли я искать другую службу в рамках Hadoop для этого?

ответ

1

Очень плохая идея совершать вызовы внешним службам из-за работы по сокращению карты. Причина в том, что при работе на кластере ваши задания очень масштабируемы, тогда как внешняя система может быть не такой. Современные менеджеры ресурсов, такие как YARN, делают эту ситуацию еще хуже, когда вы загружаете внешнюю систему с запросами, ваши задачи в кластере будут в основном спать, ожидая ответа с сервера. Менеджер ресурсов увидит, что ЦП не используется задачами, и планирует выполнение большего числа ваших задач, что сделает еще больше запросов к внешней системе, и еще больше заманивает их. Я видел скромный 100 машинных кластеров, из которых 100 тыс. Запросов в секунду.

Что вы действительно хотите сделать, так или иначе получить массовые данные из веб-службы или настроить систему с очередью и несколькими контролируемыми числами работников, которые будут извлекать из внешней системы с установленной скоростью.

Что касается вашего оригинального вопроса, я не думаю, что PigLatin предоставляет такую ​​услугу, но его можно легко сделать с помощью UDF либо Python, либо Java. С Python вы можете использовать отличную библиотеку requests, которая сделает ваш UDF примерно 6 строк кода. Java UDF будет немного более подробным, но ничего страшного со стандартами Java.

+0

Большое спасибо @ Vlad, я исследую библиотеку запросов Python, как вы предлагаете. – Jon295087

0

«Может ли это быть выполнено с использованием PigLatin (изнутри Pig View, in Ambari)»?

Нет, по умолчанию Свинцовая нагрузка из хранилища HDFS, если вы не написали свой собственный загрузчик.

И я разделяю одну и ту же точку с @Vlad, что это не очень хорошая идея, у вас есть много других других компонентов, используемых для проглатывания данных, но это не случай использования Pig!

+0

Спасибо за помощь @ 54l3d – Jon295087