Клиент Hadoop Node Конфигурация

Предположим, что есть Hadoop Cluster с 20 машинами. Из этих 20 машин 18 машин являются подчиненными устройствами, а машина 19 предназначена для NameNode, а машина 20 предназначена для JobTracker.

Теперь я знаю, что программное обеспечение hadoop должно быть установлено на всех этих 20 машинах.

но мой вопрос заключается в том, какая машина задействована для загрузки файла xyz.txt в Hadoop Cluster. Эта клиентская машина является отдельной машиной. Нужно ли нам также устанавливать программное обеспечение Hadoop на этом компьютере. Как клиентская машина идентифицирует кластер Hadoop?

Ответ 1

Я новичок в hadoop, поэтому из того, что понял,

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

Кран node не должен быть известен кластеру (но для обеспечения безопасности), поскольку он не хранит данные и не выполняет вычисление задания. Это в основном то, что означает быть edge- node: он связан с кластером hadoop, но не участвует.

В случае, если это может помочь кому-то, вот что я сделал для подключения к кластеру, который я не администрирую:

  • получить учетную запись в кластере, скажем myaccount
  • создать учетную запись на вашем компьютере с тем же именем: myaccount
  • настроить компьютер для доступа к кластерным машинам (ssh w\out passphrase, зарегистрированный ip,...)
  • получить конфигурационные файлы hadoop из edge- node кластера
  • получить дистрибутив adoop (например, здесь)
  • распакуйте его там, где хотите, скажем /home/myaccount/hadoop-x.x
  • добавить следующие переменные среды: JAVA_HOME, HADOOP_HOME (/home/me/hadoop-x.x)
  • (если хотите) добавьте bin-bin к вашему пути: export PATH=$HADOOP_HOME/bin:$PATH
  • замените конфигурационные файлы hadoop теми, которые вы получили от края node. С hadoop 2.5.2 это папка $HADOOP_HOME/etc/hadoop
  • также мне пришлось изменить значение пары $JAVA_HOME, определенной в файлах conf. Чтобы найти их, используйте: grep -r "export.*JAVA_HOME"

Затем сделайте hadoop fs -ls /, в котором должен быть указан корневой каталог кластера hdfs.

Ответ 2

Обычно, если у вас есть кластер с несколькими арендаторами (к которому большинство кластеров hasoop привязаны), то в идеале никто, кроме администраторов, не имеет доступа к машинам, которые являются частью кластера.

Разработчики устанавливают свои собственные "краевые узлы". Edge Nodes в основном имеют библиотеки hadoop и имеют клиентскую конфигурацию, развернутую для них (различные файлы xml, которые сообщают о локальной установке, где namenode, job tracker, zookeeper и т.д. Являются основным сайтом, mapred-site, hdfs-site.xml). Но край node не имеет какой-либо роли как таковой в кластере, то есть на этом node не работают постоянные службы хаопа.

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

Таким образом, исходя из вашего требования, определение и размещение клиента различаются.

Ответ 3

Я рекомендую эту статью . "Клиентские компьютеры имеют Hadoop, установленный со всеми параметрами кластера, но не являются ни мастером, ни ведомым. Вместо этого роль клиентской машины заключается в загрузке данных в кластер, отправке заданий по сокращению карты, описывающих, как эти данные должны обрабатываться, и затем получить или просмотреть результаты задания, когда он закончил."