目录
1、安装JDK
2、Hadoop安装
3、本地运行模式(官方WordCount)
4、完全分布式运行模式
4.1 scp
4.1.1 把zabbix1上的JDK拷贝到zabbix2上面
4.1.2 在zabbix2上拉取zabbix1上的Hadoop-3.1.3
4.1.3 在zabbix2上将zabbix1上的文件拷贝到zabbix3上
4.2 rsync远程同步工具
4.2.1 删掉zabbix2中的wcinput和wcoutput文件
4.2.2 zabbix1上的Hadoop-3.1.3同步到zabbix2上
4.3 xsync集群分发脚本
4.3.1 创建一个脚本
4.3.2 查看全局变量
4.3.3 脚本
4.3.4 创建软连接
4.3.5 创建bin,编写脚本
4.3.6 赋权
4.3.7 分发
5、SSH免密登录
tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
cd /etc/profile.d/
sudo vim my_env.sh
source /etc/profile
java
cd /opt/software
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
/opt/module/hadoop-3.1.3
sudo vim /etc/profile.d/my_env.sh
source /etc/profile
hadoop
mkdir wcinput
vim word.txt
bin/hadoop jar share/hadoop/mapreduce/ //按Tab键,按Enter键出不来
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput/ ./wcoutput
cd wcoutput
cat part-r-00000
scp:可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)
基本语法:
scp -r $pdir/$fname $user@$host:$pdir/$fname
命令 递归 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称
scp -r jdk1.8.0_212/ qzb@zabbix2:/opt/module/
在zabbix2中查看,拷贝成功。
scp -r qzb@zabbix1:/opt/module/hadoop-3.1.3 ./
scp -r qzb@zabbix1:/opt/module/* qzb@zabbix3:/opt/module/
rsync:用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync和scp的区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。
基本语法:
rsync -av $pdir/$fname $user@$host:$pdir/$fname
命令 选项参数 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称
rm -rf wcinput/ wcoutput/
rsync -av hadoop-3.1.3/ qzb@zabbix2:/opt/module/hadoop-3.1.3/
发生报错:
在root用户下进行此操作:
chown -R qzb /opt //给qzb用户赋权
chmod 777 /opt //我的报错目录是:/opt/module/hadoop-3.1.3/
注意:在zabbix1、zabbix2和zabbix3上都要进行赋权。
rsync -av hadoop-3.1.3/ qzb@zabbix2:/opt/module/hadoop-3.1.3/
//重新同步,成功
echo $PATH
#!/bin/bash
#1.判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2.遍历集群所有机器
for host in zabbix1 zabbix2 zabbix3
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
ln -s aaa bbb
chmod 777 xsync
xsync bin/
查看zabbix2和zabbix3。有,即成功。
xsync /etc/profile.d/my_env.sh //继续分发
记住要:source /etc/profile
zabbix2和zabbix3上面都要进行此操作
cd .ssh
ssh-keygen -t rsa
ssh-copy-id zabbix2 //把zabbix1上的公钥拷贝到zabbix2上
ssh-copy-id zabbix3 //把zabbix1上的公钥拷贝到zabbix3上
ssh-copy-id zabbix1 //访问自己
在zabbix2上继续上述配置 免密访问zabbix1、zabbix3和zabbix2
在zabbix3上继续上述配置 免密访问zabbix1、zabbix2和zabbix3
root用户也要配置