一、框架简介与平台准备
1.1、框架
1.2、硬件
CPU:四核、内存:4G、磁盘:50G
hadoop102、hadoop103、hadoop104
1.3、操作系统
操作系统:Centos7(最小系统)
1.4、基础环境
1.4.1、网络配置
hadoop102:IP(192.168.10.102)、hostname(hadoop102)
hadoop103:IP(192.168.10.103)、hostname(hadoop103)
hadoop104:IP(192.168.10.104)、hostname(hadoop104)
hosts:添加
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
1.4.2、基础工具
额外软件包
[root@hadoop100 ~]# yum install -y epel-release
网络工具
[root@hadoop100 ~]# yum install -y net-tools
文本编辑器
[root@hadoop100 ~]# yum install -y vim
1.4.3、系统配置
-
防火墙关闭
关闭防火墙 [root@hadoop100 ~]# systemctl stop firewalld 关闭防火墙开机自启 [root@hadoop100 ~]# systemctl disable firewalld.service
-
创建atguigu用户并设置权限
①创建atguigu用户
添加用户 [root@hadoop100 ~]# useradd atguigu 设置用户登录密码 [root@hadoop100 ~]# passwd atguigu
②设置用户root权限
[root@hadoop100 ~]# vim /etc/sudoers
修改/etc/sudoers文件,在%wheel这行下面添加一行,如下所示:
## 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
-
创建software、module目录
①在/opt目录下创建module、software文件夹
[root@hadoop100 ~]# mkdir /opt/module [root@hadoop100 ~]# mkdir /opt/software
②修改module、software文件夹的所有者和所属组均为atguigu用户
[root@hadoop100 ~]# chown atguigu:atguigu /opt/module [root@hadoop100 ~]# chown atguigu:atguigu /opt/software
-
集群分发脚本
①在/home/atguigu/bin目录下新建分发脚本文件:my_xsync,并编写代码
#!/bin/bash #1. 判断参数个数 if [ $# -lt 1 ] thenecho Not Enough Arguement!exit; fi #2. 遍历集群所有机器 for host in hadoop102 hadoop103 hadoop104 doecho ==================== $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:$pdirelseecho $file does not exists!fidone done
②修改my_xsync文件的权限
[atguigu@hadoop102 bin]$ chmod 777 my_xsync
③分发my_xsync至整个集群
[atguigu@hadoop102 bin]$ my_xsync my_xsync
④root用户使用my_xsync(所有主机)
sudo cp ~/bin/my_xsync /bin/
-
集群进程查看脚本
①在/home/atguigu/bin目录下创建脚本my_jpsall,并编辑代码
#! /bin/bashfor i in hadoop102 hadoop103 hadoop104 doecho --------- $i ----------ssh $i "jps $* | grep -v Jps " done
②修改脚本的权限
[atguigu@hadoop102 bin]$ chmod 777 my_jpsall
-
SSH无密登录
①atguigu用户SSH无密登录
<1>分别在hadoop102、hadoop103、hadoop104三台主机上生成公钥和私钥
[atguigu@hadoop102 .ssh]$ ssh-keygen -t rsa [atguigu@hadoop103 .ssh]$ ssh-keygen -t rsa [atguigu@hadoop104 .ssh]$ ssh-keygen -t rsa
<2>将每台主机公钥拷贝至所有机器
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop102 [atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop103 [atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop104 [atguigu@hadoop103 .ssh]$ ssh-copy-id hadoop102 [atguigu@hadoop103 .ssh]$ ssh-copy-id hadoop103 [atguigu@hadoop103 .ssh]$ ssh-copy-id hadoop104 [atguigu@hadoop104 .ssh]$ ssh-copy-id hadoop102 [atguigu@hadoop104 .ssh]$ ssh-copy-id hadoop103 [atguigu@hadoop104 .ssh]$ ssh-copy-id hadoop104
②root用户SSH无密登录
切换至root重复以上步骤
1.4.4、Java安装
-
卸载系统自带的JDK(所有主机)
若centos是最小安装则不需要卸载 [root@hadoop100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
-
JDK安装
①将JDK安装包导入hadoop102的/opt/software文件夹下
②将JDK安装包解压至/opt/module文件夹下
[atguigu@hadoop102 software]# tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
③配置JDK的环境变量
<1>新建/etc/profile.d/my_env.sh文件
[atguigu@hadoop102 module]# 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
⑤分发JDK以及环境变量
[atguigu@hadoop102 module]$ my_xsync /opt/module/jdk1.8.0_212 [atguigu@hadoop102 module]$ sudo my_xsync /etc/profile.d/my_env.sh
⑥环境变量立即生效(所有主机)
[atguigu@hadoop102 software]$ source /etc/profile.d/my_env.sh
⑦JDK测试
[atguigu@hadoop102 module]# java -version