hadoop部署过程-笔记

hadoop全分布环境搭建

参考文件:
http://blog.dengjiayang.cn/archives/hadoop.html
等等还有好多 都不太记得了就这个抄的最多

1.所需文件

以下文件均问本次实验所用版本,无强制要求

  • Xftp7.0.0071p.exe(文件交互)
  • hadoop-2.9.2.tar.gz
  • jdk-8u191-linux-x64.tar.gz
  • VMware-workstation-full-15.5.0-14665864.exe
  • CentOS-7-x86_64-DVD-2009.iso
  • MobaXterm_CHS.exe

2.三个状态

  • 状态一:配置静态ip、环境变量、域名映射、主机名、jdk和hadoop安装
  • 状态二:克隆虚拟机、主机名、静态ip、免密登录
  • 状态三:配置hadoop、启动、测试、关闭

3.状态一

- ip 域名
	- master、slave1、slave2
	- ip 192.168.122.130\131\132
	- 网关 192.168.122.2
- 安装包存储路径 /home/yangguofei/Downloads/
- java的jdk安装路径
	- /usr/java/jdk1.8.0_191
- hadoop
	- cd /usr/hadoop/hadoop-2.9.2

3.1 网卡ip配置

  •  - cd /etc/sysconfig/network-scripts
     - ls
         找那个 ifcfg-ens33
     - 先进root用户
    - vim  /etc/sysconfig/network-scripts/ifcfg-ens33
    
  • BOOTPROTO=static       #关闭DHCP,可以不做,不影响
    ...
    ONBOOT=yes                #开机启动
    IPADDR=192.168.122.130   #该虚拟机的ip地址
    NETMSDK=255.255.255.0    # 子网掩码
    GATEWAY=192.168.122.2  #网关地址
    DNS1=192.168.122.2     #DNS可根据自己网络进行配置
    
  • - systemctl restart network.service # 使配置生效 
    - ip addr # 检测
    

在这里插入图片描述

3.2修改主机名–方便日后调用

  • root 用户,通过修改配置文件/etc/hostname
    
    - vim /etc/hostname
        原始内容:localhost.localdomain
        主节点修改为: master
        从结点修改为: slave1、slave2
    - 使配置生效 reboot
    
  • 验证
    
    - hostname
    输出:master
    
  • 编辑域名映射 
    root 用户,通过修改配置文件/etc/hosts
    
    - vim /etc/hosts
    追加三行 
    192.168.122.130 master
    192.168.122.131 slave1
    192.168.122.132 slave2
    
  • 关闭防火墙 
    -root 
      - systemctl disable firewalld.service  永久关闭防火墙
      - reboot  重启
      - systemctl status firewalld.service  查看防火墙状态
      	Active: inactive (dead)
    

3.3 安装java、hadoop、环境变量配置

  • 卸载原有jdk
    
    - 查询已安装的java版本
    	- java -version  查询是否已安装
    	- rpm -qa|grep jdk  查询安装版本
    - 卸载对应java
    	- yum -y remove java-1.8.0*
    	- yum -y remove java-1.7.0*
    - rpm -qa|grep jdk  检查版本
    
  • Xftp 准备文件 - 将从左边拖到右边
    

在这里插入图片描述

  • 创建安装所需文件
    
    mkdir /usr/java
    mkdir /usr/hadoop
    
  • 安装jdk
    
    - cd /usr/java
    - tar -zxvf /home/yangguofei/Downloads/jdk-8u191-linux-x64.tar.gz
    
  • 安装hadoop
    
    - cd /usr/hadoop
    - tar -zxvf /home/yangguofei/Downloads/hadoop-2.9.2.tar.gz 
    
  • 配置环境变量 
    
    - vi /etc/profile
    添加
    
    export JAVA_HOME=/usr/java/jdk1.8.0_191
    export PATH=$JAVA_HOME/bin:$PATH
    
    export HADOOP_HOME=/usr/hadoop/hadoop-2.9.2
    export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH 
    
  • 使文件生效
    
    - . /etc/profile
    检测
    
    - echo $PATH
    - java -version
    - hadoop version
    

在这里插入图片描述

在这里插入图片描述

4.状态二——免密登录

改主机名 ip

- su
- vi /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR=192.168.122.130、131、132

- vi /etc/hostname
slave1、slave2

创建秘钥——所有结点

- 切换root用户
- cd /root/
- ssh-keygen -t rsa

检测
cd /root/.ssh/
ls

在这里插入图片描述

共享秘钥——主节点

- cat id_rsa.pub >> authorized_keys
- chmod 644 authorized_keys
- systemctl restart sshd.service
- scp /root/.ssh/authorized_keys slave1:/root/.ssh
- scp /root/.ssh/authorized_keys slave2:/root/.ssh

免密检测——主节点

[root@master .ssh]# ssh slave1
Last login: Thu Sep 16 18:26:36 2021 from master
[root@slave1 ~]# exit
logout
Connection to slave1 closed.
[root@master .ssh]#

到这里算是以个小结点了这里建议将这三台虚拟机进行拷贝一下!

5.状态三——hadoop配置

5.1hadoop配置

这里呢有两种方法:

  1. 通过命令在 linux 系统终端 内部 进行修改
  2. 通过xftp 拷贝一份hadoop配置文件,在windowns桌面进行修改(不能添加中文-两个系统编码不同导致中文在linux上显示的乱码,可能导致配置文件失效)

这里我列出在终端所需命令及所需文本

- cd $HADOOP_HOME/etc/hadoop  (先转路径)
所需配置文件
hadoop-env.sh
mapred-env.sh
yarn-env.sh
core-site.xml
mapred-site.xml
slaves
  • hadoop-env.sh
    
    - vim hadoop-env.sh
    	- 25 行“export JAVA_HOME=${JAVA_HOME}” 改为
    		export JAVA_HOME=/usr/java/jdk1.8.0_191 
    	- 26 空行 添加
    		export HADOOP_SSH_OPTS='-o StrictHostKeyChecking=no'
    	- 113 行 迷之添加
    		export HADOOP_PID_DIR=${HADOOP_PID_DIR} 后添加 /pids
    # 迷之添加 老师的实验指导书就是这么写的呀!原因如下:不太清除
    指定 HDFS 守护进程号的保存位置,默认为“/tmp”
    由于该文件夹用以存放临时文件,系统定时会自动清理
    pids 会随着 HDFS 守护进程的启动而由系统自动创建,无需用户手工创建
    
  • mapred-env.sh
    
    - vim mapred-env.sh 
    	- 第 16 行注释“# export JAVA_HOME=/home/y/libexec/jdk1.6.0/”修改为: 
    		export JAVA_HOME=/usr/java/jdk1.8.0_191
    	- 第 28 行 此处注释“#export HADOOP_MAPRED_PID_DIR=” 修改为:
    		export HADOOP_MAPRED_PID_DIR=${HADOOP_HOME}/pids 
    
  • yarn-env.sh 
    - vim yarn-env.sh 
    	- 第 23 行注释“# export JAVA_HOME=/home/y/libexec/jdk1.6.0/”修改为: 
    		export JAVA_HOME=/usr/java/jdk1.8.0_191 
    	- 最后一行添加 一行配置
    		export YARN_PID_DIR=${HADOOP_HOME}/pids 
    
  • core-site.xml
    
    - vim core-site.xml
    
    	- 本实验中关于 core-site.xml 配置文件的修改如下所示。 
    <configuration> 
            <property> 
                    <name>fs.defaultFS</name> 	 
                    <value>hdfs://master:9000</value> 
            </property> 
            <property> 
     <!-- hadoop安装路径 windowns修改 清除这一行注释-->
                    <name>hadoop.tmp.dir</name> 
                    <value>/usr/hadoop/hadoop-2.9.2/hdfsdata</value> 
            </property> 
            <property> 
                    <name>io.file.buffer.size</name> 
                    <value>131072</value> 
            </property> 
    </configuration> 
    
  • mapred-site.xml 
    
    mapred-site.xml 配置文件是有关 MapReduce 计算框架的配置信息
    Hadoop 配置文件中没有 mapred-site.xml,但有 mapred-site.xml.template
    使用命令,将其复制并重命名为“mapred-site.xml”即可
    - cp mapred-site.xml.template mapred-site.xml
    - vim mapred-site.xml
    
    - 本实验中关于 mapred-site.xml  配置文件的修改如下所示。 
    <configuration> 
            <property> 
                    <name>mapreduce.framework.name</name> 
                    <value>yarn</value> 
            </property> 
    </configuration> 
    
    
  • yarn-site.xml 
    
    	- vim yarn-site.xml
    	- 本实验中对于 yarn-site.xml 的添加内容如下所示。 
    <configuration> 
            <property> 
                    <name>yarn.resourcemanager.hostname</name> 
                    <value>master</value> 
            </property> 
            <property> 
                    <name>yarn.nodemanager.aux-services</name> 
                    <value>mapreduce_shuffle</value> 
            </property> 
    </configuration> 
    
  • slaves
    配置文件 slaves 用于指定从节点主机名列表,在这个文件中,需要添加所有的从节点主机名,每一个主机名占一行,本实验中 slaves 文件的内容如下所示。 
    
    	- vim slaves
    	- 本实验中对于 slaves 的添加内容如下所示。 
    slave1 
    slave2 
    
    注释:需要注意的是,在 slaves 文件里,有一个默认值 localhost,一定要删除,若不删除,虽然后面添加了所有的从节点主机名,Hadoop 还是无法逃脱“伪分布模式”的命运。
    
  • windons拷贝修改版

虚拟机上hadoop配置文件存储路径 /usr/hadoop/hadoop-2.9.2/etc

在这里插入图片描述

  • linux 发送版——使用scp 将配置文件发送过去
拷贝大文件使用
scp -r本地文件 目标ip:目标文件存储目录

# 需要先删除从节点上的配置文件防止出错
scp  -r /usr/hadoop/hadoop-2.9.2/etc slave1:/usr/hadoop/hadoop-2.9.2
scp  -r /usr/hadoop/hadoop-2.9.2/etc slave2:/usr/hadoop/hadoop-2.9.2

5.2格式化

在 mas­ter 机上,进入 hadoop 下的 bin 文件夹,运行以下代码:

- cd /usr/hadoop/hadoop-2.9.2/bin/
- hdfs namenode -format

5.3 启动——检测

启动-start-dfs.sh  
[root@master .ssh]# start-dfs.sh
Starting namenodes on [master]
master: starting namenode, logging to /usr/hadoop/hadoop-2.9.2/logs/hadoop-root-namenode-master.out
slave1: starting datanode, logging to /usr/hadoop/hadoop-2.9.2/logs/hadoop-root-datanode-slave1.out
slave2: starting datanode, logging to /usr/hadoop/hadoop-2.9.2/logs/hadoop-root-datanode-slave2.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /usr/hadoop/hadoop-2.9.2/logs/hadoop-r

- jps进程检测
主节点
[root@master .ssh]# jps
12556 Jps
...
[root@master .ssh]# jps
12788 NameNode
13068 SecondaryNameNode
13260 Jps

从节点
[root@slave1 ~]# jps
1297 Jps
[root@slave1 ~]# jps
1346 DataNode
1455 Jps

master:50070

在这里插入图片描述

start-yarn.sh
主节点
[root@master .ssh]# start-yarn.sh
starting yarn daemons
starting resourcemanager, logging to /usr/hadoop/hadoop-2.9.2/logs/yarn-root-resourcemanager-master.out
slave2: starting nodemanager, logging to /usr/hadoop/hadoop-2.9.2/logs/yarn-root-nodemanager-slave2.out
slave1: starting nodemanager, logging to /usr/hadoop/hadoop-2.9.2/logs/yarn-root-nodemanager-slave1.out
[root@master .ssh]# jps
12788 NameNode
14756 ResourceManager # 主节点上多了这个进程
16100 Jps
13068 SecondaryNameNode

[root@slave1 ~]# jps
1346 DataNode
1455 Jps
[root@slave1 ~]# jps
1346 DataNode
1798 NodeManager     # 从节点上多了这个进程
1950 Jps
[root@slave1 ~]#

master:8088

在这里插入图片描述

mr-jobhistory-daemon.sh start historyserver

主节点
[root@master .ssh]# mr-jobhistory-daemon.sh start historyserver
starting historyserver, logging to /usr/hadoop/hadoop-2.9.2/logs/mapred-root-historyserver-master.out
[root@master .ssh]# jps
12788 NameNode
14756 ResourceManager
16613 JobHistoryServer  # 主节点上多了这个进程
13068 SecondaryNameNode
16670 Jps
[root@master .ssh]#


从节点上没啥变化

master:19880

在这里插入图片描述

6.关闭—— 一定要关闭

mr-jobhistory-daemon.sh stop historyserver
stop-yarn.sh 
stop-dfs.sh

[root@master ~]# mr-jobhistory-daemon.sh stop historyserver
stopping historyserver
[root@master ~]# stop-yarn.sh
stopping yarn daemons
stopping resourcemanager
slave2: stopping nodemanager
slave1: stopping nodemanager
slave2: nodemanager did not stop gracefully after 5 seconds: killing with kill -9
slave1: nodemanager did not stop gracefully after 5 seconds: killing with kill -9
no proxyserver to stop
[root@master ~]# stop-dfs.sh
Stopping namenodes on [master]
master: stopping namenode
slave2: stopping datanode
slave1: stopping datanode
Stopping secondary namenodes [0.0.0.0]
0.0.0.0: stopping secondarynamenode
[root@master ~]# jps
18476 Jps

补充:

- 保存文件 内部操作
	- i 进入插入模式
    - ESC键进入【命令模式】
    - 输入“:”,进入【末行模式】
    - 在末行模式下,可使用如下退出命令:
        ① q 是直接退出;
        ② wq 保存后退出;
        ③ q! 强制退出;
        ④ wq! 强制保存退出;
可用 ip 网关查找
【编辑】——》【虚拟网络编辑器】——》选哪个外部链接是【NAT】的——》【NAT设置】——》叉掉——》【DHCP设置】

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


版权声明:本文为weixin_48015656原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。