hadoop3.1.3集搭建(基于Flink电商项⽬实战)
介绍
本⽂这⾥的hadoop3.1.3的集仅仅指hadoop本⾝的搭建,不涉及到其他框架整合;Flink实时电商实战项⽬中HDFS部分是基于此版本,B站上有这个版本的安装视频:
提取码:whqf
搭配环境
VMware16(注意不要使⽤15,容易蓝屏,如果出现蓝屏,⼤概率是系统兼容性问题,建议改⽤16,激活码搜索即可,很⽅便)
安装硬件,安装虚拟机;
账户:root 密码:root
⽤户名:chenxu 密码:root
配置IP时要注意:VMware、win10、Hadoop都要配置;
Hadoop静态IP地址更改
进⼊终端命令⾏:su root (输⼊密码)
输⼊命令:vim etc/sysconfig/network-scripts/ifcfg-ens33
dhcp表⽰动态获取IP地址,改为static;
增加内容:
#IP地址
IPADDR=192.168.10.100 #100表⽰hadoop100
#⽹关
GATEWAY=192.168.10.2
#域名解析器
DNS1=192.168.10.2
输⼊完之后按⼀下ESC进⼊EX模式,输⼊wq保存并退出;
配置主机名称:vim /etc/hostname
配置Linux克隆机主机名称映射hosts⽂件,打开/etc/hosts;(这么做的⽬的是为了让)以后修改IP时⽅便修改;
加⼊以下内容:
IP地址及hostname:
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
重启克隆机
切换root⽤户,ifconfig指令查看IP是否配置好;
模板虚拟机准备
远程控制Xshell安装完毕后,连接远程服务器;
账号密码:root;
配置主机名称映射,进⼊"C:\Windows\System32\drivers\etc"路径下的hosts⽂件中,加⼊之前加⼊的IP和主机名称内容;可以先修改hosts⽂件的属性,改为可更改后再修改;(也可以直接复制出来修改,修改完之后再粘贴回去)
下载Xftp(从windows传输⽂件到虚拟机种);
安装epel-release;
yum install -y epel-release
关闭防⽕墙⾃启动:
systemctl stop firewalld
systemctl disable firewalld.service
创建⼀个系统⽤户,并修改⽤户密码:(安装时已创建,不需要再创建)
useradd ⽤户名
passwd 密码
给⽤户赋予root权限:
输⼊命令vim /etc/sudoers
到%wheel ALL=(ALL) ALL这⼀⾏,在下⼀⾏加上
⽤户名 All=(ALL) NOPASSWD:ALL
其中,nopass表⽰以后不需要密码,可获得root权限,也可以不加NOPASS;
后续使⽤⽤户时,加上sudo,有root效果;
切换root账号:
卸载对应安装的JDK
rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
其中rpm -qa | grep -i java命令是⼀个遍历查询指令;
重启虚拟机;
克隆虚拟机:
先克隆3台:hadoop100、hadoop102、hadoop103、hadoop104;
先关闭现⾏的虚拟机,再克隆;
在VMware列表中删除,并不会直接删除源⽂件,要选择在磁盘中删除;
进⼊新⽣成的克隆虚拟机,进⼊root权限后,只需要再次输⼊命令
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改IPADDR,之后输⼊命令vim /etc/hostname 修改hostname;
输⼊命令 vim /etc/hosts(之前已经修改完毕,可以不⽤动);
Hadoop102部署JDK
部署完之后,拷贝⾄其他;
tar -zxvf -C /opt/module/
解压⽂件⾄…⽬录;
配置JDK环境变量;
cd /etc/profile.d进⼊特定⽂件夹中,创建⼀个⽂件sudo vim my_env.sh,不要更改原⽂件;
进⼊存放JDK的module⽬录下,运⽤pwd命令到JDK的路径;
在my_env.sh⽂件中写上:
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=JAVA_HOME/bin
接下来
source /etc/profile
部署hadoop
解压安装
tar -zxvf hadoop-3.1. -C /opt/module/
配置环境变量
到hadoop的⽬录,pwd获得路径;
cd /etc/profile.d/my_env.sh 进⼊之前创建好的⽂件,
添加内容:
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=HADOOP_HOME/bin
export PATH=HADOOP_HOME/sbin
然后输⼊source /etc/profile
注意etc、bin、sbin⽬录,以后要⽤到;
完全分布式运⾏模式;
1、准备3台客户机
2、安装JDK/etc
linux安装jdk rpm安装
4、安装hadoop
5、配置环境变量
6、配置集
7、单点启动
8、配置ssh
PATH :PATH :PATH :
9、起并测试集
hadoop102已经准备好了,现在的⽬标就是将hadoop102拷贝⾄其他服务器;
命令 scp(完全拷贝)
1、具体命令⾏为:scp -r $⽂件路径/名称 ⽬的地⽤户@主机:⽬的地路径/名称;
scp -r hadoop-3.1.3 chenxu@hadoop103:/opt/module(从102复制到-103)
注意:如果其他服务器没有对应⽂件权限,赋予其module777权限;
2、也可以去要粘贴的地址,将⽂件拉过来:
scp -r chenxu@hadoop102:/opt/module/hadoop-3.1.3 ./(从103把102的信息拉过去)
即在之前的命令⾏后 加⼀个要粘贴的地址;⽂件名也改到第⼀个地址后;
3、scp -r chenxu:hadoop102:/opt/module/* chenxu@hadoop104:/opt/module/(从103把102的信息复制到104)
案例实操:
1、前提:hadoop10
2、hadoop10
3、hadoop104都已经创建好的/opt/module,/opt/software两个⽬录,并且已经把这个⽬录修改为chenxu:chenu;
rsync(同步命令)
⽤于备份和镜像;(只复制不⽤的⽂件)
rsync -av 内容 ⽬的地⽤户@主机:路径或者⽂件名称
实操:删掉hadoop-3.1.3⽬录下的wcinput和wcoutput⽂件,再从hadoop102同步过去:
xsync(集分发)
⽤法:xsync + 要同步的⽂件名;
期望脚本在任何路径下都能使⽤(脚本要放在声明了全局环境变量的路径中):
echo $PATH查看全局变量位置:为了简单,这⾥直接⽤已经存在的路径;在/usr/local/bin⽬录下创建bin⽬录,存放脚本(vim xsync);(脚本执⾏地址 /usr/local/bin)
脚本实现:
#!/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
chmod 777 xsync 赋予权限;
运⾏,发现其他⼏台服务器创建成功;
分发环境变量;
sudo xsync /etc/profile.d/my_env.sh
注意:如果是⽤sudo(即root权限)来执⾏,可能会不到命令,此时可以⽤绝对路径:sudo ./bin/xsync /etc/profile.d/my_env.sh 这种格式;
然后在103和104服务器上source⼀次;
ssh
ssh +主机 进⼊对应主机,exit退出;
免密配置⽅法:
进⼊/home/chenxu⽤户⽬录----ls -al查看虽有隐藏⽂件----发现有ssh⽂件,⾥⾯有⼀个known-hosts(注意,只有⽤过,即ssh访问过的⽂件才有)—输⼊命令⾏ssh-keygen -t rsa,然后三次回车;
注意:
[root@localhost ~]``# cd /root/.ssh/      【root⽤户就在root⽬录下的.ssh⽬录】
[root@localhost ~]``# cd /home/omd/.ssh/  【普通⽤户就是在家⽬录下的.ssh⽬录】
3个集都配置⼀次:
ssh-copy-id hadoop102,ssh-copy-id hadoop103,ssh-copy-id hadoop104,配置完成;
然后对hadoop103、hadoop104做同样操作;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。