Учебники

Talend — распределенная файловая система Hadoop

В этой главе мы подробно узнаем о том, как Talend работает с распределенной файловой системой Hadoop.

Настройки и предварительные условия

Прежде чем мы перейдем к Talend с HDFS, мы должны узнать о настройках и предварительных условиях, которые должны быть выполнены для этой цели.

Здесь мы запускаем Cloudera quickstart 5.10 VM на виртуальной коробке. В этой виртуальной машине должна использоваться сеть только для хоста.

IP-адрес только для хоста: 192.168.56.101

Предварительные реквизиты

У вас должен быть тот же хост, работающий на менеджере Cloudera.

Cloudera Manager

Теперь в вашей системе Windows перейдите в c: \ Windows \ System32 \ Drivers \ etc \ hosts и отредактируйте этот файл с помощью Блокнота, как показано ниже.

Система Windows

Аналогично, на вашей виртуальной машине cloudera quickstart отредактируйте файл / etc / hosts, как показано ниже.

sudo gedit /etc/hosts

Хосты

Настройка подключения Hadoop

На панели хранилища перейдите в раздел Метаданные. Щелкните правой кнопкой мыши Hadoop Cluster и создайте новый кластер. Укажите имя, назначение и описание для этого кластерного соединения Hadoop.

Нажмите кнопку «Далее.

Hadoop Connection

Выберите дистрибутив как cloudera и выберите версию, которую вы используете. Выберите опцию получения конфигурации и нажмите «Далее».

Конфигурация Hadoop

Введите учетные данные менеджера (URI с портом, именем пользователя, паролем), как показано ниже, и нажмите «Подключиться». Если данные верны, вы получите Cloudera QuickStart под обнаруженными кластерами.

Учетные данные менеджера

Нажмите «Получить». Это позволит получить все соединения и конфигурации для HDFS, YARN, HBASE, HIVE.

Выберите Все и нажмите Готово.

Нажмите Fetch

Обратите внимание, что все параметры подключения будут заполнены автоматически. Укажите cloudera в имени пользователя и нажмите Finish.

Параметры подключения

Благодаря этому вы успешно подключились к кластеру Hadoop.

Кластер Hadoop

Подключение к HDFS

В этой работе мы перечислим все каталоги и файлы, которые присутствуют в HDFS.

Сначала мы создадим задание, а затем добавим к нему компоненты HDFS. Щелкните правой кнопкой мыши на Job Design и создайте новую работу — hadoopjob.

Теперь добавьте 2 компонента из палитры — tHDFSConnection и tHDFSList. Щелкните правой кнопкой мыши tHDFSConnection и соедините эти 2 компонента, используя триггер OnSubJobOk.

Теперь настройте оба компонента talend hdfs.

Подключение Hdfs

В tHDFSConnection выберите «Хранилище» в качестве типа свойства и выберите кластер Hadoop cloudera, который вы создали ранее. Он автоматически заполнит все необходимые данные, необходимые для этого компонента.

Тип недвижимости

В tHDFSList выберите «Использовать существующее соединение», а в списке компонентов выберите настроенное соединение tHDFSConnection.

Укажите домашний путь HDFS в каталоге HDFS и нажмите кнопку обзора справа.

Кнопка просмотра

Если вы правильно установили соединение с вышеупомянутыми конфигурациями, вы увидите окно, показанное ниже. В нем будут перечислены все каталоги и файлы, имеющиеся на домашней HDFS.

Просмотр Hdfs

Вы можете убедиться в этом, проверив HDFS на cloudera.

Проверка Hdfs

Чтение файла из HDFS

В этом разделе давайте разберемся, как читать файл из HDFS в Talend. Вы можете создать новую работу для этой цели, однако здесь мы используем существующую.

Перетащите 3 компонента — tHDFSConnection, tHDFSInput и tLogRow из палитры в окно конструктора.

Щелкните правой кнопкой мыши tHDFSConnection и подключите компонент tHDFSInput с помощью триггера OnSubJobOk.

Щелкните правой кнопкой мыши tHDFSInput и перетащите основную ссылку на tLogRow.

Чтение Файла

Обратите внимание, что tHDFSConnection будет иметь конфигурацию, аналогичную ранее. В tHDFSInput выберите «Использовать существующее соединение» и в списке компонентов выберите tHDFSConnection.

В поле Имя файла укажите путь к файлу HDFS, который вы хотите прочитать. Здесь мы читаем простой текстовый файл, поэтому наш тип файла — текстовый файл. Точно так же, в зависимости от вашего ввода, заполните разделитель строк, разделитель полей и данные заголовка, как указано ниже. Наконец, нажмите кнопку Изменить схему.

Кнопка Изменить схему

Поскольку в нашем файле просто текст, мы добавляем только один столбец типа String. Теперь нажмите Ok.

Примечание. Если вход содержит несколько столбцов разных типов, необходимо указать схему здесь соответствующим образом.

Несколько столбцов

В компоненте tLogRow щелкните Синхронизировать столбцы в схеме редактирования.

Выберите режим, в котором вы хотите, чтобы ваш вывод был распечатан.

Выберите режим

Наконец, нажмите Run, чтобы выполнить задание.

После того, как вы успешно прочитали файл HDFS, вы можете увидеть следующий результат.

Успешное чтение

Запись файла в HDFS

Давайте посмотрим, как написать файл из HDFS в Talend. Перетащите 3 компонента — tHDFSConnection, tFileInputDelimited и tHDFSOutput из палитры в окно конструктора.

Щелкните правой кнопкой мыши tHDFSConnection и подключите компонент tFileInputDelimited с помощью триггера OnSubJobOk.

Щелкните правой кнопкой мыши tFileInputDelimited и перетащите основную ссылку в tHDFSOutput.

Главная ссылка

Обратите внимание, что tHDFSConnection будет иметь конфигурацию, аналогичную ранее.

Теперь в tFileInputDelimited укажите путь к входному файлу в опции File name / Stream. Здесь мы используем CSV-файл в качестве входных данных, поэтому разделитель полей — «,».

Выберите верхний и нижний колонтитулы, лимит в соответствии с вашим входным файлом. Обратите внимание, что здесь наш заголовок равен 1, поскольку строка 1 содержит имена столбцов, а ограничение равно 3, поскольку мы записываем только первые 3 строки в HDFS.

Теперь нажмите «Изменить схему».

Выберите заголовок

Теперь, согласно нашему входному файлу, определите схему. Наш входной файл имеет 3 столбца, как указано ниже.

Входной файл

В компоненте tHDFSOutput щелкните по столбцам синхронизации. Затем выберите tHDFSConnection в Использовать существующее соединение. Также в поле «Имя файла» укажите путь HDFS, в который вы хотите записать свой файл.

Обратите внимание, что тип файла будет текстовым, действие будет «создавать», разделитель строк будет «\ n», а разделитель полей — «;»

Разделитель строк

Наконец, нажмите Run, чтобы выполнить вашу работу. После успешного выполнения задания проверьте, есть ли ваш файл в HDFS.

Выполнено успешно

Запустите следующую команду hdfs с выходным путем, который вы упомянули в своей работе.

hdfs dfs -cat /input/talendwrite

Вы увидите следующий вывод, если вы успешно пишете на HDFS.