**
hadoop3.2.0完全分布式搭建**
配置1.Centos7镜像 (官网下) 教程:
2.Vmware16(白嫖)
3.jdk-8u321-linux-x64(官网应该有)
4.hadoop-3.2.0(忘记在哪里下了)
centos7安装教程:https://www.cnblogs.com/wendy-0901/p/12978534.html
一、单台虚拟机准备 1、设置虚拟机静态IP打开终端(就是右键点击,打开终端)
输入cd /etc/sysconfig/network-scripts
再输入ls
找到类似于ifcfg-ensXX的文件,XX表示idcfg-ens后的数字,可能不一样
输入su进入超级管理者权限
输入vim /etc/sysconfig/network-scripts/ifcfg-ensXX
注意标红的地方,没有的项就加上,IPADDR就是你想静态的IP地址,GATWARE和DNS1一会儿编辑linux虚拟机的虚拟网络编辑器时说明。
vim使用:
编辑:输入“i”
保存退出:点击Esc ,再输入“:wq”
不保存:点击Esc ,再输入“:q!”
复制快捷键: ctrl+shift+c
粘贴快捷键:ctrl+shift+v
关机
查看Linux虚拟机的虚拟网络编辑器,编辑->虚拟网络编辑器->VMnet8
点击更改设置
点击添加网络,确定。
再选择NAT模式。
子网IP设置为192.168.1.0,就直接将后面两个改成1和0。
再点击NAT设置网关设置静态IP地址时的DNS1一致。
再点击应用。
确定退出
查看Windows系统适配器VMware Network Adapter VMnet8的IP地址
位置在设置 --> 网络和Internet --> 更改适配器选项
右键点击VMnet8,再点击属性,再双击Internet协议版本4(TCP/IPV4)
确定默认网关与DNS服务器一致
以下所有步骤要进入超级管理者
2、修改该虚拟机主机名:输入
vim /etc/hostname
直接删完,写你想要的主机名。
记得重启生效
输入
vim /etc/hosts
再后面添加格式:IP 主机名
假设有两台从节点,要加多少节点,就在后面加。
192.168.1.103 hadoop1
192.168.1.104 hadoop2
注:每次启动都要搞,有永久关闭的我搞不来
systemctl stop firewalld.service
useradd atguigu
修改密码
passwd atguigu
重启
reboot
进入atguigu用户
打开终端
输入chmo 777 /etc/sudoers
再输入 vim /etc/sudoers
在图示位置输入 atguigu ALL =(ALL) ALL
保存退出
输入 chmod 444 /etc/sudoers ,将/etc/sudoers文件权限改回
退出root权限,输入exit
进入opt目录 输入 cd /opt
创建module文件 sudo mkdir module
创建software文件 sudo mkdir softaware
修改module、software文件夹的所有者cd :sudo chown atguigu:atguigu module/ software/
查看创建好没 ,输入 ll
1)、安装xshell,
获取下载地址
https://www.xshell.com/zh/free-for-home-school/
在该界面输入你的邮箱,获得下载链接
再打开你输入的邮箱,点击链接下载
安装
点击下一步
接受许可,下一步
点击浏览,选择你要安装的位置,再点击下一步
点击安装
点击完成
2)连接xshell
点击新建
填写名称,就链接的主机名
主机,就是链接的主机IP地址
再点击用户身份验证,输入用户名:auguigu,再输入密码.
点击连接
再点击接受并保存
就ok了。
进入opt文件 cd /opt
3)、卸载现有JDK
查询是否安装java软件 rpm -qa | grep java
除了tzdata-java-2020a-1.el7.noarch ,javapackages-tools-3.4.1-11.el7.noarch,其他全卸载
xshell里的复制快捷键: ctrl +insert
粘贴快捷键:shift+insert
sudo rpm -e --nodeps 文件名
结果:
在xshell中输入 rz 如果没有弹出选框,输入sudo yum -y install lrzsz
进入/opt/software文件目录 cd /opt/software
输入:rz
在选框中找到自己要用的文件,点击打开。
顺路将hadoop的压缩包传到虚拟机中
输入ll查看文件
将jdk压缩包解压到/opt/module文件目录下
tar -zxvf jdk-8u321-linux-x64.tar.gz -C /opt/module
进入/opt/module目录下
获取JDK路径 pwd
创建/etc/profile.d/env.sh文件
sudo vim /etc/profile
在最后写入
JAVA_HOME=/opt/module/jdk1.8.0_321 JRE_HOME=$JAVA_HOME/jre PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib export JAVA_HOME JRE_HOME PATH CLASSPATH
输入 source /etc/profile 使文件生效
输入 java -version
JDK配置完成
进入/opt/software目录
将hadoop压缩包解压到/opt/module
tar -zxvf Hadoop-3.2.0.tar. gz -C /opt/module
进入/opt/module目录
查看
创建/etc/profile.d/env.sh文件
在里面输入
#JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_144 export PATH=$PATH:$JAVA_HOME/bin ##HADOOP_HOME export HADOOP_HOME=/opt/module/hadoop-2.7.2 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin
使文件生效
source /etc/profile.d/env.sh
查看hadoop版本
hadoop version
1、克隆两台虚拟机
点击下一页
选择完整克隆,下一页
选择你克隆机的位置和名字,点击完成
克隆两台吧,重复上述步骤。
2、修改克隆机的hostname
启动克隆机,进入终端,进入root权限
su
vim /etc/hostname
全部删了,改成克隆机的主机名
修改IP地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
将103改成别的数字 ,范围1~255,不能重复
重启reboot
3、编写集群分发脚本
在master主机上写
在/home/atguigu目录上写
[atguigu@master ~]$ cd /home/atguigu [atguigu@master ~]$ mkdir bin [atguigu@master ~]$ cd /bin
输入vi xsync
新建xsync脚本文件
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if ((pcount==0)); then
echo no args;
exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
:
#4 获取当前用户名称
user=`whoami`
#5 循环 ,in后面加你的所有节点名。
for host in master hadoop1 hadoop2
do
echo ------------------- $host --------------
rsync -av $pdir/$fname $user@$host:$pdir
done
修改脚本 xsync 具有执行权限
chmod 777 xsync
调用脚本形式:xsync 文件名称
xsync /home/atguigu/bin2、ssh免密登录配置
生成公钥和私钥
ssh-keygen -t rsa
然后敲三次回车
将公钥拷贝到要免密登录的目标机器
ssh-copy-id master
再输入目标机器的密码
再试一下免密登录
ssh master
输入exit退出(一定要记得)
记得要复制到你创建的所有虚拟机
注意:NameNode和SecondaryNameNode不要安装在同一台服务器
注意:ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上。
1)配值core-site.xml
输入cd /opt/module/hadoop-3.2.0/etc/hadoop
输入vi core-site.xml
在该文件中
注意:第一个中的master是主节点的hostname,第二个记得要把自己的hadoop版本改一改。
fs.defaultFS hdfs://master:9000 hadoop.tmp.dir /opt/module/hadoop-3.2.0/data/tmp
2)HDFS配置文件
配置hadoop-env.sh
在文本末尾添加
vi hadoop-env.sh
在该文件中
export JAVA_HOME=/opt/module/jdk1.8.0_321
配置hdfs-site.xml
其中第二个
dfs.replication 1 dfs.namenode.secondary.http-address hadoop2:50090
3)YARN配置文件
配置yarn-env.sh
输入vi yarn-env.sh
添加以下
export JAVA_HOME=/opt/module/jdk1.8.0_321
配置yarn-site.xml
输入 vi yarn-site.xml
在该文件中增加如下配置
注意:第二个
yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname hadoop1 yarn.log-aggregation-enable true yarn.log-aggregation.retain-seconds 604800
4)MapReduce配置文件
配置mapred-env.sh
输入vi mapred-env.sh
配置以下
export JAVA_HOME=/opt/module/jdk1.8.0_321
配置mapred-site.xml
输入vi mapred-site.xml
在该文件中增加如下配置
注:记得修改第二和第三处
mapreduce.framework.name yarn mapreduce.jobhistory.address master:10020 mapreduce.jobhistory.webapp.address master:19888
5)slaves配置文件/opt/module/hadoop-3.2.0/etc/hadoop/workers
注:hadoop3.0版本前的是slaves
输入vi works
在文件中添加所有节点的hostname
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
[atguigu@hadoop1 opt]$ sudo mkdir module [atguigu@hadoop1 opt]$ sudo chown atguigu:atguigu module/
[atguigu@hadoop2 opt]$ sudo mkdir module [atguigu@hadoop2 opt]$ sudo chown atguigu:atguigu module/6、在集群上分发配置好的etc/profile配置文件
在master主机上
sudo scp /etc/profile root@hadoop1:/etc/profile sudo scp /etc/profile root@hadoop2:/etc/profile
在另外两台虚拟机中分别执行 source /etc/profile
[atguigu@hadoop1 module]$ source /etc/profile
[atguigu@hadoop2 module]$ source /etc/profile
进入hadoop-3.2.0/bin目录
cd /opt/module/hadoop-3.2.0/bin
进行格式化:
hdfs namenode -format
2、启动HDFS
在master上进行:进入sbin目录
cd /opt/module/hadoop-3.2.0/sbin
启动hdfs
./start-dfs.sh
在三台机子上输入jps,如果三台都出现datanode就行
在hadoop1上进行:进入sbin目录
cd /opt/module/hadoop-3.2.0/sbin
启动yarn
./start-yarn.sh
三台机子输入jps,都有Nodemanager就行。
结束。



