Чтение файла, созданного в HDFS с Livy

Я использую Livy для запуска примера wordcount, создавая файл jar, который работает отлично, и записывая вывод в HDFS. Теперь я хочу вернуть результат на мою HTML-страницу. Я использую Spark Scala, SBT, HDFS и Livy.

API REST GET / batch отображает только журнал и состояние.

Как я могу получить выходные результаты?

Или как я могу прочитать файл в HDFS, используя REST API в Livy? Пожалуйста, помогите мне с этим.

Заранее спасибо.

2 ответа

Вы можете использовать WebHDFS в своем вызове REST. Сначала включите WebHDFS, используя Admin.

  1. Используйте URL-адрес webHDFS
  2. Создать объект HttpURLConnection
  3. Установить метод запроса как GET

затем используйте читатель буфера для getInputStream.

Если вы проверите статус для пакетов с помощью curl, вы получите статус пакетного задания Livy, которое будет завершено (если драйвер спуска запустился успешно).

Чтобы прочитать вывод: 1. Вы можете использовать SSH с помощью paramiko на машине, на которой работает hdfs, и запустить hdfs dfs -ls /, чтобы проверить вывод и выполнить желаемые задачи.

  1. Используя Livy rest API, вам нужно написать сценарий, который выполняет шаг 1, и этот сценарий можно вызвать с помощью команды curl для извлечения выходных данных из HDFS, но в этом случае Livy запустит отдельный драйвер искры, и вывод поступит в STDOUT журналы драйверов.

curl -vvv -u:: / batches -X POST --data '{"file": "http: //"}' -H "Тип содержимого: application/json"

Первый - это верный способ получить результат, хотя я не уверен на 100%, как поведет себя второй подход.

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