1. Настройте сеть виртуальной машины (режим NAT)
Скриншот ipconfig хоста:
Конфигурация сети Vmnet8:
Конфигурация сети виртуальной машины:
2. Настройте среду с одним узлом
2.1 Загрузить файлы в CentOS и настроить среды Java и Hadoop
Загрузите инсталляционный пакет на сервер:
После успешной загрузки вы увидите два сжатых пакета:
Разархивируйте два архива:
Переименуйте файл, чтобы позже настроить переменные среды:
Настройте переменные среды jdk+hadoop:
Проверьте, успешно ли настроена переменная среды jdk:
Проверьте, успешно ли настроены переменные среды hadoop:
---------------------------------------------------------------------------------------
На данный момент установлены JDK и Hadoop, а затем изменены некоторые файлы конфигурации.
2.2 Изменить имя хоста CentOS
Имя хоста по умолчанию:
Просмотр и изменение имен хостов:
Постоянно измените имя хоста, измените файл конфигурации и выполните команду: vi /etc/sysconfig/network:
2.3 Привязать имя хоста и IP
Привязать имя хоста и ip, выполнить команду: vi /etc/hosts
2.4 Отключите брандмауэр
2.5 Структура каталогов Hadoop
1. Просмотрите структуру каталогов Hadoop и выполните команду: ll
2. Важный каталог
(1) каталог bin: содержит сценарии для работы служб, связанных с Hadoop (HDFS, YARN).
(2) каталог etc: каталог файлов конфигурации Hadoop, в котором хранятся файлы конфигурации Hadoop.
(3) каталог lib: хранить собственную библиотеку Hadoop (сжимать и распаковывать данные)
(4) каталог sbin: содержит сценарии для запуска или остановки служб, связанных с Hadoop.
(5) общий каталог: хранить зависимые от Hadoop пакеты jar, документы и официальные дела
Три, Hadoop три режима работы
Режимы работы Hadoop включают в себя: локальный режим, псевдораспределенный режим и полностью распределенный режим.
Официальный сайт Hadoop:hadoop.apache.org/
Режим 1: Локальный режим работы
Официальный кейс Grep
1. Создайте входную папку в файле hadoop2.8.5.
[root@node hadoop2.8.5]$ mkdir input
2. Скопируйте XML-файл конфигурации Hadoop для ввода
[root@node hadoop2.8.5]$ cp etc/hadoop/*.xml input
3. Запустите программу MapReduce в общем каталоге.
[root@node hadoop2.8.5]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jargrep input output 'dfs[a-z.]+'
4. Просмотрите результат вывода
[root@node hadoop2.8.5]$ cat output/*
Результаты консоли показывают:
Официальный кейс WordCount
1. Создайте папку wcinput в файле hadoop2.8.5.
[root@node hadoop2.8.5]$ mkdir wcinput
2. Создайте файл wc.input в файле wcinput.
[root@node hadoop2.8.5]$ cd wcinput
[root@node hadoop2.8.5]$ touch wc.input
3. Отредактируйте файл wc.input
[root@node hadoop2.8.5]$ vi wc.input
Введите в файл следующее
hadoop
hadoop
mapreduce
yarn
сохранить и выйти::wq
4. Вернитесь в каталог Hadoop /opt/module/hadoop2.8.5.
5. Запустите программу
[root@node hadoop2.8.5]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount wcinput wcoutput
6. Просмотрите результаты
[root@node hadoop2.8.5]$ cat wcoutput/part-r-00000
hadoop 2
mapreduce 1
yarn 1
Результаты дела показывают:
Режим 2: псевдораспределенный режим работы
Запустите HDFS и запустите программу MapReduce.
1. Настройте кластер
(1) Конфигурация: hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8/
(2) Конфигурация: core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/java/hadoop2.8.5/data/tmp</value>
</property>
(3) Конфигурация: hdfs-site.xml
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
2. Запустите кластер
(1) Отформатируйте NameNode (отформатируйте его при первом запуске, не всегда форматируйте его позже)
[root@node hadoop2.8.5]$ hdfs namenode -format
(2) Запустить NameNode
[root@node hadoop2.8.5]$ hadoop-daemon.sh start namenode
(3) Запустить узел данных
[root@node hadoop2.8.5]$ hadoop-daemon.sh
start datanode
3. Просмотр кластера
(1) Чтобы проверить, успешен ли запуск, выполните команду jps
Примечание: jps — это команда JDK, а не Linux. Невозможно использовать jps без установки JDK
(2) Просмотр файловой системы HDFS на веб-сайте
Примечание. Чтобы получить доступ через URL-адрес в среде Windows, вам необходимо добавить узел 192.168.158.128 в C:\Windows\System32\drivers\etc\hosts.
(3) Просмотр созданного журнала журнала
Просмотр журналов локально:
Просмотр журнала на веб-странице:
(4) Размышление: почему нельзя все время форматировать NameNode, форматировать NameNode, на что следует обратить внимание?
[root@node hadoop2.8.5]$ cd data/tmp/dfs/name/current/
[root@node hadoop2.8.5]$ cat VERSION
clusterID=clusterID=CID-1e77ad8f-5b3f-4647-a13a-4ea3f01b6d65
[root@node hadoop2.8.5]$ cd data/tmp/dfs/data/current/
clusterID=clusterID=CID-1e77ad8f-5b3f-4647-a13a-4ea3f01b6d65
Примечание. Форматирование NameNode создаст новый идентификатор кластера, что приведет к несогласованности идентификаторов кластера NameNode и DataNode, и кластер не сможет найти прошлые данные. Поэтому при форматировании NameNode обязательно сначала удалите данные и журналы журналов, а затем отформатируйте NameNode.
4. Работа с кластером
(1) В файловой системе HDFSСоздайтевходная папка
Выполните команду: hdfs dfs -mkdir -p /usr/java/hadoop/input
(2) Содержимое локального тестового файлазагрузитьк файловой системе
Выполните команду: hdfs dfs -put wcinput/wc.input /user/java/hadoop/input/
(3)ПроверитьЗагруженный файл правильный?
Выполните команду: hdfs dfs -cat /usr/java/hadoop/input/wc.input
(4)бегатьПрограмма MapReduce
Выполните команду: hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount /usr/java/hadoop/input/ /usr/java/hadoop/output
(5)Проверитьвыходной результат
Выполните команду: hdfs dfs -cat /usr/java/hadoop/output/*
(6) Проверьте содержимое файласкачатьк местному
Выполните команду: hdfs dfs -get /usr/java/hadoop/output/part-r-00000 wcoutput/
(7)удалятьвыходной результат
Выполните команду: hdfs dfs -rm -f /usr/java/hadoop/output
Запустите YARN и запустите программу MapReduce.
1. Настройте кластер
(1) Настройте пряжу-env.sh
(2) Настройте yarn-site.xml
<!-- Reducer获取数据的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node</value>
</property>
(3) Конфигурация: mapred-env.sh
(4) Конфигурация: (переименовать mapred-site.xml.template в) mapred-site.xml
<!-- 指定MR运行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
2. Запустите кластер
(1) Перед запуском необходимо убедиться, что NameNode и DataNode запущены.
(2) Запустите диспетчер ресурсов
Выполните команду: yarn-daemon.sh запустить менеджер ресурсов
(3) Запустите диспетчер узлов
Выполните команду: yarn-daemon.sh Старт odemanager
3. Кластерная операция
(1) Просмотрите страницу браузера YARN, как показано на рис. 2-35.
http://node:8088/cluster
(2) Удалить выходной файл в файловой системе
Выполните команду: hdfs dfs -rm -f /usr/java/hadoop/output
(3) Запустите программу MapReduce.
Выполните команду: hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount /usr/java/hadoop/input/ /usr/java/hadoop/output
(2) vi /etc/sysconfig/network
(3) vi /etc/hosts
|
node |
node1 |
node2 |
HDFS
|
NameNode DataNode |
DataNode |
SecondaryNameNode DataNode |
YARN |
NodeManager |
ResourceManager NodeManager |
NodeManager |
<!-- 指定HDFS中NameNode的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/java/hadoop2.8.5/data/tmp</value>
</property>
export JAVA_HOME=/usr/java/jdk1.8/
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node2:50090</value>
</property>
export JAVA_HOME=/usr/java/jdk1.8/
<!-- Reducer获取数据的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
export JAVA_HOME=/usr/java/jdk1.8/
<!-- 指定MR运行在Yarn上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
[node] jps
[node1] jps
[node2] jps
start-dfs.sh / stop-dfs.sh
start-yarn.sh / stop-yarn.sh
start-all.sh / stop-all.sh