Самое полное в истории обучение по установке Hadoop на уровне няни

Большие данные
Самое полное в истории обучение по установке Hadoop на уровне няни

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

Во-первых, по умолчанию у вас есть небольшая база Linux, а на вашем компьютере установлена ​​рабочая станция vmware и другое подобное программное обеспечение для установки виртуальных машин (конечно, у вас есть деньги на покупку облачных серверов, когда я этого не говорил)

Установка виртуальной машины Linux

  • Загрузить зеркало Centos Здесь качаем образ centos7.6портал
  • Установить виртуальную машину Centos
    • Нажмите, чтобы создать новую виртуальную машинуimage.png
    • Выберите столбец установочного компакт-диска, импортируйте загруженный образ, и система, которую мы хотим установить, будет обнаружена ниже.image.png
    • Нажмите «Далее», а затем нажмите «Готово».Это виртуальная машина, которая автоматически открывается.
    • Нажимайте Enter до тех пор, пока не появится визуальный интерфейс, выберите язык установки как китайский.image.png
    • Для скорости мы предпочитаем минимальную установкуimage.png
    • Затем нужно установить пароль учетной записи root и создать пользователя, которого мы обычно используем.image.png
    • Затем медленно подождите (около пяти или шести минут)
    • Самое хоу нажать перезагрузку и все готово!

Подготовка перед установкой Hadoop

  • Конфигурация статического IP и имени хоста

    • Откройте файл ifcfg-ens33, чтобы изменить конфигурацию.
    vi /etc/sysconfig/network-scripts/ifcfg-ens33
    ............
    BOOTPROTO=static #将dhcp改为static
    ONBOOT=yes #将no改为yes
    IPADDR=192.168.10.200 #添加IPADDR属性和ip地址
    PREFIX=24 #添加NETMASK=255.255.255.0或者PREFIX=24
    GATEWAY=192.168.10.0 #添加网关GATEWAY
    DNS1=114.114.114.114 #添加DNS1和备份DNS
    DNS2=8.8.8.8
    
    • перезапустить сетевую службу
    systemctl restart network 
    # or
    service network restart
    
    • Изменить имя хоста

      hostnamectl set-hostname master
      

      Примечание. После настройки ip и имени хоста лучше всего перезагрузить компьютер.

  • Настроить файл /etc/hosts

    vi /etc/hosts
    # 在后面添加上
    192.168.216.114 master
    
  • отключить брандмауэр

    systemctl stop firewalld
    systemctl disable firewalld
    #最好也把selinux关闭掉,这是linux系统的一个安全机制,进入文件中将SELINUX设置为disabled
    vi /etc/selinux/config
    SELINUX=disabled
    
  • синхронизация времени

    • Введите tzselect и выберите 5 9 1 1

    • скачать нтп

      yum install -y ntp
      
    • настроить /etc/ntp.conf

      vim /etc/ntp.conf
      server 127.127.1.0
      fudge 127.127.1.0 stratum 10
      
    • Начало: /bin/systemctl перезапустить ntpd.service

  • Установить вход без пароля

    • Введите полностью после ssh-keygen
    • ssh-copy-id -i /root/.ssh/id_rsa -p 22 root@master Введите пароль после

Автономная установка и настройка Hadoop

  • установка JDK

    • Проверьте, был ли он установлен или в системе есть встроенный JDK, если есть встроенный, удалите его.

      rpm -qa | grep jdk #如果有,请卸载
      rpm -e xxxxxxxx --nodeps #将查询到的内置jdk强制卸载
      
    • Загрузите jdk (здесь я загружаю его в каталог /opt/software/)

    • Разархивируйте jdk в /opt/apps/

      cd /opt/software
      tar -zxvf jdk-8u152-linux-x64.tar.gz -C /opt/apps/
      
    • переименован в jdk

      cd /opt/apps
      mv jdk-8u152/ jdk
      
    • Настройте переменные среды Jdk: /etc/profile

      vim /etc/profile
      # 后面添加
      #jdk environment
      export JAVA_HOME=/opt/apps/jdk
      export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
      
    • сделать текущее окно эффективным

      source /etc/profile
      
    • Проверьте среду Java

      java -version
      javac
      
  • Автономная установка Hadoop

    • Загрузите hadoop (здесь я загружаю его в каталог /opt/software/)

    • Распаковать в /opt/apps/

      cd /opt/software/
      tar -zxvf hadoop-2.7.6.tar.gz -C /opt/apps/
      
    • Переименован в хауп

      cd /opt/apps
      mv hadoop-2.7.6/ hadoop
      
    • Настройка переменных среды hadoop

      vi /etc/profile
      #hadoop environment
      export HADOOP_HOME=/opt/apps/hadoop
      export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
      
    • сделать текущее окно эффективным

      source /etc/profile
      
    • проверить хауп

      hadoop version
      
    • Настройте файл hadoop-env.sh

      vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
      # 更改如下内容
      export JAVA_HOME=/simple/jdk1.8.0_152
      

Псевдораспределенная установка и настройка Hadoop

Введение в псевдораспределенный режим

Прежде всего, нам нужно понять, каковы характеристики псевдораспределения. 1. Особенности

  • Установлен на одной машине, используя распределенную идею, то есть распределенную файловую систему, а не локальную файловую систему.
  • Связанные демоны (namenode, datanode, secondnamenode), участвующие в Hdfs, работают на одном компьютере и являются независимыми. Java-процесс.
  1. использовать Больше функций отладки кода, чем в автономном режиме, что позволяет проверять использование памяти, ввод и вывод HDFS и другие взаимодействия с демоном. взаимный.

Поскольку мы уже выполнили вход без пароля и настройку сопоставления хостов со статическим ip, а также установили jdk и Hadoop, перейдем непосредственно к настройке файла.

конфигурация файла

  • Конфигурация core-site.xml
[root@master ~]# cd $HADOOP_HOME/etc/haoop
[root@master hadoop]# vi core-site.xml
<configuration>
<!-- 配置分布式文件系统的schema和ip以及port,默认8020-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost/</value>
</property>
</configuration>
扩展: hadoop1.x的默认端口是9000,hadoop2.x的默认端口是8020,使用哪一个都可以
  • Конфигурация hdfs-site.xml
[root@master hadoop]# vi hdfs-site.xml
<configuration>
<!-- 配置副本数,注意,伪分布模式只能是1。-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
  • Конфигурация hadoop-env.sh: укажите среду jdk (такую ​​же, как и в автономном режиме, поэтому я не буду здесь вдаваться в подробности)

Формат NameNode

hdfs namenode -format

Запустить HDFS

start-dfs.sh
  • jps просмотр процесса

image.png

WebUI_50070

Вы можете ввести: 192.168.10.200:50070 в браузере, чтобы просмотреть информацию о псевдораспределенном кластере. --1. Просмотрите ClusterID, BlockPoolID, предложенный на странице --2.Проверьте количество активных узлов (Live Nodes), должно быть 1

image.png

Простое объяснение:

Скомпилировано: скомпилированный hadoop интегрирован с помощью инструмента kshvachk Идентификатор кластера: идентификатор кластера Идентификатор пула блоков: идентификатор пула блоков узла узла данных, который должен быть одинаковым для каждого узла узла данных.

Установка и настройка полностью распределенного кластера

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

Описание виртуальной машины

Две виртуальные машины клонируются с помощью клонирования виртуальных машин, поэтому три виртуальные машины настроены следующим образом.

имя хоста IP мастер 192.168.10.200 подчиненный1 192.168.10.201 раб2 192.168.10.202

Примечание. Если это клонированный slave1 slave2, вам не нужно закрывать брандмауэр, просто добавьте сопоставление двух клонов в /etc/hosts и измените ip

Внимание, внимание, внимание: 1. Если вы исходите из псевдораспределения, лучше сначала закрыть демоны, связанные с псевдораспределением: stop-all.sh 2. Удалите соответствующие настройки исходного псевдодистрибутива. Если изначально использовался путь по умолчанию, он больше не используется. Если исходное использование совпадает с текущим полностью распределенным путем, потому что он отличается от предыдущей инициализации, и этот файл должен быть автоматически сгенерирован системой Подводя итог: удалить каталог namenode и datanode

Макет демона

Давайте создадим полностью распределенный hdfs, и кстати, давайте построим пряжу. Компоновка связанных демонов для hdfs и yarn выглядит следующим образом:

master: namenode,datanode,ResourceManager,nodemanager slave1: datanode,nodemanager,secondarynamenode slave2: datanode,nodemanager

Конфигурация файла конфигурации Hadoop

  • Инструкции перед настройкой: 1. Сначала мы настраиваем соответствующие свойства hadoop на главном узле компьютера. 2. В<value></value>Значения не могут иметь пробелов между 3. После того, как мастер настроен, клонируйте две виртуальные машины напрямую и измените IP-адрес и другие конфигурации.
  • Настройте файл core-site.xml
[root@master ~]# cd $HADOOP_HOME/etc/hadoop/
[root@master hadoop]# vi core-site.xml
<configuration>
<!-- hdfs的地址名称:schame,ip,port-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<!-- hdfs的基础路径,被其他属性所依赖的一个基础路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/apps/tmp</value>
</property>
</configuration>
  • Настройте файл hdfs-site.xml
[root@master hadoop]# vi core-site.xml
<configuration>
<!-- namenode守护进程管理的元数据文件fsimage存储的位置-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/name</value>
</property>
<!-- 确定DFS数据节点应该将其块存储在本地文件系统的何处-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/data</value>
</property>
<!-- 块的副本数-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 块的大小(128M),下面的单位是字节-->
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
<!-- secondarynamenode守护进程的http地址:主机名和端口号。参考守护进程布局-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:50090</value>
</property>
<!--文件的检测目录-->
<property>
<name>fs.checkpoint.dir</name>
<value>file:///${hadoop.tmp.dir}/checkpoint/dfs/cname</value>
</property>
<!--日志edits的检测目录-->
<property>
<name>fs.checkpoint.edits.dir</name>
<value>file:///${hadoop.tmp.dir}/checkpoint/dfs/cname</value>
</property>
<property>
<name>dfs.http.address</name>
<value>master:50070</value>
</property>
</configuration>
  • Настройте файл mapred-site.xml

Если вы просто собираете hdfs, вам нужно настроить только файлы core-site.xml и hdfs-site.xml, но если вы хотите изучить MapReduce Требуется менеджер ресурсов YARN, поэтому заранее настройте соответствующие файлы

[root@master hadoop]# cp mapred-site.xml.template mapred-site.xml
[root@master hadoop]# vi mapred-site.xml
<configuration>
<!-- 指定mapreduce使用yarn资源管理器-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 配置作业历史服务器的地址-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<!-- 配置作业历史服务器的http地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
  • Настройте файл yarn-site.xml
[root@master hadoop]# vi yarn-site.xml
<configuration>
<!-- 指定yarn的shuffle技术-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定resourcemanager的主机名-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<!--下面的可选-->
<!--指定shuffle对应的类 -->
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<!--配置resourcemanager的内部通讯地址-->
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<!--配置resourcemanager的scheduler的内部通讯地址-->
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<!--配置resoucemanager的资源调度的内部通讯地址-->
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<!--配置resourcemanager的管理员的内部通讯地址-->
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<!--配置resourcemanager的web ui 的监控页面-->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
  • Настройте файл сценария hadoop-env.sh (так же, как и в автономном режиме, и повторяться не будет)
  • Настройте файл подчиненных устройств, который используется для указания имени хоста машинного узла, на котором находится демон узла данных.
[root@master hadoop]# vi slaves
master
slave1
slave2
  • Настройте файл yarn-env.sh.Этот файл нельзя настроить.Однако лучше модифицировать jdk окружение пряжи.

image.png

  • Инструкции по настройке двух других машин

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

  • «scp» для синхронизации (этот метод подходит для сценариев, когда несколько виртуальных машин были созданы заранее)
  • клон виртуальной машины

Установить две виртуальные машины с нуля по-прежнему очень хлопотно, здесь мы выбираем клонирование.

  • Откройте только что клонированную виртуальную машину и измените имя хоста.
  • изменить IP-адрес
  • перезапустить сетевую службу
  • Повторите шаги 1–3 выше для других недавно клонированных виртуальных машин.
  • Подтверждение входа без пароля С главного компьютера подключитесь ко всем остальным узлам, проверьте, легко ли использовать беспарольный режим, и удалите первый шаг запроса.
  • Предложение: после перезапуска сетевой службы каждой машины лучше перезагрузить

Все этапы конкретных операций упомянуты выше и здесь повторяться не будут.

Формат NameNode

# 在master进行操作
hdfs namenode -format

Если ваша работа пойдет хорошо, вы можете запустить кластер Hadoop ниже!

Введение в сценарии запуска и сценарии завершения работы

1. 启动脚本
-- start-dfs.sh :用于启动hdfs集群的脚本
-- start-yarn.sh :用于启动yarn守护进程
-- start-all.sh :用于启动hdfs和yarn
2. 关闭脚本
-- stop-dfs.sh :用于关闭hdfs集群的脚本
-- stop-yarn.sh :用于关闭yarn守护进程
-- stop-all.sh :用于关闭hdfs和yarn
3. 单个守护进程脚本
-- hadoop-daemons.sh :用于单独启动或关闭hdfs的某一个守护进程的脚本
-- hadoop-daemon.sh :用于单独启动或关闭hdfs的某一个守护进程的脚本
reg:
hadoop-daemon.sh [start|stop] [namenode|datanode|secondarynamenode]
-- yarn-daemons.sh :用于单独启动或关闭hdfs的某一个守护进程的脚本
-- yarn-daemon.sh :用于单独启动或关闭hdfs的某一个守护进程的脚本
reg:
yarn-daemon.sh [start|stop] [resourcemanager|nodemanager]

Наконец, каждый хост выполняет операцию просмотра процесса jps.Если запущенный процесс соответствует нашей схеме процессов, то поздравляем с успешным созданием кластера Hadoop!

Конечно, если какие-то процессы не запускаются успешно, мы можем прописать нужное лекарство для модификации конфигурационного файла соответствующего процесса.

Добро пожаловать на обмен и обучение

личный блог

домашняя страница csdn