Hadoop - это программный фреймворк с открытым исходным кодом, разработанный Apache для обработки больших данных. Оно использует HDFS (Распределенная файловая система Hadoop) для хранения данных по всем узлам данных в кластере распределенным образом и модели mapreduce для обработки данных.
Namenode (NN) - это главный демон, который управляет HDFS и Jobtracker (JT) - главный демон для движка mapreduce.
В этом уроке я использую два CentOS 6.3 ВМ ‘владелец' и 'узел‘А именно. (master и node - мои имена хостов). «Главный» IP-адрес 172.21.17.175 а IP-адрес узла - ‘172.21.17.188‘. Следующие инструкции также работают с RHEL/CentOS 6.x версии.
[[электронная почта защищена] ~] # имя хоста владелец
[[электронная почта защищена] ~] # ifconfig | grep 'inet addr' | head -1 inet addr:172.21.17.175 Bcast: 172.21.19.255 Маска: 255.255.252.0
[[электронная почта защищена] ~] # имя хоста узел
[[электронная почта защищена] ~] # ifconfig | grep 'inet addr' | head -1 inet addr:172.21.17.188 Bcast: 172.21.19.255 Маска: 255.255.252.0
Сначала убедитесь, что все узлы кластера находятся в ‘/ Etc / hosts‘Файл (на каждом узле), если у вас не настроен DNS.
[[электронная почта защищена] ~] # cat / etc / hosts 172.21.17.175 master. 172.21.17.188 узел
[[электронная почта защищена] ~] # cat / etc / hosts 172.21.17.197 qabox. 172.21.17.176 ансибл-земля
Мы используем официальные CDH репозиторий для установки CDH4 на всех хостах (Master и Node) в кластере.
Перейти к официальному CDH скачать страницу и возьмите CDH4 (т.е. 4.6) версию или вы можете использовать следующие wget команда для загрузки репозитория и его установки.
# wget http://archive.cloudera.com/cdh4/one-click-install/redhat/6/i386/cloudera-cdh-4-0.i386.rpm. # yum --nogpgcheck localinstall cloudera-cdh-4-0.i386.rpm
# wget http://archive.cloudera.com/cdh4/one-click-install/redhat/6/x86_64/cloudera-cdh-4-0.x86_64.rpm. # yum --nogpgcheck localinstall cloudera-cdh-4-0.x86_64.rpm
Перед установкой многоузлового кластера Hadoop добавьте открытый ключ GPG Cloudera в свой репозиторий, выполнив одну из следующих команд в соответствии с архитектурой вашей системы.
## в 32-битной системе ## # rpm --import http://archive.cloudera.com/cdh4/redhat/6/i386/cdh/RPM-GPG-KEY-cloudera
## в 64-битной системе ## # rpm --import http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera
Затем выполните следующую команду, чтобы установить и настроить JobTracker и NameNode на главном сервере.
[[электронная почта защищена] ~] # ням убрать все [[электронная почта защищена] ~] # yum install hadoop-0.20-mapreduce-jobtracker
[[электронная почта защищена] ~] # ням убрать все. [[электронная почта защищена] ~] # yum install hadoop-hdfs-namenode
Снова запустите следующие команды на главном сервере, чтобы настроить вторичный узел имени.
[[электронная почта защищена] ~] # ням убрать все [[электронная почта защищена] ~] # yum install hadoop-hdfs-secondarynam
Затем настройте средство отслеживания задач и датанод на всех узлах кластера (узлах), кроме узлов JobTracker, NameNode и вторичных (или резервных) узлов NameNode (в данном случае на узле).
[[электронная почта защищена] ~] # ням убрать все. [[электронная почта защищена] ~] # yum install hadoop-0.20-mapreduce-tasktracker hadoop-hdfs-datanode
Вы можете установить клиент Hadoop на отдельном компьютере (в данном случае я установил его на датанод, вы можете установить его на любой машине).
[[электронная почта защищена] ~] # yum install hadoop-client
Теперь, когда мы закончили с вышеуказанными шагами, перейдем к развертыванию hdfs (это будет сделано на всех узлах).
Скопируйте конфигурацию по умолчанию в /etc/hadoop каталог (на каждом узле кластера).
[[электронная почта защищена] ~] # cp -r /etc/hadoop/conf.dist /etc/hadoop/conf.my_cluster
[[электронная почта защищена] ~] # cp -r /etc/hadoop/conf.dist /etc/hadoop/conf.my_cluster
Использовать альтернативы, чтобы установить собственный каталог, как показано ниже (на каждом узле в кластере).
[[электронная почта защищена] ~] # альтернативы --verbose --install / etc / hadoop / conf hadoop-conf /etc/hadoop/conf.my_cluster 50. чтение / var / lib / alternatives / hadoop-conf [[электронная почта защищена] ~] # альтернативы --set hadoop-conf /etc/hadoop/conf.my_cluster
[[электронная почта защищена] ~] # альтернативы --verbose --install / etc / hadoop / conf hadoop-conf /etc/hadoop/conf.my_cluster 50. чтение / var / lib / alternatives / hadoop-conf [[электронная почта защищена] ~] # альтернативы --set hadoop-conf /etc/hadoop/conf.my_cluster
Теперь откройте 'core-site.xml"Файл и обновление"fs.defaultFS”На каждом узле кластера.
[[электронная почта защищена] conf] # cat /etc/hadoop/conf/core-site.xml
1.0 текст / xslconfiguration.xsl fs.defaultFS hdfs: // мастер /
[[электронная почта защищена] conf] # cat /etc/hadoop/conf/core-site.xml
1.0 текст / xslconfiguration.xsl fs.defaultFS hdfs: // мастер /
Следующее обновление «dfs.permissions.superusergroup" в hdfs-site.xml на каждом узле в кластере.
[[электронная почта защищена] conf] # cat /etc/hadoop/conf/hdfs-site.xml
1.0 текст / xslconfiguration.xsl dfs.name.dir /var/lib/hadoop-hdfs/cache/hdfs/dfs/name dfs.permissions.superusergroup хадуп
[[электронная почта защищена] conf] # cat /etc/hadoop/conf/hdfs-site.xml
1.0 текст / xslconfiguration.xsl dfs.name.dir /var/lib/hadoop-hdfs/cache/hdfs/dfs/name dfs.permissions.superusergroup хадуп
Примечание: Убедитесь, что указанная выше конфигурация присутствует на всех узлах (выполните на одном узле и запустите scp скопировать на остальные узлы).
Обновите «dfs.name.dir или dfs.namenode.name.dir» в «hdfs-site.xml» на NameNode (на Master и Node). Измените значение, как выделено.
[[электронная почта защищена] conf] # cat /etc/hadoop/conf/hdfs-site.xml
dfs.namenode.name.dir файл: /// данные / 1 / dfs / nn, / nfsmount / dfs / nn
[[электронная почта защищена] conf] # cat /etc/hadoop/conf/hdfs-site.xml
dfs.datanode.data.dir файл: /// данные / 1 / dfs / dn, / data / 2 / dfs / dn, / data / 3 / dfs / dn
Выполните приведенные ниже команды, чтобы создать структуру каталогов и управлять разрешениями пользователей на машинах Namenode (Master) и Datanode (Node).
[[электронная почта защищена]] # mkdir -p / data / 1 / dfs / nn / nfsmount / dfs / nn. [[электронная почта защищена]] # chmod 700 / data / 1 / dfs / nn / nfsmount / dfs / nn
[[электронная почта защищена]] # mkdir -p / data / 1 / dfs / dn / data / 2 / dfs / dn / data / 3 / dfs / dn / data / 4 / dfs / dn. [[электронная почта защищена]] # chown -R hdfs: hdfs / data / 1 / dfs / nn / nfsmount / dfs / nn / data / 1 / dfs / dn / data / 2 / dfs / dn / data / 3 / dfs / dn / data / 4 / dfs / dn
Отформатируйте Namenode (на Мастере), выполнив следующую команду.
[[электронная почта защищена] conf] # sudo -u hdfs hdfs namenode -format
Добавьте следующее свойство в hdfs-site.xml файл и замените значение, как показано на Мастере.
dfs.namenode.http-адрес 172.21.17.175:50070 Адрес и порт, который будет прослушивать пользовательский интерфейс NameNode.
Примечание: В нашем случае значение должно быть IP-адресом главной ВМ.
Теперь давайте развернем MRv1 (Map-reduce version 1). Открыть 'mapred-site.xml‘Сохраните следующие значения, как показано.
[[электронная почта защищена] conf] # cp hdfs-site.xml mapred-site.xml. [[электронная почта защищена] conf] # vi mapred-site.xml. [[электронная почта защищена] conf] # cat mapred-site.xml
1.0 текст / xslconfiguration.xsl mapred.job.tracker мастер: 8021
Затем скопируйте "mapred-site.xml‘Файл на узел-машину, используя следующую команду scp.
[[электронная почта защищена]conf] # scp /etc/hadoop/conf/mapred-site.xml узел: / etc / hadoop / conf / mapred-site.xml 100% 200 0,2 КБ / с 00:00
Теперь настройте каталоги локального хранилища для использования демонами MRv1. Снова откройте ‘mapred-site.xml‘И внесите изменения, как показано ниже, для каждого TaskTracker.
 mapred.local.dir Â/data/1/mapred/local,/data/2/mapred/local,/data/3/mapred/local
После указания этих каталогов в ‘mapred-site.xml‘File, вы должны создать каталоги и назначить им правильные права доступа к файлам на каждом узле вашего кластера.
mkdir -p / data / 1 / mapred / local / data / 2 / mapred / local / data / 3 / mapred / local / data / 4 / mapred / local. chown -R mapred: hadoop / data / 1 / mapred / local / data / 2 / mapred / local / data / 3 / mapred / local / data / 4 / mapred / local
Теперь выполните следующую команду, чтобы запустить HDFS на каждом узле кластера.
[[электронная почта защищена] conf] # для x в `cd /etc/init.d; ls hadoop-hdfs- * `; выполнить sudo service $ x start; сделано
[[электронная почта защищена] conf] # для x в `cd /etc/init.d; ls hadoop-hdfs- * `; выполнить sudo service $ x start; сделано
Требуется создать /tmp с соответствующими разрешениями, как указано ниже.
[[электронная почта защищена] conf] # sudo -u hdfs hadoop fs -mkdir / tmp. [[электронная почта защищена] conf] # sudo -u hdfs hadoop fs -chmod -R 1777 / tmp
[[электронная почта защищена] conf] # sudo -u hdfs hadoop fs -mkdir -p / var / lib / hadoop-hdfs / cache / mapred / mapred / staging. [[электронная почта защищена] conf] # sudo -u hdfs hadoop fs -chmod 1777 / var / lib / hadoop-hdfs / cache / mapred / mapred / staging. [[электронная почта защищена] conf] # sudo -u hdfs hadoop fs -chown -R mapred / var / lib / hadoop-hdfs / cache / mapred
Теперь проверьте структуру файла HDFS.
[[электронная почта защищена] conf] # sudo -u hdfs hadoop fs -ls -R / drwxrwxrwt - hdfs hadoop 0 29.05.2014 09:58 / tmp. drwxr-xr-x - hdfs hadoop 0 29.05.2014, 09:59 / var. drwxr-xr-x - hdfs hadoop 0 29.05.2014, 09:59 / var / lib. drwxr-xr-x - hdfs hadoop 0 29.05.2014, 09:59 / var / lib / hadoop-hdfs. drwxr-xr-x - hdfs hadoop 0 29.05.2014, 09:59 / var / lib / hadoop-hdfs / cache. drwxr-xr-x - mapred hadoop 0 29.05.2014, 09:59 / var / lib / hadoop-hdfs / cache / mapred. drwxr-xr-x - mapred hadoop 0 29.05.2014, 09:59 / var / lib / hadoop-hdfs / cache / mapred / mapred. drwxrwxrwt - mapred hadoop 0 29.05.2014, 09:59 / var / lib / hadoop-hdfs / cache / mapred / mapred / staging
После того, как вы запустите HDFS и создадите ‘/tmp‘, Но перед запуском JobTracker создайте каталог HDFS, указанный параметром‘ mapred.system.dir ’(по умолчанию $ {hadoop.tmp.dir} / mapred / system и измените владельца на mapred.
[[электронная почта защищена] conf] # sudo -u hdfs hadoop fs -mkdir / tmp / mapred / system. [[электронная почта защищена] conf] # sudo -u hdfs hadoop fs -chown mapred: hadoop / tmp / mapred / system
Чтобы запустить MapReduce: запустите службы TT и JT.
[[электронная почта защищена]conf] # service hadoop-0.20-mapreduce-tasktracker start Запуск Tasktracker: [OK] запуск отслеживания задач, вход в /var/log/hadoop-0.20-mapreduce/hadoop-hadoop-tasktracker-node.out
[[электронная почта защищена] conf] # service hadoop-0.20-mapreduce-jobtracker start Запуск Jobtracker: [OK] запуск jobtracker, вход в /var/log/hadoop-0.20-mapreduce/hadoop-hadoop-jobtracker-master.out
Затем создайте домашний каталог для каждого пользователя hadoop. рекомендуется делать это на NameNode; Например.
[[электронная почта защищена] conf] # sudo -u hdfs hadoop fs -mkdir / пользователь /[[электронная почта защищена] conf] # sudo -u hdfs hadoop fs -chown /user/
Примечание: где имя пользователя Linux для каждого пользователя.
В качестве альтернативы вы можете создать домашний каталог следующим образом.
[[электронная почта защищена] conf] # sudo -u hdfs hadoop fs -mkdir / user / $ USER. [[электронная почта защищена] conf] # sudo -u hdfs hadoop fs -chown $ USER / user / $ USER
Откройте браузер и введите URL-адрес как http://ip_address_of_namenode: 50070 для доступа к Namenode.
Откройте другую вкладку в браузере и введите URL-адрес какhttp://ip_address_of_jobtracker: 50030 для доступа к JobTracker.
Эта процедура была успешно протестирована на RHEL / CentOS 5.X / 6.X. Прокомментируйте ниже, если у вас возникнут проблемы с установкой, я помогу вам с решениями.