克隆虚拟机
首先需关闭虚拟机
我的计算机---点击hadoop100---点击右键---电源---关闭客户机(正确关闭方法)
克隆(克隆三台)hadoop102/hadoop103/hadoop104
我的计算机---点击hadoop100---单击右键---管理---克隆---下一步---下一步
创建完成克隆---下一步---修改虚拟机名称hadoop102---完成
正确删除虚拟机
我的计算机---单击要删除的虚拟机---点击右键---管理---从磁盘中删除
修改IP地址主机名称
打开克隆机hadoop102---root账户---打开终端---修改IP地址
命令:vim /etc/sysconfig/network-scripts/ifcfg-ens33---将hadoo100改为hadoop102
修改主机名称命令vim /etc/hostname---hadoop100改为hadoop102
修改hosts文件命令vim /etc/hosts---模板虚拟机已经修改过了所以不用修改hosts文件了
重启reboot
重启后进入虚拟机---验证是否修改正确---hostname查看主机名称
另外两台按照上述过程修改
在 hadoop102 安装 JDK
1、传输jdk和hadoop文件
用 XShell 传输工具xftp将 JDK /hadoop导入到 opt 目录下面的 software 文件夹下面
2、查看文件是否传输成功
打开虚拟机,在传输文件中查看
3、解压jdk到/opt/module目录下
[atguigu@hadoop102 software]$ tar -zxvf jdk-8u212-linuxx64.tar.gz -C /opt/module/
4、配置jdk环境变量
(1)新建/etc/profile.d/my_env.sh文件
[atguigu@hadoop102 ~]$ sudo vim /etc/profile.d/my_env.sh
(2)配置环境变量
添加如下内容
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
(3)source 一下/etc/profile 文件,让新的环境变量 PATH 生效
[atguigu@hadoop102 ~]$ source /etc/profile
(5)测试jdk是否安装成功
[atguigu@hadoop102 ~]$ java -version
如果能看到以下结果,则代表 Java 安装成功。
java version "1.8.0_212"
在 hadoop102 安装 Hadoop
解压安装文件到/opt/module 下面
[atguigu@hadoop102 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
将 Hadoop 添加到环境变量
(1)获取 Hadoop 安装路径
[atguigu@hadoop102 hadoop-3.1.3]$ pwd/opt/module/hadoop-3.1.3
(2)打开/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.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
让修改后的文件生效
[atguigu@hadoop102 hadoop-3.1.3]$ source /etc/profile
本地运行模式
1)创建在 hadoop-3.1.3 文件下面创建一个 wcinput 文件夹
[atguigu@hadoop102 hadoop-3.1.3]$ mkdir wcinput
2)在 wcinput 文件下创建一个 word.txt 文件
[atguigu@hadoop102 hadoop-3.1.3]$ cd wcinput
3)编辑 word.txt 文件
[atguigu@hadoop102 wcinput]$ vim word.txt
在文件中输入如下内容
soso
cls cls
banzhang
yangge
保存退出::wq
4)回到 Hadoop 目录/opt/module/hadoop-3.1.3
[atguigu@hadoop102 hadoop-3.1.3]$ hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar
wordcount wcinput wcoutput
6)查看结果
[atguigu@hadoop102 hadoop-3.1.3]$ cat wcoutput/part-r-00000
看到如下结果:
so 2
cls 2
banzhang 1
yangge 1
scp语法
基本语法 scp -r $pdir/$fname $user@$host:$pdir/$fname
命令
递归
要拷贝的文件路径
/
名称
目的地用户
@
主机
:
目的地路径
/
名称
案例操作
(1
)在
hadoop102
上,将
hadoop102
中
/opt/module/jdk1.8.0_212
目录拷贝到 hadoop103
上。
[atguigu@hadoop102
~]$ scp -r /opt/module/jdk1.8.0_212 atguigu@hadoop103:/opt/module
(2
)在
hadoop103
上,将
hadoop102
中
/opt/module/hadoop-3.1.3
目录拷贝到 hadoop10
3 上。
[atguigu@hadoop103
~]$ scp -r atguigu@hadoop102:/opt/module/hadoop-3.1.3 /opt/module/
(3
)在
hadoop103 上操作,将 hadoop102 中/opt/module 目录下所有目录拷贝到 hadoop10上。
[atguigu@hadoop103
opt]$ scp -r atguigu@hadoop102:/opt/module/* atguigu@hadoop104:/opt/module
rsync语法
基本语法 rsync -av $pdir/$fname $user@$host:$pdir/$fname
命令
选项参数
要拷贝的文件路径
/
名称
目的地用户
@
主机
:
目的地路径
/
名称
xsync 集群分发脚本
在
/home/atguigu/bin
目录下创建
xsync
文件
[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
修改脚本
xsync
具有执行权限
[atguigu@hadoop102 bin]$ chmod 777 xsync
同步环境变量配置(
root
所有者)
[atguigu@hadoop102
~]$ sudo ./bin/xsync /etc/profile.d/my_env.sh
注意:如果用了
sudo
,那么
xsync
一定要给它的路径补全。
让环境变量生效
[atguigu@
hadoop103 bin]$ source /etc/profile
[atguigu@hadoop104 bin]$ source /etc/profile
SSH 无密登录配置
:
id_rsa
(私钥)
id_rsa.pub
(公钥)
生成公钥和私钥(命令:ls -al 显示所有文件)
[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
集群配置
NameNode
和
SecondaryNameNode
不要安装在同一台服务器
➢
ResourceManager
也很消耗内存,不要和
NameNode
、
SecondaryNameNode
配置在同一台机器上面
配置部署如图:
![](https://i-blog.csdnimg.cn/blog_migrate/2120ca21d26d9d59061a6b3e7771493c.png)
文件在下面路径上
[atguigu@hadoop102 ~]$ cd /opt/module/hadoop-3.1.3/etc/hadoop
1核心配置文件
配置 core-site.xml
[atguigu@hadoop102 hadoop]$ vim core-site.xml
添加内容如下图
![](https://i-blog.csdnimg.cn/blog_migrate/1199599b43b22454f24bd7493c7c38a5.png)
2HDFS
配置文件
配置
hdfs-site.xml
[atguigu@hadoop102 hadoop]$ vim hdfs-site.xml
配置内容如下图
3YARN
配置文件
配置
yarn-site.xml
[atguigu@hadoop102 hadoop]$ vim yarn-site.xml
配置内容如下图
![](https://i-blog.csdnimg.cn/blog_migrate/35a315253394e6ce5cd3a1ab94d003ef.png)
4MapReduce
配置文件
配置
mapred-site.xml
[atguigu@hadoop102 hadoop]$ vim mapred-site.xml
配置内容如下图
![](https://i-blog.csdnimg.cn/blog_migrate/d4ced5ed2529ee3b0f3addd18f92ce6d.png)
在集群上分发配置好的 Hadoop 配置文件
[atguigu@hadoop102 hadoop]$ xsync /opt/module/hadoop- 3.1.3/etc/hadoop/
在hadoop103和hadoop104上查看文件分发情况
[atguigu@hadoop103 ~]$ cat /opt/module/hadoop- 3.1.3/etc/hadoop/core-site.xml
[atguigu@hadoop104 ~]$ cat /opt/module/hadoop- 3.1.3/etc/hadoop/core-site.xml