Создайте кластер Hadoop
Создайте кластер Hadoop

# Создайте кластер Hadoop

намекать

Создание кластера — это то, что нужно сделать за один раз. Надеюсь, вы сможете потратить час или два на завершение сборки. Заранее желаю вам успеха!

# планирование

  • Имя Узел:1 единица
    • Имя хоста NameNode:master (главный узел)
  • DateNode:3башня
    • Имя хоста DataNode: подчиненный узел 1 (подчиненный узел 1)
    • Имя хоста DataNode: подчиненный узел 2 (подчиненный узел 2)
    • Имя хоста DataNode: подчиненный узел 3 (подчиненный узел 3)

# Настроить сеть

Чтобы облегчить удаленный вход в инструмент, нам необходимо указать IP-адрес.

  1. Открыть командную строку cmd,входитьipconfigПроверятьVMnet8изipсегмент сети,У каждого это может быть по-разному,Например, у меня 192.168.197.1.
  1. Откройте VMware, нажмите «Изменить», выберите редактор виртуальной сети и проверьте, соответствует ли сетевой сегмент VMnet8 сетевому сегменту командной строки cmd. Если они соответствуют, вы можете продолжить. Если он не соответствует, вам нужно нажать «Изменить настройки», чтобы восстановить настройки по умолчанию.
  1. Установить виртуальную машину

Для установки виртуальной машины вы можете прочитать документацию, присланную преподавателем.

  1. После успешной установки включите виртуальную машину, войдите в систему как пользователь root, нажмите кнопку «Не в списке», введите имя пользователя root и пароль для входа.
  2. Щелкните правой кнопкой мыши, чтобы открыть терминал и введите
Язык кода:javascript
копировать
vim /etc/sysconfig/network-scripts/ifcfg-ens33
  1. входитьiВойти в режим редактирования。использование vim (откроется в новом окне).,Здесь у нас пятьнуждаться Исправлять:
  1. Метод настройки IP: замените DHCP в двойных кавычках на статический.
  2. Укажите IP-адрес 192.168.197.200.
  3. Маска подсети IP-адреса: установлено значение 255.255.255.0.
  4. Шлюз: то же, что и первые три цифры указанного IP-адреса, последняя цифра — 2.
  5. Распознаватель доменных имен: просто установите его таким же, как шлюз.

Мы можем установить IP-адрес самостоятельно, но установленный IP-адрес должен находиться в диапазоне адреса виртуальной машины. Проверьте диапазон IP-адреса виртуальной машины, как показано на рисунке ниже:

После завершения модификации сохраняем и выходим, вводим команду

Язык кода:javascript
копировать
systemctl restart network

Перезапустите сеть и проверьте, есть ли у сети доступ к Интернету. Вы можете пропинговать Baidu. Если появится следующее изображение, вы можете получить доступ к Интернету.

Язык кода:javascript
копировать
[root@frx94shuai ~]# ping www.baidu.com
PING www.a.shifen.com (110.242.68.4) 56(84) bytes of data.
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=1 ttl=128 time=25.2 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=2 ttl=128 time=28.4 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=3 ttl=128 time=26.3 ms
^C
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2008ms
rtt min/avg/max/mdev = 25.284/26.713/28.489/1.331 ms

Теперь главный узел может получить доступ к Интернету, войти в систему и подключиться удаленно.

# Изменить имя хоста

  1. Используйте инструмент удаленного входа в систему Xshell или MobaXterm в систему Linux.,Введите команду,Изменить имя хост — master (или при установке укажите имя хоста как master)
Язык кода:javascript
копировать
vim /etc/hostname

Этот перезапуск вступит в силу, используйте команду перезапуска

Язык кода:javascript
копировать
reboot

# Установите и настройте Java

# Удалите оригинальный JDK

первый,через команду“java -version”Проверять У тебя есть УстановитьJava,Как показано на рисунке 1-14.,потому чтоCentOS Java, которая поставляется с 7, — это Oracle. OpenJDK, и больше рекомендуется использовать Oracle JDK, поэтому Oracle Удаление OpenJDK.

Язык кода:javascript
копировать
[root@master ~]# java -version
openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)

Во-вторых,использовать“rpm -qa|grep jdk”Командный запросjdkпрограммное обеспечение

Язык кода:javascript
копировать
[root@master ~]# rpm -qa|grep jdk
java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
copy-jdk-configs-3.3-10.el7_5.noarch
java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64
java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64
java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64

наконец,Переключиться на пользователя root,соответственноиспользовать Заказ“yum -y remove java-1.8.0*”и“yum -y remove java-1.7.0*”удалитьopenjdk 1.8 — openjdk 1.7

Язык кода:javascript
копировать
[root@master ~]# yum -y remove java-1.8.0*
Загружен плагин: fastmirror, langpacks
Разрешение зависимостей
--> Проверка транзакции
---> пакет программного обеспечения java-1.8.0-openjdk-headless.x86_64.1.1.8.0.262.b10-1.el7 будет удалить
--> Разрешение зависимостей завершено

разрешение зависимостей

=============================================================================================
 Package                         Архитектура       Версия                         источник             размер
=============================================================================================
являютсяудалить:
 java-1.8.0-openjdk-headless     x86_64     1:1.8.0.262.b10-1.el7        @anaconda     109 M

Сводка транзакции
=============================================================================================
Удалять  1 пакет программного обеспечения

Установитьразмер:109 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  являютсяудалить    : 1:java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64                 1/1 
  Проверка      : 1:java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64                 1/1 

удалить:
  java-1.8.0-openjdk-headless.x86_64 1:1.8.0.262.b10-1.el7                                   

полный!
[root@master ~]# yum -y remove java-1.7.0*
Загружен плагин: fastmirror, langpacks
Разрешение зависимостей
--> Проверка транзакции
---> пакет программного обеспечения java-1.7.0-openjdk.x86_64.1.1.7.0.261-2.6.22.2.el7_8 будет удалить
--> Обработка зависимостей java >= 1.5,это был пакет программного обеспечения jline-1.0-8.el7.noarch нуждаться
---> пакет программного обеспечения java-1.7.0-openjdk-headless.x86_64.1.1.7.0.261-2.6.22.2.el7_8 будет удалить
--> Проверка транзакции
---> пакет программного обеспечения jline.noarch.0.1.0-8.el7 будет удалить
--> Обработка зависимостей jline,это был пакет программного обеспечения rhino-1.7R5-1.el7.noarch нуждаться
--> Проверка транзакции
---> пакет программного обеспечения rhino.noarch.0.1.7R5-1.el7 будет удалить
--> Разрешение зависимостей завершено

разрешение зависимостей

=============================================================================================
 Package                        Архитектура      Версия                            источник            размер
=============================================================================================
являютсяудалить:
 java-1.7.0-openjdk             x86_64    1:1.7.0.261-2.6.22.2.el7_8      @anaconda    679 k
 java-1.7.0-openjdk-headless    x86_64    1:1.7.0.261-2.6.22.2.el7_8      @anaconda     95 M
Удалять за зависимость:
 jline                          noarch    1.0-8.el7                       @anaconda     72 k
 rhino                          noarch    1.7R5-1.el7                     @anaconda    1.1 M

Сводка транзакции
=============================================================================================
Удалять  2 пакет программного обеспечения (+2 Зависит от пакета программного обеспечения)

Установитьразмер:97 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  являютсяудалить    : rhino-1.7R5-1.el7.noarch                                                 1/4 
  являютсяудалить    : jline-1.0-8.el7.noarch                                                   2/4 
  являютсяудалить    : 1:java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64                     3/4 
  являютсяудалить    : 1:java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64            4/4 
  Проверка      : 1:java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64            1/4 
  Проверка      : 1:java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64                     2/4 
  Проверка      : rhino-1.7R5-1.el7.noarch                                                 3/4 
  Проверка      : jline-1.0-8.el7.noarch                                                   4/4 

удалить:
  java-1.7.0-openjdk.x86_64 1:1.7.0.261-2.6.22.2.el7_8                                       
  java-1.7.0-openjdk-headless.x86_64 1:1.7.0.261-2.6.22.2.el7_8                              

В качестве зависимости путем удаления:
  jline.noarch 0:1.0-8.el7                     rhino.noarch 0:1.7R5-1.el7                    

полный!

# Установите новый JDK

Вам необходимо выбрать соответствующий установочный пакет JDK для загрузки в зависимости от операционной системы и номера бита, установленного на компьютере. Вы также можете использовать команду «getconf LONG_BIT», чтобы узнать, является ли операционная система Linux 32- или 64-битной; команда «file/bin/ls» для отображения номера версии Linux

Язык кода:javascript
копировать
[root@master ~]# getconf LONG_BIT
64
  • Я использую jdk-8u301-linux-x64.tar.gz, эту версию

Этот сжатый пакет jdk,Вы можете спросить меня, хотите ли вы использовать JDK, предоставленный учителем.,Обратите внимание на версию JDK

  • Используйте XFTP для передачи сжатого пакета в систему Linux. Я загрузил его в папку /opt/java1.8/.
Язык кода:javascript
копировать
mkdir /opt/java1.8
  • Щелкните правой кнопкой мыши и перенесите, и все в порядке.
Язык кода:javascript
копировать
mkdir /usr/local/java
cd /opt/java1.8/
tar -zxvf jdk-8u301-linux-x64.tar.gz -C /usr/local/java

Завершите настройку переменных среды JAVA_HOME, PATH и CLASSPATH, изменив файл /etc/profile, введите G, чтобы перейти к концу, и добавьте следующее содержимое в конец файла конфигурации /etc/profile.

Язык кода:javascript
копировать
vim /etc/profile
Язык кода:javascript
копировать
# set java environment  #Обратите внимание на версию JDK. Если вы используете jdk, предоставленный преподавателем, вам следует изменить jdk1.8.0_301 на jdk1.8.0_211.
export JAVA_HOME=/usr/local/java/jdk1.8.0_301
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

использовать Заказ“source /etc/profile”Перезагрузите файл конфигурации или перезагрузите компьютер.,Сделайте конфигурацию эффективной,Значение системной переменной «PATH» после успешной настройки переменной среды Java.

Язык кода:javascript
копировать
[root@master java]# echo $PATH
/usr/local/java/jdk1.8.0_301/bin:/usr/local/java/1.8.0_301/bin:/opt/hadoop/hadoop-2.10.1/bin:/usr/local/java/jdk1.8.0_261/bin:/opt/hadoop/hadoop-2.10.1/bin:/opt/java1.8/jdk1.8.0_301/bin:/opt/hadoop/bin:/opt/java1.8/jdk1.8.0_301/bin:/opt/hadoop/bin:/opt/java1.8/jdk1.8.0_301/bin:/opt/java1.8/jdk1.8.0_301/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

ПроверитьJava,сноваиспользовать Заказ“java -version”,ПроверятьJavaли Установить Конфигурация прошла успешно и ее Версия

Язык кода:javascript
копировать
[root@master java1.8]# java -version
java version "1.8.0_301"  #Используйте jdk, предоставленный учителем, и он должен показать «1.8.0_211»
Java(TM) SE Runtime Environment (build 1.8.0_301-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)

# Установить Hadoop

Я указал адрес загрузки Hadoop (v2.10.1) выше, и учитель также предоставил его.

  • После завершения загрузки снова используйте XFTP для перехода в /opt/hadoop/ системы Linux.
Язык кода:javascript
копировать
mkdir /opt/hadoop/
  • Перенос завершен
Язык кода:javascript
копировать
cd /opt/hadoop/
tar -zxvf hadoop-2.10.1.tar.gz 
  • Отключить брандмауэр
Язык кода:javascript
копировать
systemctl stop firewalld.service
systemctl disable firewalld.service
  • Выключи Селинукс
Язык кода:javascript
копировать
vim /etc/selinux/config

Измените на SELINUX = отключено.

  • После распаковки в конце файла /etc/profile настройте переменные среды Hadoop.
Язык кода:javascript
копировать
vim /etc/profile
Язык кода:javascript
копировать
export HADOOP_HOME=/opt/hadoop/hadoop-2.10.1
export PATH=$HADOOP_HOME/bin:$PATH  
export PATH=$HADOOP_HOME/sbin:$PATH 
  • «source /etc/profile» перезагрузите файл конфигурации или перезагрузите компьютер, чтобы конфигурация вступила в силу.
Язык кода:javascript
копировать
[root@master bin]# source /etc/profile
[root@master bin]# hadoop version
Hadoop 2.10.1
Subversion https://github.com/apache/hadoop -r 1827467c9a56f133025f28557bfc2c562d78e816
Compiled by centos on 2020-09-14T13:17Z
Compiled with protoc 2.5.0
From source with checksum 3114edef868f1f3824e7d0f68be03650
This command was run using /opt/hadoop/hadoop-2.10.1/share/hadoop/common/hadoop-common-2.10.1.jar
  • Создайте рабочие домашние каталоги NN и DN HDFS.
Язык кода:javascript
копировать
mkdir /var/big_data

# Конфигурация системы Hadoop

намекать

всеиз<property>Этикетки все есть<configuration>и</configuration>между тегами

  • cd /opt/hadoop/hadoop-2.10.1/etc/hadoop
Язык кода:javascript
копировать
[root@master hadoop]# cd /opt/hadoop/hadoop-2.10.1/etc/hadoop
[root@master hadoop]# ls
capacity-scheduler.xml      httpfs-env.sh            mapred-env.sh
configuration.xsl           httpfs-log4j.properties  mapred-queues.xml.template
container-executor.cfg      httpfs-signature.secret  mapred-site.xml.template
core-site.xml               httpfs-site.xml          slaves
hadoop-env.cmd              kms-acls.xml             ssl-client.xml.example
hadoop-env.sh               kms-env.sh               ssl-server.xml.example
hadoop-metrics2.properties  kms-log4j.properties     yarn-env.cmd
hadoop-metrics.properties   kms-site.xml             yarn-env.sh
hadoop-policy.xml           log4j.properties         yarn-site.xml
hdfs-site.xml               mapred-env.cmd
  • Отредактируйте Hadoop-env.sh и установите JAVA_HOME.
Язык кода:javascript
копировать
vim hadoop-env.sh

Обратите внимание на версию JDK. Если вы используете jdk, предоставленный преподавателем, вам следует изменить jdk1.8.0_301 на jdk1.8.0_211.

Язык кода:javascript
копировать
export JAVA_HOME=/usr/local/java/jdk1.8.0_301
  • Отредактируйте файл Yarn-env.sh и установите JAVA_HOME.
Язык кода:javascript
копировать
vim yarn-env.sh

Обратите внимание на версию JDK. Если вы используете jdk, предоставленный преподавателем, вам следует изменить jdk1.8.0_301 на jdk1.8.0_211.

Язык кода:javascript
копировать
JAVA_HOME=/usr/local/java/jdk1.8.0_301 
  • Настройте информацию главного узла HDFS, постоянство и домашний каталог файлов данных.
Язык кода:javascript
копировать
vim core-site.xml
Язык кода:javascript
копировать
   <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/var/big_data</value>
   </property>
  • Настройте ядро ​​HDFS и отредактируйте политику хранения данных HDFS по умолчанию.
Язык кода:javascript
копировать
vim hdfs-site.xml
Язык кода:javascript
копировать
	<property>
    	<name>dfs.replication</name>
    	<value>2</value>
	</property>
	<property>
    	<name>dfs.namenode.secondary.http-address</name>
    	<value>slave3:50090</value>
	</property>
  • Отредактируйте файл Mapred-site.xml и настройте стратегию планирования задач Mapreduce.
Язык кода:javascript
копировать
mv mapred-site.xml.template mapred-site.xml
Язык кода:javascript
копировать
vim mapred-site.xml
Язык кода:javascript
копировать
	<property>
    	<name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
  • Отредактируйте файл Yarn-site.xml, чтобы настроить информацию о роли управления ресурсами Yarn.
Язык кода:javascript
копировать
vim yarn-site.xml
Язык кода:javascript
копировать
	<property>
    	<name>yarn.nodemanager.aux-services</name>
    	<value>mapreduce_shuffle</value>
    </property>
    <property>
    	<name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
  • Настройте информацию об узле datanode
Язык кода:javascript
копировать
vim slaves

Напишите имена хостов трех подчиненных узлов.

Язык кода:javascript
копировать
slave1 
slave2
slave3
  • Заранее подготовьте файл разрешения имен хостов, чтобы подготовиться к последующему клонированию.
Язык кода:javascript
копировать
vim /etc/hosts

Напишите IP-адрес и имя хоста вашего главного и подчиненного узлов.

Язык кода:javascript
копировать
192.168.197.200 master 
192.168.197.201 slave1
192.168.197.202 slave2
192.168.197.203 slave3

# Настройте сеть подчиненных узлов

# Клонировать три полные виртуальные машины

Поскольку это полный клон, также необходимо сбросить имя нашего хоста и указать IP-адрес. Вы можете увидеть предыдущие заметки Исправлятьивышеваш собственный /etc/hostsвнутриизIP-адрес и имя хостаБудьте последовательны

  • Узел первый Изменить имя хоста для раба1
    • IP-адрес указан как 192.168.197.201.
  • Узел второй Изменить имя хост для раба2
    • IP-адрес указан как 192.168.197.202.
  • Узел третий Изменить имя хоста для раба3
    • IP-адрес указан как 192.168.197.203.

# Вход без пароля

  • Выполните на 4 машинах, чтобы сгенерировать собственный открытый ключ.
Язык кода:javascript
копировать
ssh-keygen -t rsa

Просто нажмите Enter по умолчанию, и все готово.

  • Скопируйте открытый ключ каждой машины на каждую машину. Обратите внимание, что для выполнения следующих инструкций требуются все 4 машины.
Язык кода:javascript
копировать
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
ssh-copy-id slave3
  • ssh master
  • выходвыход
  • Форматирование главного узла
Язык кода:javascript
копировать
hdfs namenode -format

Вас могут попросить ввести Y во время процесса.

  • Мастер-нода запускает кластер:
Язык кода:javascript
копировать
start-dfs.sh

Введите пароль хоста наполовину

  • Главный узел запускает пряжу управления ресурсами.
Язык кода:javascript
копировать
start-yarn.sh
  • Просмотр jps о состоянии потока Java
  • URL-адрес посещения
  • файловая система
  • hdfs dfs -mkdir /t01, создайте папку и попробуйте
Язык кода:javascript
копировать
[root@master ~]# hdfs dfs -mkdir /t01
  • URL-адрес посещения

# enjoy

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose