0
点赞
收藏
分享

微信扫一扫

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步

德州spark 2022-11-21 阅读 137


整个大数据的技术生态体系

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_hadoop


hadoop就是java写的,所以必须要安装jdk

真实的工作是准备服务器,而不是虚拟机。

最小化的虚拟机,需要最少2G的内存

模板机,比较干净。

最小化的比图形化的省资源。

启动虚拟机,登录root用户 123321登陆进去。使用ifconfig查看自己的ip,使用xshell根据获取的ip去安装插件

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_vim_02


获取到192.168.202.130这个ip地址,使用这个ip去用xshell软件远程登陆,那里很方便去配置敲命令。

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_vim_03


安装必要的插件使用yum去联网下载

sudo yum install -y epel-releasesudo yum install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree iotop git

模板机是不需要修改ip和主机名的。但是改一下/etc/hosts下的文件内容。以后克隆的时候就已经有了很方便。

192.168.1.100 hadoop100

192.168.1.101 hadoop101

192.168.1.102 hadoop102

192.168.1.103 hadoop103

192.168.1.104 hadoop104

192.168.1.105 hadoop105

192.168.1.106 hadoop106

192.168.1.107 hadoop107

192.168.1.108 hadoop108

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_环境变量_04


修改windows的映射

修改window10的主机映射文件(hosts文件)

(a)进入C:\Windows\System32\drivers\etc路径

(b)拷贝hosts文件到桌面

(c)打开桌面hosts文件并添加如下内容

192.168.1.100 hadoop100

192.168.1.101 hadoop101

192.168.1.102 hadoop102

192.168.1.103 hadoop103

192.168.1.104 hadoop104

192.168.1.105 hadoop105

192.168.1.106 hadoop106

192.168.1.107 hadoop107

192.168.1.108 hadoop108在模板机去关闭防火墙和自动启动服务

sudo systemctl stop firewalld

sudo systemctl disable firewalld

创建一个atguigu用户,密码1234565,之后再为这个用户去改它的root权限。

vim /etc/sudoers

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_vim_05


之后强制退出,因为这个是一个只读文件,:wq!

使用root用户创建两个目录

/opt/software和/opt/module

software:安装程序(压缩包)

module:安装以后的程序

这两个目录还是 root的,我么需要把这两个的所属组和所属主都修改成atguigu.将来作为atguigu用来操作这两个目录就很方便了,具有读写的功能。

sudo chown atguigu:atguigu /opt/module /opt/software

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_环境变量_06


对刚才建立的模板机关机,然后在克隆一个hadoop101

开机,登录对hadoop101进行部分修改

主机名,ip

vim /etc/hostname

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_环境变量_07


hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_hadoop_08


之后对hadoop101重启reboot

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_环境变量_09


hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_hadoop_10


hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_环境变量_11


hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_vim_12


hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_vim_13


使用atguigu用xshell登录hadoop101

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_vim_14


整个hadoop阶段全部使用atguigu用户,平时下意识看一下登录用户是不是atguigu.

使用xftp同样连接hadoop101,大文件尽量使用ftp去传。小文件可以拖拽。

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_hadoop_15


hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_vim_16


安装jdk

将jdk解压到/opt/module

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_环境变量_17


hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_hadoop_18


安装好jdk之后,再去配置jdk的环境变量

linux中所有的环境变量的配置文件在/etc/profile下

但是所属组和主都是root,所以,只能加上sudo 去操作

sudo vim /etc/profile

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_hadoop_19


但是最好在/etc/profile.d下面建立自己的.sh文件

因为/etc/profile里面会自动去读取我们的/etc/profile.d下面的.sh文件。/etc/profile文件一般不建议去修改

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_vim_20


hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_vim_21

创建一个自己定义的my_env.sh去配置环境变量(使用sudo)

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_环境变量_22


注意:把原来的path引用过来,千万别把人家的删了

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_vim_23


hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_环境变量_24


hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_vim_25


hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_环境变量_26


hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_vim_27


hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_环境变量_28


使用source去重新加载/etc/profile

因为/etc/profile这个文件会去循环调用/etc/profile.d

里面的所有.sh脚本

echo $JAVA_HOME

echo $PATH

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_hadoop_29


如果显示不出来我们配置的环境变量,想着重新开一个xshell链接和重启一下虚拟机,如果还不行,那就是配置错了。

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_vim_30


hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_vim_31


安装hadoop3.1.3

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_环境变量_32


hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_vim_33


hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_vim_34


hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_vim_35


hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_hadoop_36


配置hadoop的环境变量

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_环境变量_37


hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_vim_38


同样还是去source一下

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_hadoop_39


hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_环境变量_40

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_vim_41


hadoop的三种运行模式

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_hadoop_42


完全分布式模式(开发重点)

准备三台客户机

写集群分发脚本,因为以后的集群里面有很多节点,实现同步,我们在机器1里面修改了之后,通过分发脚本到其他机器,实现同步,这样就不需要人工重新再去修改其他机器的。

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_环境变量_43


写这个分发脚本,首先涉及到的小技术

scp和rsync

先说一下scp安全拷贝

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_vim_44


rsync更加智能一些。

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_hadoop_45


分发脚本的书写:

hadoop学习从建立模板客户机到编写分发脚本实现集群里所有机器的同步_hadoop_46

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


举报

相关推荐

0 条评论