本文章基于尚硅谷Hadoop 3.x视频进行总结,仅作为学习交流使用 视频链接如下:20_尚硅谷_Hadoop_入门_IP和主机名称配置_哔哩哔哩_bilibili
目录
第一部分.IP和主机名称配置
1.VM网络配置
2.Windows网络配置
3.虚拟机网络配置
4.主机名称配置
5.主机名称映射配置
6.reboot
第二部分.Xshell远程访问工具
1.主机名称映射配置
2.配置Xshell远程访问工具
第三部分.准备模板虚拟机
1.安装epel-release
2.关闭防火墙
3.配置atguigu用户具有root权限
4.在/opt目录下创建文件夹,并修改所属主和所属组
5.卸载虚拟机自带的JDK
6.reboot
第四部分.克隆三台虚拟机
1.利用模板机hadoop100,克隆三台虚拟机:hadoop102 hadoop103 hadoop104
2.修改克隆机ip地址和主机名称
3.配置Xshell远程登录工具
第五部分.JDK安装
1.用XShell传输工具将JDK和Hadoop导入到opt目录下面的software文件夹下面
2.安装JDK
3.配置JDK环境变量
第六部分.Hadoop安装
1.安装Hadoop
2.将Hadoop添加到环境变量
192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108
C:\Windows\System32\drivers\etc
如果操作系统是window10,先拷贝出来,修改保存以后,再覆盖即可
[root@hadoop100 ~]# yum install -y epel-release
[root@hadoop100 ~]# systemctl stop firewalld
[root@hadoop100 ~]# systemctl disable firewalld.service
[root@hadoop100 ~]# vim /etc/sudoers
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
atguigu ALL=(ALL) NOPASSWD:ALL
[root@hadoop100 ~]# mkdir /opt/module
[root@hadoop100 ~]# mkdir /opt/software
[root@hadoop100 ~]# chown atguigu:atguigu /opt/module
[root@hadoop100 ~]# chown atguigu:atguigu /opt/software
[root@hadoop100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
注意:克隆时,要先关闭hadoop100
[root@hadoop100 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@hadoop100 ~]# vim /etc/hostname[root@hadoop100 ~]# reboot
[atguigu@hadoop102 software]$ tar -zxvf jdk-8u341-linux-x64.tar.gz -C /opt/module/
新建/etc/profile.d/my_env.sh文件
[atguigu@hadoop102 ~]$ sudo vim /etc/profile.d/my_env.sh
添加如下内容
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
source一下/etc/profile文件,让新的环境变量PATH生效
[atguigu@hadoop102 ~]$ source /etc/profile
[atguigu@hadoop102 software]$ tar -zxvf hadoop-3.3.4.tar.gz -C /opt/module/
打开/etc/profile.d/my_env.sh文件
[atguigu@hadoop102 hadoop-3.1.3]$ sudo vim /etc/profile.d/my_env.sh
在my_env.sh文件末尾添加如下内容:
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
让修改后的文件生效
[atguigu@hadoop102 hadoop-3.1.3]$ source /etc/profile
[atguigu@hadoop102 hadoop-3.3.4]$ mkdir wcinput
[atguigu@hadoop102 wcinput]$ vim word.txt
编辑word.txt文件
hadoop yarn
hadoop mapreduce
atguigu
atguigu
[atguigu@hadoop102 hadoop-3.3.4]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar wordcount wcinput/ wcoutput/
查看结果
[atguigu@hadoop102 hadoop-3.3.4]$ cat wcoutput/part-r-00000
看到如下结果:
atguigu 2
hadoop 2
mapreduce 1
yarn 1
[atguigu@hadoop102 opt]$ cd /home/atguigu
[atguigu@hadoop102 ~]$ mkdir bin
[atguigu@hadoop102 ~]$ cd bin
[atguigu@hadoop102 bin]$ vim xsync
在该文件中编写如下代码
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
echo ==================== $host ====================
#3. 遍历所有目录,挨个发送
for file in $@
do
#4. 判断文件是否存在
if [ -e $file ]
then
#5. 获取父目录
pdir=$(cd -P $(dirname $file); pwd)
#6. 获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
[atguigu@hadoop102 bin]$ chmod 777 xsync
[atguigu@hadoop102 ~]$ xsync bin
[atguigu@hadoop102 bin]$ sudo cp xsync /bin/
[atguigu@hadoop102 ~]$ sudo ./bin/xsync /etc/profile.d/my_env.sh
注意:如果用了sudo,那么xsync一定要给它的路径补全。
让环境变量生效
[atguigu@hadoop103 bin]$ source /etc/profile
[atguigu@hadoop104 opt]$ source /etc/profile
[atguigu@hadoop102 .ssh]$ pwd /home/atguigu/.ssh
[atguigu@hadoop102 .ssh]$ ssh-keygen -t rsa
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop102
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop103
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop104
[atguigu@hadoop102 module]$ xsync /opt/module/*