Учебники

Hadoop — Настройка среды

Hadoop поддерживается платформой GNU / Linux и ее разновидностями. Поэтому нам нужно установить операционную систему Linux для настройки среды Hadoop. Если у вас есть ОС, отличная от Linux, вы можете установить в нее программное обеспечение Virtualbox и установить Linux внутри Virtualbox.

Настройка перед установкой

Перед установкой Hadoop в среду Linux нам нужно настроить Linux с помощью ssh (Secure Shell). Следуйте приведенным ниже инструкциям для настройки среды Linux.

Создание пользователя

Вначале рекомендуется создать отдельного пользователя для Hadoop, чтобы изолировать файловую систему Hadoop от файловой системы Unix. Следуйте инструкциям ниже, чтобы создать пользователя —

  • Откройте корень с помощью команды «su».

  • Создайте пользователя из учетной записи root с помощью команды «useradd username».

  • Теперь вы можете открыть существующую учетную запись пользователя с помощью команды «su username».

Откройте корень с помощью команды «su».

Создайте пользователя из учетной записи root с помощью команды «useradd username».

Теперь вы можете открыть существующую учетную запись пользователя с помощью команды «su username».

Откройте терминал Linux и введите следующие команды, чтобы создать пользователя.

$ su 
   password: 
# useradd hadoop 
# passwd hadoop 
   New passwd: 
   Retype new passwd 

Настройка SSH и генерация ключей

Настройка SSH требуется для выполнения различных операций в кластере, таких как запуск, остановка, операции распределенной оболочки демона. Для аутентификации разных пользователей Hadoop требуется предоставить пару открытого / закрытого ключа для пользователя Hadoop и поделиться ею с разными пользователями.

Следующие команды используются для генерации пары ключ-значение с использованием SSH. Скопируйте открытые ключи из формы id_rsa.pub в authorized_keys и предоставьте владельцу права на чтение и запись в файл authorized_keys соответственно.

$ ssh-keygen -t rsa 
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 
$ chmod 0600 ~/.ssh/authorized_keys 

Установка Java

Java является основной предпосылкой для Hadoop. Прежде всего, вы должны проверить существование java в вашей системе, используя команду «java -version». Синтаксис команды версии Java приведен ниже.

$ java -version 

Если все в порядке, это даст вам следующий вывод.

java version "1.7.0_71" 
Java(TM) SE Runtime Environment (build 1.7.0_71-b13) 
Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode)  

Если java не установлен в вашей системе, следуйте приведенным ниже инструкциям для установки java.

Шаг 1

Загрузите Java (JDK <последняя версия> — X64.tar.gz), перейдя по следующей ссылке www.oracle.com

Затем jdk-7u71-linux-x64.tar.gz будет загружен в вашу систему.

Шаг 2

Обычно вы найдете загруженный файл Java в папке Downloads. Проверьте его и извлеките файл jdk-7u71-linux-x64.gz, используя следующие команды.

$ cd Downloads/ 
$ ls 
jdk-7u71-linux-x64.gz 

$ tar zxf jdk-7u71-linux-x64.gz 
$ ls 
jdk1.7.0_71   jdk-7u71-linux-x64.gz 

Шаг 3

Чтобы сделать Java доступным для всех пользователей, вы должны переместить его в папку «/ usr / local /». Откройте root и введите следующие команды.

$ su 
password: 
# mv jdk1.7.0_71 /usr/local/ 
# exit 

Шаг 4

Для настройки переменных PATH и JAVA_HOME добавьте следующие команды в файл ~ / .bashrc .

export JAVA_HOME=/usr/local/jdk1.7.0_71 
export PATH=$PATH:$JAVA_HOME/bin 

Теперь примените все изменения в текущей работающей системе.

$ source ~/.bashrc

Шаг 5

Используйте следующие команды для настройки альтернатив Java —

# alternatives --install /usr/bin/java java usr/local/java/bin/java 2
# alternatives --install /usr/bin/javac javac usr/local/java/bin/javac 2
# alternatives --install /usr/bin/jar jar usr/local/java/bin/jar 2

# alternatives --set java usr/local/java/bin/java
# alternatives --set javac usr/local/java/bin/javac
# alternatives --set jar usr/local/java/bin/jar

Теперь проверьте команду java -version из терминала, как описано выше.

Загрузка Hadoop

Загрузите и извлеките Hadoop 2.4.1 из программного обеспечения Apache, используя следующие команды.

$ su 
password: 
# cd /usr/local 
# wget http://apache.claz.org/hadoop/common/hadoop-2.4.1/ 
hadoop-2.4.1.tar.gz 
# tar xzf hadoop-2.4.1.tar.gz 
# mv hadoop-2.4.1/* to hadoop/ 
# exit 

Режимы работы Hadoop

Загрузив Hadoop, вы можете управлять кластером Hadoop в одном из трех поддерживаемых режимов:

  • Локальный / автономный режим — после загрузки Hadoop в вашу систему по умолчанию он настраивается в автономном режиме и может работать как отдельный процесс Java.

  • Псевдораспределенный режим — это распределенное моделирование на одной машине. Каждый демон Hadoop, такой как hdfs, yarn, MapReduce и т. Д., Будет работать как отдельный процесс Java. Этот режим полезен для разработки.

  • Полностью распределенный режим — этот режим полностью распределен с минимум двумя или более компьютерами в качестве кластера. Мы подробно познакомимся с этим режимом в следующих главах.

Локальный / автономный режим — после загрузки Hadoop в вашу систему по умолчанию он настраивается в автономном режиме и может работать как отдельный процесс Java.

Псевдораспределенный режим — это распределенное моделирование на одной машине. Каждый демон Hadoop, такой как hdfs, yarn, MapReduce и т. Д., Будет работать как отдельный процесс Java. Этот режим полезен для разработки.

Полностью распределенный режим — этот режим полностью распределен с минимум двумя или более компьютерами в качестве кластера. Мы подробно познакомимся с этим режимом в следующих главах.

Установка Hadoop в автономном режиме

Здесь мы обсудим установку Hadoop 2.4.1 в автономном режиме.

Демоны не запущены, и все работает в одной виртуальной машине Java. Автономный режим подходит для запуска программ MapReduce во время разработки, поскольку их легко тестировать и отлаживать.

Настройка Hadoop

Вы можете установить переменные среды Hadoop, добавив следующие команды в файл ~ / .bashrc .

export HADOOP_HOME=/usr/local/hadoop 

Прежде чем продолжить, вы должны убедиться, что Hadoop работает нормально. Просто введите следующую команду —

$ hadoop version 

Если с вашими настройками все в порядке, вы должны увидеть следующий результат:

Hadoop 2.4.1 
Subversion https://svn.apache.org/repos/asf/hadoop/common -r 1529768 
Compiled by hortonmu on 2013-10-07T06:28Z 
Compiled with protoc 2.5.0
From source with checksum 79e53ce7994d1628b240f09af91e1af4 

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

пример

Давайте проверим простой пример Hadoop. Установка Hadoop предоставляет следующий пример jar-файла MapReduce, который предоставляет базовые функциональные возможности MapReduce и может использоваться для вычисления, например, значения Pi, количества слов в заданном списке файлов и т. Д.

$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar 

Давайте создадим входной каталог, в который мы добавим несколько файлов, и наше требование — подсчитать общее количество слов в этих файлах. Чтобы вычислить общее количество слов, нам не нужно писать наш MapReduce, при условии, что файл .jar содержит реализацию для подсчета слов. Вы можете попробовать другие примеры, используя тот же файл .jar; просто выполните следующие команды, чтобы проверить поддерживаемые функциональные программы MapReduce с помощью файла hadoop-mapreduce-examples-2.2.0.jar.

$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.2.0.jar 

Шаг 1

Создайте временные файлы содержимого во входном каталоге. Вы можете создать этот входной каталог в любом месте, где бы вы хотели работать.

$ mkdir input 
$ cp $HADOOP_HOME/*.txt input 
$ ls -l input 

Это даст следующие файлы в вашем входном каталоге —

total 24 
-rw-r--r-- 1 root root 15164 Feb 21 10:14 LICENSE.txt 
-rw-r--r-- 1 root root   101 Feb 21 10:14 NOTICE.txt
-rw-r--r-- 1 root root  1366 Feb 21 10:14 README.txt 

Эти файлы были скопированы из домашнего каталога установки Hadoop. Для вашего эксперимента вы можете иметь разные и большие наборы файлов.

Шаг 2

Давайте запустим процесс Hadoop, чтобы подсчитать общее количество слов во всех файлах, доступных во входном каталоге, следующим образом:

$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.2.0.jar  wordcount input output 

Шаг 3

Шаг 2 выполнит необходимую обработку и сохранит вывод в файле output / part-r00000, который можно проверить с помощью —

$cat output/* 

Он перечислит все слова вместе с их общим количеством, доступным во всех файлах, доступных во входном каталоге.

"AS      4 
"Contribution" 1 
"Contributor" 1 
"Derivative 1
"Legal 1
"License"      1
"License");     1 
"Licensor"      1
"NOTICE”        1 
"Not      1 
"Object"        1 
"Source”        1 
"Work”    1 
"You"     1 
"Your")   1 
"[]"      1 
"control"       1 
"printed        1 
"submitted"     1 
(50%)     1 
(BIS),    1 
(C)       1 
(Don't)   1 
(ECCN)    1 
(INCLUDING      2 
(INCLUDING,     2 
.............

Установка Hadoop в псевдо-распределенном режиме

Выполните шаги, указанные ниже, чтобы установить Hadoop 2.4.1 в псевдораспределенном режиме.

Шаг 1 — Настройка Hadoop

Вы можете установить переменные среды Hadoop, добавив следующие команды в файл ~ / .bashrc .

export HADOOP_HOME=/usr/local/hadoop 
export HADOOP_MAPRED_HOME=$HADOOP_HOME 
export HADOOP_COMMON_HOME=$HADOOP_HOME 

export HADOOP_HDFS_HOME=$HADOOP_HOME 
export YARN_HOME=$HADOOP_HOME 
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin 
export HADOOP_INSTALL=$HADOOP_HOME 

Теперь примените все изменения в текущей работающей системе.

$ source ~/.bashrc 

Шаг 2 — Настройка Hadoop

Вы можете найти все файлы конфигурации Hadoop в папке «$ HADOOP_HOME / etc / hadoop». Необходимо внести изменения в эти файлы конфигурации в соответствии с вашей инфраструктурой Hadoop.

$ cd $HADOOP_HOME/etc/hadoop

Чтобы разрабатывать программы Hadoop на языке java, необходимо сбросить переменные среды java в файле hadoop-env.sh , заменив значение JAVA_HOME местоположением java в вашей системе.

export JAVA_HOME=/usr/local/jdk1.7.0_71

Ниже приведен список файлов, которые вы должны отредактировать для настройки Hadoop.

ядро-site.xml

Файл core-site.xml содержит такую ​​информацию, как номер порта, используемый для экземпляра Hadoop, память, выделенная для файловой системы, лимит памяти для хранения данных и размер буферов чтения / записи.

Откройте файл core-site.xml и добавьте следующие свойства между тегами <configuration>, </ configuration>.

<configuration>
   <property>
      <name>fs.default.name</name>
      <value>hdfs://localhost:9000</value> 
   </property>
</configuration>

HDFS-site.xml

Файл hdfs-site.xml содержит такую ​​информацию, как значение данных репликации, путь namenode и пути datanode вашей локальной файловой системы. Это место, где вы хотите хранить инфраструктуру Hadoop.

Допустим, следующие данные.

dfs.replication (data replication value) = 1 

(In the below given path /hadoop/ is the user name. 
hadoopinfra/hdfs/namenode is the directory created by hdfs file system.) 
namenode path = //home/hadoop/hadoopinfra/hdfs/namenode 

(hadoopinfra/hdfs/datanode is the directory created by hdfs file system.) 
datanode path = //home/hadoop/hadoopinfra/hdfs/datanode 

Откройте этот файл и добавьте следующие свойства между тегами <configuration> </ configuration> в этом файле.

<configuration>
   <property>
      <name>dfs.replication</name>
      <value>1</value>
   </property>
    
   <property>
      <name>dfs.name.dir</name>
      <value>file:///home/hadoop/hadoopinfra/hdfs/namenode </value>
   </property>
    
   <property>
      <name>dfs.data.dir</name> 
      <value>file:///home/hadoop/hadoopinfra/hdfs/datanode </value> 
   </property>
</configuration>

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

Пряжа-site.xml

Этот файл используется для настройки пряжи в Hadoop. Откройте файл yarn-site.xml и добавьте следующие свойства между тегами <configuration>, </ configuration> в этом файле.

<configuration>
   <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value> 
   </property>
</configuration>

mapred-site.xml

Этот файл используется, чтобы указать, какую платформу MapReduce мы используем. По умолчанию Hadoop содержит шаблон yarn-site.xml. Прежде всего, необходимо скопировать файл из mapred-site.xml.template в файл mapred-site.xml с помощью следующей команды.

$ cp mapred-site.xml.template mapred-site.xml 

Откройте файл mapred-site.xml и добавьте следующие свойства между тегами <configuration>, </ configuration> в этом файле.

<configuration>
   <property> 
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
   </property>
</configuration>

Проверка правильности установки Hadoop

Следующие шаги используются для проверки установки Hadoop.

Шаг 1 — Настройка узла имени

Настройте namenode с помощью команды «hdfs namenode -format» следующим образом.

$ cd ~ 
$ hdfs namenode -format 

Ожидаемый результат заключается в следующем.

10/24/14 21:30:55 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************ 
STARTUP_MSG: Starting NameNode 
STARTUP_MSG:   host = localhost/192.168.1.11 
STARTUP_MSG:   args = [-format] 
STARTUP_MSG:   version = 2.4.1 
...
...
10/24/14 21:30:56 INFO common.Storage: Storage directory 
/home/hadoop/hadoopinfra/hdfs/namenode has been successfully formatted. 
10/24/14 21:30:56 INFO namenode.NNStorageRetentionManager: Going to 
retain 1 images with txid >= 0 
10/24/14 21:30:56 INFO util.ExitUtil: Exiting with status 0 
10/24/14 21:30:56 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************ 
SHUTDOWN_MSG: Shutting down NameNode at localhost/192.168.1.11 
************************************************************/

Шаг 2 — Проверка Hadoop dfs

Следующая команда используется для запуска dfs. Выполнение этой команды запустит вашу файловую систему Hadoop.

$ start-dfs.sh 

Ожидаемый результат следующий:

10/24/14 21:37:56 
Starting namenodes on [localhost] 
localhost: starting namenode, logging to /home/hadoop/hadoop
2.4.1/logs/hadoop-hadoop-namenode-localhost.out 
localhost: starting datanode, logging to /home/hadoop/hadoop
2.4.1/logs/hadoop-hadoop-datanode-localhost.out 
Starting secondary namenodes [0.0.0.0]

Шаг 3 — Проверка скрипта пряжи

Следующая команда используется для запуска скрипта пряжи. Выполнение этой команды запустит ваши демоны пряжи.

$ start-yarn.sh 

Ожидаемый результат следующим образом —

starting yarn daemons 
starting resourcemanager, logging to /home/hadoop/hadoop
2.4.1/logs/yarn-hadoop-resourcemanager-localhost.out 
localhost: starting nodemanager, logging to /home/hadoop/hadoop
2.4.1/logs/yarn-hadoop-nodemanager-localhost.out 

Шаг 4 — Доступ к Hadoop в браузере

Номер порта по умолчанию для доступа к Hadoop — 50070. Используйте следующий URL-адрес, чтобы получить службы Hadoop в браузере.

http://localhost:50070/

Доступ к Hadoop в браузере

Шаг 5 — Проверьте все приложения для кластера

Номер порта по умолчанию для доступа ко всем приложениям кластера — 8088. Используйте следующий URL для посещения этой службы.

http://localhost:8088/