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-ens33BOOTPROTO=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配置
这里呢有两种方法:
- 通过命令在 linux 系统终端 内部 进行修改
- 通过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}/pidsyarn-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}/pidscore-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格式化
在 master 机上,进入 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版权协议,转载请附上原文出处链接和本声明。