二、Hadoop 运行环境搭建

Hadoop 运行环境搭建

文章目录

1. 模板虚拟机环境准备

1.1 安装CentOS-7.5-x86-1804

安装模板虚拟机,IP 地址 192.168.218.70、主机名称 wxler0、内存 1G、硬盘 50G

(1)选择CentOS7-64镜像位置

(2)开启虚拟机,选择如下,按Enter

(3)选择中文简体

(4)设置时间和日期,选择亚洲->上海

(5)软件选择,设置为最小安装

(6)设置安装位置

(7)选择我要配置分区,点击完成

(8)点击+号,为Boot分配1g空间

(9)文件系统设置为ext4

(10)再设置swap分区为4g

(11)最后设置根目录

(12)点击完成

(13)禁用KDUMP

(14)配置网络和主机名,后面可以修改

(15)设置root密码,完成之后重启

(16)点击vmvare->虚拟网络编辑器,查看子网IP

(17)设置VMnet8的ip如下,主机要和上面子网的网络号保持一致

(18)在虚拟机中登录,输入vi /etc/sysconfig/network-scripts/ifcfg-ens33,将BOOTPROTO改为static,再加IPADDR、GATEWAT、DNS1这三行内容。

(19)输入vi /etc/hostname修改主机名
(20)输入vi /etc/hosts添加ip映射

(21)输入init 6重启电脑,如果提示没有ifconfig命令,可以参考centos7没有ifconfig命令解决办法

依次输入ping wxler0ping www.baidu.com看看能否ping通

到这里就大功告成了。

1.2 虚拟机配置要求

本文 Linux 系统全部以 CentOS-7.5-x86-1804 为例
(1)使用 yum 安装需要虚拟机可以正常上网, yum 安装前可以先测试下虚拟机联网情况
(2)安装 epel-release
Extra Packages for Enterprise Linux 是为“红帽系”的操作系统提供额外的软件包,适用于 RHEL、CentOS 和 Scientific Linux。相当于是一个软件仓库,大多数 rpm 包在官方repository 中是找不到的)

1
[root@wxler0 ~]# yum install -y epel-release

(3) 注意: 如果 Linux 安装的是最小系统版,还需要安装如下工具;如果安装的是 Linux桌面标准版,不需要执行如下操作

  • net-tool:工具包集合,包含 ifconfig 等命令:yum install -y net-tools
  • vim:编辑器:yum install -y vim

(4)关闭防火墙,关闭防火墙开机自启

1
2
systemctl stop firewalld
systemctl disable firewalld.service

注意:在企业开发时,通常单个服务器的防火墙时关闭的。公司整体对外会设置非常安全的防火墙

(5)创建 wxler 用户,并修改 wxler 用户的密码

1
2
useradd wxler
passwd wxler

(6)配置 wxler 用户具有 root 权限,方便后期加 sudo 执行 root 权限的命令

1
vim /etc/sudoers

修改/etc/sudoers 文件,在%wheel 这行下面添加一行,如下所示:

1
2
3
4
5
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
wxler ALL=(ALL) NOPASSWD:ALL

注意:wxler 这一行不要直接放到 root 行下面,因为所有用户都属于 wheel 组,你先配置了 wxler 具有免密功能,但是程序执行到%wheel 行时,该功能又被覆盖回需要密码。所以 wxler 要放到%wheel 这行下面。

(7)在/opt 目录下创建文件夹,并修改所属主和所属组

①在/opt 目录下创建 module、software 文件夹

1
2
mkdir /opt/module
mkdir /opt/software

②修改 module、software 文件夹的所有者和所属组均为 atguigu 用户

1
2
chown wxler:wxler /opt/module
chown wxler:wxler /opt/software

③查看 module、software 文件夹的所有者和所属组

1
2
3
4
5
[root@wxler0 ~]# cd /opt
[root@wxler0 opt]# ll
总用量 8
drwxr-xr-x. 2 wxler wxler 4096 3月 30 17:19 module
drwxr-xr-x. 2 wxler wxler 4096 3月 30 17:19 software

(8)卸载虚拟机自带的 JDK
注意:如果你的虚拟机是最小化安装不需要执行这一步。

1
rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
  • rpm -qa:查询所安装的所有 rpm 软件包
  • grep -i:忽略大小写
  • xargs -n1:表示每次只传递一个参数
  • rpm -e –nodeps:强制卸载软件

(9)重启虚拟机:init 6

2. 克隆虚拟机

1)利用模板机 wxler0,克隆三台虚拟机:wxler1 wxler2 wxler3
注意:克隆时,要先关闭 wxler1

2)修改克隆机 IP,以下以 wxler1 举例说明

修改克隆虚拟机的静态 IP

1
vim /etc/sysconfig/network-scripts/ifcfg-ens33

改为(其实只要把改一下即可,别的不用改)

1
2
3
4
5
6
7
8
9
DEVICE=ens33
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
NAME="ens33"
IPADDR=192.168.218.71
PREFIX=24
GATEWAY=192.168.218.2
DNS1=192.168.218.2

3)修改克隆机主机名,以下以 wxler1 举例说明

①修改主机名称

1
vim /etc/hostname

②配置 Linux 克隆机主机名称映射 hosts 文件,打开/etc/hosts

1
vim /etc/hosts

添加如下内容:

1
2
3
4
5
6
7
8
9
10
192.168.218.70 wxler0
192.168.218.71 wxler1
192.168.218.72 wxler2
192.168.218.73 wxler3
192.168.218.74 wxler4
192.168.218.75 wxler5
192.168.218.76 wxler6
192.168.218.77 wxler7
192.168.218.78 wxler8
192.168.218.79 wxler9

4)重启克隆机 hadoop102

1
init 6

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

进入 C:\Windows\System32\drivers\etc 路径,打开 hosts 文件并添加如下内容,然后保存

1
2
3
4
5
6
7
8
9
10
192.168.218.70 wxler0
192.168.218.71 wxler1
192.168.218.72 wxler2
192.168.218.73 wxler3
192.168.218.74 wxler4
192.168.218.75 wxler5
192.168.218.76 wxler6
192.168.218.77 wxler7
192.168.218.78 wxler8
192.168.218.79 wxler9

如果操作系统是 window7,可以直接修改。如果操作系统是 window10,先拷贝出来,修改保存以后,再覆盖即可。

3. 在Linux上安装JDK

用xshell连接3台linux,并用wxler用户登录

1)卸载现有 JDK
注意:安装 JDK 前,一定确保提前删除了虚拟机自带的 JDK。

2)用 XShell 传输工具将 JDK 导入到 opt 目录下面的 software 文件夹下面

3)在 Linux 系统下的 opt 目录中查看软件包是否导入成功

1
ls /opt/software/

看到如下结果:

1
jdk-8u212-linux-x64.tar.gz

4)解压 JDK 到/opt/module 目录下

1
2
cd /opt/software/
tar -zxvf jdk-8u212-linux64.tar.gz -C /opt/module/

5)配置 JDK 环境变量
/etc/profile里面包含如下一部分代码

1
2
3
4
5
6
7
8
9
for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
if [ -r "$i" ]; then
if [ "${-#*i}" != "$-" ]; then
. "$i"
else
. "$i" >/dev/null
fi
fi
done

该代码意思就是让/etc/profile.d/下面所有以.sh结尾的文件生效,所以这里我们新建一个my_env.sh文件,里面存放我们的环境变量,这也是企业中的用法。

①新建/etc/profile.d/my_env.sh 文件

1
sudo vim /etc/profile.d/my_env.sh

添加如下内容

1
2
3
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin

②source 一下/etc/profile 文件,让新的环境变量 PATH 生效source /etc/profile

6)测试 JDK 是否安装成功java -version
如果能看到以下结果,则代表 Java 安装成功。

1
java version "1.8.0_212"

4. 在Linux上安装 Hadoop

Hadoop 下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/
下面所有操作都在wxler1虚拟机上操作

1)用 XShell 文件传输工具将 hadoop-3.1.3.tar.gz 导入到 opt 目录下面的 software 文件夹下面
2)进入到 Hadoop 安装包路径下

1
cd /opt/software/

3)解压安装文件到/opt/module 下面

1
tar  -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

4)查看是否解压成功

1
2
[wxler@wxler1 software]$ ls /opt/module
hadoop-3.1.3 jdk1.8.0_212

5)将 Hadoop 添加到环境变量

①获取 Hadoop 安装路径

1
2
[wxler@wxler1 hadoop-3.1.3]$ pwd
/opt/module/hadoop-3.1.3

②打开/etc/profile.d/my_env.sh 文件

1
sudo  vim /etc/profile.d/my_env.sh

在 my_env.sh 文件末尾添加如下内容:(shift+g)

1
2
3
4
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

让修改后的文件生效

1
source /etc/profile

6)测试是否安装成功

1
2
[wxler@wxler1 hadoop-3.1.3]$ hadoop version
Hadoop 3.1.3

7)重启(如果 Hadoop 命令不能用再重启虚拟机):init 6

5. Hadoop 目录结构

1)查看 Hadoop 目录结构

1
2
3
4
5
6
7
8
9
10
11
12
[wxler@wxler1 hadoop-3.1.3]$ ll
总用量 200
drwxr-xr-x. 2 wxler wxler 4096 9月 12 2019 bin
drwxr-xr-x. 3 wxler wxler 4096 9月 12 2019 etc
drwxr-xr-x. 2 wxler wxler 4096 9月 12 2019 include
drwxr-xr-x. 3 wxler wxler 4096 9月 12 2019 lib
drwxr-xr-x. 4 wxler wxler 4096 9月 12 2019 libexec
-rw-rw-r--. 1 wxler wxler 147145 9月 4 2019 LICENSE.txt
-rw-rw-r--. 1 wxler wxler 21867 9月 4 2019 NOTICE.txt
-rw-rw-r--. 1 wxler wxler 1366 9月 4 2019 README.txt
drwxr-xr-x. 3 wxler wxler 4096 9月 12 2019 sbin
drwxr-xr-x. 4 wxler wxler 4096 9月 12 2019 share

2)重要目录
(1)bin 目录:存放对 Hadoop 相关服务(hdfs,yarn,mapred)进行操作的脚本
(2)etc 目录:Hadoop 的配置文件目录,存放 Hadoop 的配置文件
(3)lib 目录:存放 Hadoop 的本地库(对数据进行压缩解压缩功能)
(4)sbin 目录:存放启动或停止 Hadoop 相关服务的脚本
(5)share 目录:存放 Hadoop 的依赖 jar 包、文档、和官方案例