在VMware下Hadoop分布式集群环境的配置--基于Yarn模式的一个Master节点、两个Slaver(Worker)节点的配置

[复制链接]
发表于 2025-4-5 15:43:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
你遇到的大部门ubuntu中配置hadoop的题目这里都有办理方法!!!(近10000字)



概要

在Docker虚拟容器环境下,进行Hadoop-3.2.2分布式集群环境的配置与安装,完成基于Yarn模式的一个Master节点、两个Slaver(Worker)节点的配置。

1.主要步骤


  • 安装配置启动Docker虚拟容器
  • 配置主机名
  • 配置主动时钟同步
  • 配置hosts列表
  • 配置免密码登录
  • 安装JDK(在三台节点分别操作此步骤)
  • 安装部署Hadoop集群
   2、实验环境

  虚拟机数量:3
体系版本:Centos Stream/Ubuntu 20.4(18.4)
Hadoop版本:Apache Hadoop 3.2.2(3.2.1)

   3、相干技能

  认识Linux操作体系
Hadoop原理
   4、知识点

  常见Linux下令的使用
linux体系基础配置
配置JDK
配置Hadoop的相干参数
掌握Hadoop操作指令

在安装Docker之前安装一些须要的依赖包:
  1. sudo apt install apt-transport-https ca-certificates curl software-properties-common
复制代码
添加 Docker 的官方 GPG 密钥
  1. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
复制代码
添加 Docker 的 APT 源
  1. sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
复制代码
更新 APT 包索引
  1. sudo apt update
复制代码
安装 Docker CE
  1. sudo apt install docker-ce
复制代码
安装完成后,您可以通过运行以下下令来验证 Docker 是否成功安装:
  1. sudo systemctl status docker
复制代码


下载Docker compose
  1. sudo apt update
  2. sudo apt install docker-composedocker-compose version  
复制代码
创建Docker-compose.yml

将以下内容放入yml:
  1. version: "3"  
  2.   
  3. services:  
  4.   master:  
  5.     image: ubuntu:latest  
  6.     container_name: masternode  
  7.     privileged: true  
  8.     networks:  
  9.       hadoop:  
  10.         ipv4_address: 10.10.0.11  
  11.     ports:  
  12.       - 9870:9870  
  13.       - 9000:9000  
  14.       - 18040:18040  
  15.       - 18030:18030  
  16.       - 18025:18025  
  17.       - 18141:18141  
  18.       - 18088:18088  
  19.       - 50070:50070  
  20.       - 60000:60000  
  21.       - 16000:16000  
  22.       - 8080:8080  
  23.     volumes:  
  24.       - hadoop:/hadoop/master  
  25.       - ./Files:/Files  
  26.     environment:  
  27.       - CLUSTER_NAME=hadoop_cluster_simple  
  28.     stdin_open: true  
  29.     tty: true  
  30.   slave01:  
  31.     image: ubuntu:latest  
  32.     container_name: slave01node  
  33.     privileged: true  
  34.     networks:  
  35.       hadoop:  
  36.         ipv4_address: 10.10.0.12  
  37.     volumes:  
  38.       - hadoop:/hadoop/slave01  
  39.       - ./Files:/Files  
  40.     environment:  
  41.       - CLUSTER_NAME=hadoop_cluster_simple  
  42.     stdin_open: true  
  43.     tty: true  
  44.   slave02:  
  45.     image: ubuntu:latest  
  46.     container_name: slave02node  
  47.     privileged: true  
  48.     networks:  
  49.       hadoop:  
  50.         ipv4_address: 10.10.0.13  
  51.     volumes:  
  52.       - hadoop:/hadoop/slave02  
  53.       - ./Files:/Files  
  54.     environment:  
  55.       - CLUSTER_NAME=hadoop_cluster_simple  
  56.     stdin_open: true  
  57.     tty: true  
  58.   slave03:  
  59.     image: ubuntu:latest  
  60.     container_name: slave03node  
  61.     privileged: true  
  62.     networks:  
  63.       hadoop:  
  64.         ipv4_address: 10.10.0.14  
  65.     volumes:  
  66.       - hadoop:/hadoop/slave03  
  67.       - ./Files:/Files  
  68.     environment:  
  69.       - CLUSTER_NAME=hadoop_cluster_simple  
  70.     stdin_open: true  
  71.     tty: true  
  72. volumes:  
  73.   hadoop:  
  74. networks:  
  75.   hadoop:  
  76.     driver: bridge  
  77.     ipam:  
  78.       driver: default  
  79.       config:  
  80.         - subnet: "10.10.0.0/24"
复制代码
在docker镜像地点中有已无法进入的地点,需要换源,具体看:完美办理Docker pull时报错:https://registry-1.docker.io/v2/-CSDN博客
启动Docker虚拟容器
  1. sudo docker-compose -f docker-compose.yml  up
复制代码

打开三个新的终端窗口,分别登录master、slave01和slave02节点(按下ctrl + d可以从各节点退出)

  1. sudo docker exec -it masternode /bin/bash
  2. sudo docker exec -it slave01node /bin/bash
  3. sudo docker exec -it slave02node /bin/bash
复制代码


使用vim编辑masternode主机名
  1. vi /etc/hostname
复制代码
docker容器中没有vim包需要下载:
  1. apt-get update
  2. apt-get install -y vim
复制代码
同理将slave01和slave02也改好



使用Linux下令crontab配置定时使命进行主动时钟同步(分别进入三个节点)
  1. apt install -y cron
  2. crontab -e
复制代码
    按”i ”键,进入INSERT模式;输入下面的内容(星号之间和前后都有空格)  

  1. 0 1 * * * ntpdate cn.pool.ntp.org
复制代码
   按Esc键退出INSERT模式,按下“shift+:”键,输入wq生存修改并退出


  手动同步时间,直接在Terminal运行下面的下令

  

  1. apt install -y ntpdate
  2. ntpdate cn.pool.ntp.org
复制代码

分别在三个节点配置hosts列表

在各虚拟机中运行ifconfig下令,得到当前节点的ip地点

  1. apt install -y net-tools
  2. ifconfig
复制代码
分别得到三个结点的ip地点
编辑主机名列表文件
  1. vi /etc/hosts
复制代码
将下面三行添加到/etc/hosts文件中,生存退出
  1. #master节点对应IP地址是10.10.0.11,slave01对应的IP是10.10.0.12,slave02对应的IP是10.10.0.13
  2. 10.10.0.11 master
  3. 10.10.0.12 slave01
  4. 10.10.0.13 slave02
复制代码

Ping主机名,按“Ctrl+C”停止下令
  1. ping master
  2. ping slave01  
  3. ping slave02
复制代码

三个虚拟节点的免密码登录配置
先在master节点上进行配置,生成rsa的SSH公钥
  1. apt install -y openssh-client
  2. ssh-keygen -t rsa
复制代码


生成的密钥在用户根目录中的.ssh子目录中,进入.ssh目录,查看目录文件
  1. cd ~/.ssh/
  2. ls
复制代码

将id_rsa.pub 文件追加到authorized_keys文件中
  1. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
复制代码
修改authorized_keys文件的权限,下令如下:

  1. chmod 600 ~/.ssh/authorized_keys
复制代码
将专用密钥添加到 ssh-agent 的高速缓存中
  1. ssh-agent bash
  2. ssh-add ~/.ssh/id_rsa
复制代码

将authorized_keys文件复制到slave01、slave02节点root用户的根目录,下令(在宿主机终端下执行)如下:


  1.      sudo docker cp  masternode:/root/.ssh/authorized_keys .
  2.      sudo docker cp  authorized_keys slave01node:/root/.ssh/
  3.      sudo docker cp  authorized_keys slave02node:/root/.ssh/
复制代码


打开主机和三个节点的防火墙
  1. apt install ufw -y
复制代码
验证免密登陆
  1. ssh slave01
复制代码



退出slave01远程登录
  1. exit
复制代码



通过apt-get安装JDK
  1. apt-get install openjdk-8-jdk
复制代码
使用vim修改“.bashrc”
  1. vi ~/.bashrc
复制代码
复制粘贴以下内容添加到到上面vim打开的文件中:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/

export PATH=$JAVA_HOME/binPATH

使环境变量见效,查看Java版本
  1. source ~/.bashrc
  2. java -version
复制代码


安装部署Hadoop集群
说明:每个节点上的Hadoop配置基本相同,在master节点操作,然后复制到slave01、slave02两个节点。

hadoop用Ubuntu自带的火狐浏览器下载,镜像地点:

  1. https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/
复制代码

将/目录下的hadoop-3.4.1.tar.gz压缩包解压到/hadoop-3.4.1目录下:
  1. sudo tar -zxf /home/Downloads/hadoop-3.4.1.tar.gz -C /usr/local
复制代码
-zxf背面的是刚才下载的压缩包路径,如果没安装输入法打不了中文的可以直接找到刚才下载的那个压缩包点复制然后粘贴到下令行就是路径了



配置hadoop-env.sh文件
  1. vi /usr/local/hadoop-3.4.1/etc/hadoop/hadoop-env.sh
复制代码
在hadoop-env.sh文件中添加JAVA环境变量:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/


配置yarn-env.sh文件
  1. vi /usr/local/hadoop-3.4.1/etc/hadoop/yarn-env.sh
复制代码
在yarn-env.sh文件中添加JAVA环境变量

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/


配置core-site.xml 文件
  1. vi /usr/local/hadoop-3.4.1/etc/hadoop/core-site.xml
复制代码

复制粘贴以下内容,添加到上面vim打开的core-site.xml 文件中:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <!-- Put site-specific property overrides in this file. -->
  4. <configuration>
  5. <property>
  6. <name>fs.defaultFS</name>
  7. <value>hdfs://master:9000</value>
  8. </property>
  9. <property>
  10. <name>hadoop.tmp.dir</name>
  11. <value>/hadoop</value>
  12. </property>
  13. </configuration>
复制代码
配置hdfs-site.xml 文件
  1. vi /usr/local/hadoop-3.4.1/etc/hadoop/hdfs-site.xml
复制代码
复制粘贴以下内容,添加到到上面vim打开的hdfs-site.xml 文件中:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <!-- Put site-specific property overrides in this file. -->
  4. <configuration>
  5. <property>
  6. <name>dfs.replication</name>
  7. <value>2</value>
  8. </property>
  9. </configuration>
复制代码
配置yarn-site.xml 文件
  1. vi /usr/local/hadoop-3.4.1/etc/hadoop/yarn-site.xml
复制代码
复制粘贴以下内容,添加到到上面vim打开的yarn-site.xml 文件中:
  1. <?xml version="1.0"?>
  2. <configuration>
  3. <property>
  4. <name>yarn.nodemanager.aux-services</name>
  5. <value>mapreduce_shuffle</value>
  6. </property>
  7. <property>
  8. <name>yarn.resourcemanager.address</name>
  9. <value>master:18040</value>
  10. </property>
  11. <property>
  12. <name>yarn.resourcemanager.scheduler.address</name>
  13. <value>master:18030</value>
  14. </property>
  15. <property>
  16. <name>yarn.resourcemanager.resource-tracker.address</name>
  17. <value>master:18025</value>
  18. </property>
  19. <property>
  20. <name>yarn.resourcemanager.admin.address</name>
  21. <value>master:18141</value>
  22. </property>
  23. <property>
  24. <name>yarn.resourcemanager.webapp.address</name>
  25. <value>master:18088</value>
  26. </property>
  27. </configuration>
复制代码
配置mapred-site.xml 文件
  1. vi /usr/local/hadoop-3.4.1/etc/hadoop/mapred-site.xml
复制代码
复制粘贴以下内容,添加到到上面vim打开的mapred-site.xml 文件中:
  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <configuration>
  4. <property>
  5. <name>mapreduce.framework.name</name>
  6. <value>yarn</value>
  7. </property>
  8. </configuration>
复制代码
配置workers 文件
  1. vi /usr/local/hadoop-3.4.1/etc/hadoop/workers
复制代码
复制粘贴以下内容,添加到到上面vim打开的workers文件中:

  1. slave01
  2. slave02
复制代码




将配置好的hadoop-3.4.1文件夹复制到从节点

  1. scp -r /usr/local/hadoop-3.4.1/ root@master:/
  2. scp -r /usr/local/hadoop-3.4.1/ root@slave01:/
  3. scp -r /usr/local/hadoop-3.4.1/ root@slave02:/
复制代码
如果输入密码错误:需要在从节点用 passwd root
下令设置密码


如果显示无法连接错误:

 安装 OpenSSH 服务端

  1. apt update && apt install -y openssh-server
复制代码
启动 SSH 服务

  1. service ssh start
复制代码
配置 SSH

  1. vi /etc/ssh/sshd_config
复制代码
添加:

  1. PermitRootLogin yes     # 允许 root 登录(仅测试环境)
  2. PasswordAuthentication yes
复制代码
重启ssh服务:
 


  1. service ssh restart
复制代码
效果如下:



配置Hadoop环境变量(在三台节点分别操作此步骤)
  1. vi ~/.bashrc
复制代码
在.bashrc末尾添加如下内容:

  1. ##HADOOP
  2. export HADOOP_HOME=/hadoop-3.4.1
  3. export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
复制代码

使环境变量见效
  1. source ~/.bashrc
复制代码
格式化Hadoop文件目录(在master上执行)

说明:格式化后首次执行此下令,提示输入y/n时,输入y。

  1. hdfs namenode -format
复制代码

启动Hadoop集群(在master上执行):
  1. start-all.sh
复制代码
查看Hadoop进程是否启动,在master的终端执行jps下令,出现下图效果
  1. jps
复制代码


浏览器地点栏中输入http://127.0.0.1:9870/,查抄namenode 和datanode 是否正常,如下图所示:



在浏览器地点栏中输入http://127.0.0.1:18088/,查抄Yarn是否正常,如下图所示:


运行PI实例查抄集群是否成功,成功如下图所示:
  1. hadoop jar /hadoop-3.4.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.4.1.jar pi 10 10
复制代码








其他细节事项:

首先打开VMware虚拟机,进入Ubuntu操作体系,进入终端:


然后在终端切换到root用户:
设置 root 用户的密码:
  1. sudo passwd root
复制代码
输入密码后切换到root模式:
  1. su root
复制代码
在Linux安装软件时需要用到yum下令,也可以是apt-get下令,以下介绍如何在ubtuntu中安装配置yum



接下来是安装build-essential步伐包和yum:
  1. apt-get install build-essential
  2. apt-get install yum
复制代码
在安装yum后可能会遇到以下报错:
E: Unable to locate package yum
这时间需要手动下载yum:
  1. sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
复制代码
     2.更换源
  1. sudo vim /etc/apt/sources.list
复制代码
如果这个时间报错无法发现vim
  1. sudo apt-get update
  2. sudo apt-get install vim
复制代码
按照上述方式下载vim

     3.vim编辑
接下来会进入到sources.list的内容里进行编辑


  • 点击insert进入编辑模式
  • 将下面网站文本复制粘贴并覆盖,粘贴的下令是 shift + insert。记得选择相应的Linux版本,此处为Ubuntu 20.04
在第一行添加镜像源如下:
  1. deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse
复制代码
       4.更新源
  1. sudo apt-get update
复制代码
      5.安装yum
  1. sudo apt-get install yum
复制代码

然后如果有以下提示:
The following packages have unmet dependencies:

按照提示逐一安装依赖:
  1. sudo apt-get install python-sqlitecachec
  2. sudo apt-get install python-pycurl
  3. sudo apt-get install python-urlgrabber
复制代码
再次安装yum:
  1. sudo apt-get install yum
复制代码
安装yum成功:
  1. yum --version
复制代码

末了将自己配置的repo文件用yum-config-manager进行yum软件源添加:
  1. yum-config-manager --add-repo /etc/yum.repo.d/my.repo
复制代码
 通过使用yum repolist下令查看时,由于刚下载yum,显示库的软件信息为0
这时需要配置yum源
参考这篇博主的文章:
# ubuntu 体系使用 yum下令报错 There are no enabled repos.Run “yum repolist all“ to see the repos you have..._there are no enabled repos. run "yum repolist all"-CSDN博客
好了之后就可以安装了
  1. yum upgrade
  2. yum install net-tools
复制代码



设置root密码

在docker容器内,初始化root密码,用于下一步的登录。
  1. passwd root
复制代码





回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表