Пишите в HDFS / Hive, используя NiFi - PullRequest
0 голосов
/ 27 мая 2018

Я использую Nifi 1.6.0.

Я пытаюсь записать в HDFS и Hive (cloudera) с помощью nifi.

  1. На "PutHDFS" I 'Я могу настроить «Ресурсы конфигурации Hadoop» с помощью файлов hdfs-site.xml, core-site.xml, установить каталоги, и при попытке запустить его я получил следующую ошибку:

"Не удалось правильно инициализировать процессор, если все еще запланировано запустить его, NIFI попытается инициализировать и запустить процессор снова после истечения« Длительности административного выхода ». Сбой из-за java.lang.reflect.InvocationTargetException: java.lang.reflect.InvicationTargetException "

В «PutHiveStreaming» я настраиваю «URI Metastore Hive» с thrift: // ..., базой данных и именем таблицы, а в «Ресурсах конфигурации Hadoop» я помещаю местоположение Hive-site.xmlи когда я пытаюсь запустить его, я получаю следующую ошибку:

"Ошибка подключения / записи потокового Hive, файл потока будет оштрафован и направлен на повторную попытку. org.apache.nifi.util.hive.HiveWritter $ ConnectFailure: Не удалось подключиться к EndPoint {metaStoreUri = 'thrift: // myserver: 9083', database = 'mydbname', table = 'mytablename', partitionVals = []}: ".

Как я могу устранить ошибки?

Спасибо.

1 Ответ

0 голосов
/ 27 мая 2018

Для # 1, если вы получили файлы * -site.xml из кластера, возможно, они используют внутренние IP-адреса для ссылки на такие компоненты, как узлы данных, и вы не сможете получить к ним доступ напрямую, используя это.Попробуйте установить dfs.client.use.datanode.hostname в значение true в вашем hdfs-site.xml на клиенте.

Для # 2 я не уверен, что PutHiveStreaming будет работать против Cloudera, IIRC они используют Hive 1.1.x и PutHiveStreaming основанна 1.2.x, поэтому могут быть некоторые несовместимости с Thrift.Если это не похоже на проблему, убедитесь, что клиент может подключиться к порту метастаза (выглядит как 9083).

...