目录
Summary
环境准备
Summary
本教程使用VMware配置三台虚拟机进行演示。采用SSH方式连接虚拟机进行操作。
虚拟机系统:CentOS-7-x86_64-DVD-1804
SSH工具:FinalShell 3.9.4
JDK:jdk-8u212-linux-x64
Hadoop版本:hadoop-3.1.3
环境准备
在VMware内创建三台CentOS7系统的虚拟机,分别命名为Hadoop102、Hadoop103、Hadoop104。
创建好后在Hadoop102内启动命令行,修改虚拟机的IP地址:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改成
DEVICE="ens33" TYPE="Ethernet" ONBOOT="yes" BOOTPROTO="static" NAME="ens33" IPADDR="192.168.10.102" PREFIX=24 GATEWAY="192.168.10.2" DNS1="192.168.10.2"
三台服务器名称分别为hadoop102、hadoop103、hadoop104,
三台的ip分别为192.168.10.102、192.168.10.103、192.168.10.104,
三台的网关ip分别为192.168.10.2、192.168.10.3、192.168.10.4。
安装FinalShell,ssh连接到三台服务器,将JDK导入到opt目录下面的software文件夹下面。在Linux系统下的opt目录中查看软件包是否导入成功
ls /opt/software/
看到如下结果说明导入成功
jdk-8u212-linux-x64.tar.gz
创建module目录
mkdir opt/module
解压JDK到/opt/module目录下(进入JDK所在文件夹执行)
[root@hadoop102 software]# tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
接着配置JDK环境变量
新建/etc/profile.d/my_env.sh文件
[root@hadoop102 software]# sudo vim /etc/profile.d/my_env.sh
添加如下内容
#JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_212 export PATH=$PATH:$JAVA_HOME/bin
source一下/etc/profile文件,让新的环境变量PATH生效
[root@hadoop102 software]# source /etc/profile
测试一下JDK是否安装成功
[root@hadoop102 software]# java -version
如果能看到以下结果,则代表Java安装成功
openjdk version "1.8.0_161" OpenJDK Runtime Environment (build 1.8.0_161-b14) OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
接下来安装Hadoop
用Finalshell将Hadoop安装包导入到opt目录下面的software文件夹里
进入到Hadoop安装包路径下,解压安装文件到/opt/module下面
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
打开/etc/profile.d/my_env.sh文件
sudo vim /etc/profile.d/my_env.sh
在my_env.sh文件末尾添加如下内容
#HADOOP_HOME export HADOOP_HOME=/opt/module/hadoop-3.1.3 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin
让修改后的文件生效
source /etc/profile
测试是否安装成功
hadoop version
看到如下内容表示成功
Hadoop 3.1.3
查看Hadoop的目录结构
[root@hadoop102 hadoop-3.1.3]# ll
可以看到如下内容
drwxr-xr-x. 2 lovxn lovxn 183 9月 11 2019 bin drwxr-xr-x. 3 lovxn lovxn 20 9月 11 2019 etc drwxr-xr-x. 2 lovxn lovxn 106 9月 11 2019 include drwxr-xr-x. 3 lovxn lovxn 20 9月 11 2019 lib drwxr-xr-x. 4 lovxn lovxn 288 9月 11 2019 libexec -rw-rw-r--. 1 lovxn lovxn 147145 9月 4 2019 LICENSE.txt -rw-rw-r--. 1 lovxn lovxn 21867 9月 4 2019 NOTICE.txt -rw-rw-r--. 1 lovxn lovxn 1366 9月 4 2019 README.txt drwxr-xr-x. 3 lovxn lovxn 4096 9月 11 2019 sbin drwxr-xr-x. 4 lovxn lovxn 31 9月 11 2019 share
(1)bin目录:存放对Hadoop相关服务(hdfs,yarn,mapred)进行操作的脚本
(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
(3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
(4)sbin目录:存放启动或停止Hadoop相关服务的脚本
(5)share目录:存放Hadoop的依赖jar包、文档、和官方案例
直接使用root权限操作风险较大,因此创建用户lovxn用作日常维护
将lovxn加入sudoers文件,使其在必要时可以借用root权限
[root@hadoop102 lovxn]# visudo
在打开的文件中写入
lovxn ALL=(ALL) ALL
回到lovxn用户
su lovxn
配置主机映射,让三台虚拟机互相认识
这里只演示一台虚拟机,实际上三台都要配置
sudo vi /etc/hosts
写入
192.168.8.102 hadoop102 192.168.8.103 hadoop103 192.168.8.104 hadoop104
配置三台虚拟机互相免密登录,先ssh一下自己创建~/.ssh文件夹
ssh localhost
生成密钥
ssh-keygen -t rsa
然后敲三个回车,就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免密登录的目标机器上
[lovxn@hadoop102 ~]$ ssh-copy-id hadoop102 [lovxn@hadoop102 ~]$ ssh-copy-id hadoop103 [lovxn@hadoop102 ~]$ ssh-copy-id hadoop104
指令执行时候会问
Are you sure you want to continue connecting (yes/no)?
yes就可以了
接着编写集群分发脚本xsync
scp可以实现服务器与服务器之间的数据拷贝,基本语法:
scp -r $pdir/$fname $user@$host:$pdir/$fname
命令 递归 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称
在hadoop102、hadoop103、hadoop104都创建好的/opt/module、/opt/software两个目录



