三、编写集群分发脚本,完成其他服务器的jdk、hadoop安装与配置
序:相关软件
- VMware:VMware-15.5.1
- Linux:CentOS-7.5-x86_64-DVD-1804.iso
- JDK:jdk-8u212-linux-x64.tar.gz
- Hadoop:hadoop-3.1.3.tar.gz
- xshell
- xftp
一、前期准备
- 准备三台服务器
- 服务器静态ip创建
- 服务器关闭防火墙
- 服务器创建新用户user,给user root权限
- 在/opt/目录下创建两个目录:module,software,并将module、software目录转给user
- 配置好xshell远程访问
二、jdk,hadoop安装、配置
操作思想:以hadoop102为主操作服务器,完成软件安装及配置再分发到集群其他服务器
2.1、jdk、hadoop安装
文件从本地传输到服务器:使用软件xshell,xftp。软件存放位置:/opt/software/。完成后在服务器上查看。
[atguigu@hadoop102 software]$ pwd
/opt/software
[atguigu@hadoop102 software]$ ll
总用量 520608
-rw-rw-r--. 1 user user 338075860 5月 15 21:45 hadoop-3.1.3.tar.gz
-rw-rw-r--. 1 user user 195013152 5月 15 21:45 jdk-8u212-linux-x64.tar.gz
jdk、hadoop软件解压(解压后就可使用,无需安装),解压位置:/opt/module/。完成后服务器查看。
tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
[user@hadoop102 module]$ pwd
/opt/module
[user@hadoop102 module]$ ll
总用量 8
drwxr-xr-x. 11 user user 4096 5月 15 23:52 hadoop-3.1.3
drwxr-xr-x. 7 user user 4096 4月 2 2019 jdk1.8.0_212
2.2、配置jdk、hadoop环境变量
在/etc/profile.d/目录下,创建环境变量配置文件,文件名为:my_env.sh,文件内容如下:
#JAVA_HOME
JAVA_HOME=/opt/module/jdk1.8.0_212
#HADOOP_HOME
HADOOP_HOME=/opt/module/hadoop-3.1.3
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export PATH JAVA_HOME HADOOP_HOME
配置/opt/module/hadoop 3.1.3/etc/hadoop/hadoop-env.sh
# The java implementation to use. By default, this environment
# variable is REQUIRED on ALL platforms except OS X!
# export JAVA_HOME=
# 增加以下内容
export JAVA_HOME=/opt/module/jdk1.8.0_212
三、编写集群分发脚本,完成其他服务器的jdk、hadoop安装与配置
shell脚本编写,脚本存放位置为:/home/user/bin/。此路径在系统path中,故可以在任意位置执行脚本。脚本名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
jdk、hadoop及属性文件集群同步
xsync /opt/module/*
xsync /etc/profile.d/my_env.sh
在集群其他服务器上重新加载下系统配置,将jdk、hadoop环境变量加载,并测试是否成功。
source /etc/profile
[user@hadoop103 module]$ java -version
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mod
[user@hadoop102 module]$ hadoop version
Hadoop 3.1.3
Source code repository https://gitbox.apache.org/repos/asf/hadoop.git -r ba631c436b806728f8ec2f54ab1e289526c90579
Compiled by ztang on 2019-09-12T02:47Z
Compiled with protoc 2.5.0
From source with checksum ec785077c385118ac91aadde5ec9799
This command was run using /opt/module/hadoop-3.1.3/share/hadoop/common/hadoop-common-3.1.3.jar
至此,hadoop103、hadoop104的jdk、hadoop安装与环境变量配置完成。
四、集群配置规划
由于只有三台服务器,在完全分布式运行环境中,namenode,resoucemanager,secondarynamenode的资源占比较大,故在配置时,将三者分别布置在不同的服务器上。datanode和nodemanager在三个服务器上都进行配置