hadoop平台安装

发布时间 2023-04-30 17:10:16作者: LGAEY

Hadoop平台安装

1.实验一:Linux 操作系统环境设置

1.1. 实验目的

完成本实验,您应该能够:
掌握 linux 操作系统环境设置
掌握 hadoop 安装的环境要求

1.2. 实验要求

熟悉常用 Linux 操作系统命令
熟悉 hadoop 安装的环境
了解 linux 修改系统变量命令及各参数

1.3. 实验环境

本实验所需之主要资源环境如表 1-1 所示。
表 1-1 资源环境

服务器集群 单节点,机器最低配置:双核 CPU、8GB 内存、100G 硬盘
运行环境 CentOS 7.4
服务和组件 服务和组件根据实验需求安装

1.4. 实验过程

1.4.1. 实验任务一:配置 Linux 系统基础环境

1.4.1.1. 步骤一:查看服务器的 IP 地址

​ 查看服务器的 IP 地址

[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:3a:07:e5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.88.101/24 brd 192.168.88.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe3a:7e5/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

1.4.1.2. 步骤二:设置服务器的主机名称

​ 按前面设定的主机名称进行设置,具体命令如下所示

[root@localhost ~]# hostnamectl set-hostname djh-master.example.com
[root@localhost ~]# bash

设置完后查看当前服务器的名称,结果为 master。

[root@djh-master ~]# hostname
djh-master.example.com

这时 root 用户的提示符中主机名仍然是 localhost,其实只要换一下用户或
者 root 用户注销再登录,主机名就会改为 master 了。
另外,也可以用 nmtui 命令直接修改主机的 IP 地址和主机名称,具体的方
法见 2.2 节。

[root@localhost ~]# hostnamectl set-hostname djh-master.example.com

​ 设置完后查看当前服务器的名称,结果为 master。

[root@djh-master ~]# hostname
djh-master.example.com

1.4.1.3.步骤三:绑定主机名与 IP 地址

​ 可以将主机名称与 IP 地址绑定,这样就可以通过主机名来访问主机,方便
记忆。同时在后面的配置文件中也可以用主机名来代替 IP 地址表示主机,当
IP 地址改变时,只要修改主机名与 IP 地址的绑定文件,不用在多个配置文件
中去修改。主机名与 IP 地址的绑定文件是本地名字解析文件 hosts,在/etc 目
录中,使用 vi 对该文件进行编辑。

[root@djh-master ~]# vi /etc/hosts

​ 在其中增加如下一行内容:

192.168.88.101 djh-master djh-master.example.com

1.4.1.4.步骤四:查看 SSH 服务状态

SSH 为 Secure Shell 的缩写,是专为远程登录会话和其他网络服务提供安
全性的协议。一般的用法是在本地计算机安装 SSH 客服端,在服务器端安装 SSH
服务,然后本地计算机利用 SSH 协议远程登录服务器,对服务器进行管理。这
样可以非常方便地对多台服务器进行管理。同时在 Hadoop 分布式环境下,集群
中的各个节点之间(节点可以看作是一台主机)需要使用 SSH 协议进行通信。因
此 Linux 系统必须安装并启用 SSH 服务。
CentOS 7 默认安装 SSH 服务,可以使用如下命令查看 SSH 的状态。

[root@djh-master ~]# systemctl status sshd
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2022-03-11 23:29:30 CST; 20min ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 1186 (sshd)
    Tasks: 1 (limit: 50363)
   Memory: 4.0M
   CGroup: /system.slice/sshd.service
           └─1186 /usr/sbin/sshd -D -oCiphers=aes256-gcm@openssh.com,chacha20-poly

​ 看到 active (running)就表示 SSH 已经安装并启用。

1.4.1.5.步骤五:关闭防火墙

​ Hadoop 可以使用 Web 页面进行管理,但需要关闭防火墙,否则打不开 Web 页
面。同时不关闭防火墙也会造成 Hadoop 后台运行脚本出现莫名其妙的错误。关
闭命令如下:

[root@djh-master ~]# systemctl stop firewalld

​ 关闭防火墙后要查看防火墙的状态,确认一下。

[root@djh-master ~]# systemctl status firewalld 
● firewalld.service - firewalld - dynamic firewall daemon
 Loaded: loaded (/usr/lib/systemd/system/firewalld.service; 
enabled; vendor preset: enabled)
 Active: inactive (dead) since 六 2020-05-02 17:58:15 CST; 3s 
ago

​ 看到 inactive (dead)就表示防火墙已经关闭。不过这样设置后,Linux 系
统如果重启,防火墙仍然会重新启动。执行如下命令可以永久关闭防火墙。

[root@djh-master ~]# systemctl disable firewalld

1.4.1.6.步骤六:创建 hadoop 用户

​ 在 Linux 系统中 root 用户为超级管理员,具有全部权限,使用 root 用户在
Linux 系统中进行操作,很可能因为误操作而对 Linux 系统造成损害。正常的
法是创建一个普通用户,平时使用普通用户在系统进行操作,当用户需要使用管
理员权限,可以使用两种方法达到目的:一种方法是使用 su 命令,从普通用户
切换到 root 用户,这需要知道 root 用户的密码。另一种方法是使用 sudo 命令。
用户的 sudo 可以执行的命令由 root 用户事先设置好。
​ 在本教材中使用 root 用户来安装 Hadoop 的运行环境,当 Hadoop 运行环境
都安装配置好后,使用 hadoop 用户(这只是一个用户名,也可以使用其他的用
户名)来运行 Hadoop,实际工作中也是这样操作的。因此需要创建一个 hadoop
用户来使用 Hadoop。创建命令如下:

[root@djh-master ~]# useradd djh-hadoop

​ 设置用户 hadoop 的密码为 passwd,由于密码太简单需要输入两次。

[root@djh-master ~]# passwd djh-hadoop
Changing password for user djh-hadoop.
New password: 
BAD PASSWORD: The password is a palindrome
Retype new password: 
passwd: all authentication tokens updated successfully.

1.4.2. 实验任务二:安装 JAVA 环境

1.4.2.1. 步骤一:下载 JDK 安装包

​ JDK 安 装 包 需 要 在 Oracle 官 网 下 载 , 下 载 地 址 为 :
https://www.oracle.com/java /technologies /javase-jdk8-downloads.html,
本教材采用的 Hadoop 2.7.1 所需要的 JDK 版本为 JDK7 以上,这里采用的安装包
为 jdk-8u152-linux-x64.tar.gz。

1.4.2.2. 步骤二:卸载自带 OpenJDK

​ 键入命令

[root@djh-master ~]# rpm -qa | grep java

​ 删除相关文件,键入命令

[root@djh-master ~]# rpm -e --nodeps java-1.8.0-openjdk-headless1.8.0.131-11.b12.el7.x86_64
[root@djh-master ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.131-
11.b12.el7.x86_64
[root@djh-master ~]# rpm -e --nodeps java-1.7.0-openjdk-headless1.7.0.141-2.6.10.5.el7.x86_64
[root@djh-master ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.141-
2.6.10.5.el7.x86_64

​ 查看删除结果再次键入命令 java -version 出现以下结果表示删除成功

​ 查看删除结果再次键入命令 java -version 出现以下结果表示删除成功

	[root@djh-master ~]# java -version

1.4.2.3. 步骤三:安装 JDK

​ Hadoop 2.7.1 要求 JDK 的版本为 1.7 以上,这里安装的是 JDK1.8 版(即JAVA 8)。
​ 安装命令如下,将安装包解压到/usr/local/src 目录下

[root@djh-master ~]# tar -zxvf /opt/software/jdk-8u152-linuxx64.tar.gz -C /usr/local/src

解压完成后,查看目录确认一下。可以看出 JDK 安装在/usr/local/src/jdk1.8.0_152 目录中。

[root@djh-master ~]# ll /usr/local/src
total 0
drwxr-xr-x. 7 root root 245 Oct 5 2019 jdk1.8.0_152

1.4.2.4. 步骤四:设置 JAVA 环境变量

​ 在 Linux 中设置环境变量的方法比较多,较常见的有两种:一是配置
/etc/profile 文件,配置结果对整个系统有效,系统所有用户都可以使用;二
是配置~/bashrc 文件,配置结果仅对当前用户有效。这里使用第一种方法。

[root@djh-master ~]# vi /etc/profile

​ 在文件的最后增加如下两行:

JAVA_HOME 指向 JAVA 安装目录

export JAVA_HOME=/usr/local/src/jdk1.8.0_152

export PATH=$PATH:$JAVA_HOME/bin  #将 JAVA 安装目录加入 PATH 路径

​ 执行 source 使设置生效:

[root@djh-master ~]# source /etc/profile

​ 检查 JAVA 是否可用。

[root@djh-master ~]# echo $JAVA_HOME
/usr/local/src/jdk1.8.0_152/

​ 说明 JAVA_HOME 已指向 JAVA 安装目录。

[root@djh-master ~]# java -version
java version "1.8.0_152"
Java(TM) SE Runtime Environment (build 1.8.0_152-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)

​ 能够正常显示 Java 版本则说明 JDK 安装并配置成功。
​ 注意:可先在 slave1,slave2 虚拟机上安装 Java 环境,在第四章 Hadoop 全分
布上需应用到 Java 环境

2.实验二 安装 Hadoop 软件

2.1. 实验目标

完成本实验,您应该能够:
掌握 hadoop 的安装步骤
掌握 hadoop 的运行原理
掌握运行 hadoop 的基本命令

2.2. 实验要求

熟悉运行 hadoop 的基本命令
熟悉 hadoop 的运行原理
熟悉 hadoop 的安装步骤

2.3. 实验环境

本实验所需之主要资源环境如表 1-1 所示。
表 1-1 资源环境

服务器集群 单节点,机器最低配置:双核 CPU、8GB 内存、100G 硬盘
运行环境 CentOS 7.4
服务和组件 完成前面章节的实验,其他服务和组件根据实验需求安装

2.4. 实验过程

2.4.1. 实验任务一:获取 Hadoop 安装包

​ Apache Hadoop 各个版本的下载网址:
https://archive.apache.org/dist/hadoop /common/。本教材选用的是 Hadoop
2.7.1 版本,安装包为 hadoop-2.7.1.tar.gz。
​ 需要先下载 Hadoop 安装包,再上传到 Linux 系统的/opt/software 目录。具
体的方法见前一节“实验一 Linux 操作系统环境设置”,这里就不再赘述。

2.4.2. 实验任务二:安装 Hadoop 软件

2.4.2.1. 步骤一:安装 Hadoop 软件

​ 安装命令如下,将安装包解压到/usr/local/src/目录下

[root@djh-master ~]# tar -zxvf ~/hadoop-2.7.1.tar.gz -C /usr/local/src/

​ 解 压 完 成 后 , 查 看 目 录 确 认 一 下 。 可 以 看 出 Hadoop 安装在/usr/local/src/hadoop -2.7.1 目录中。

[root@djh-master ~]# ll /usr/local/src/
total 0
drwxr-xr-x. 9 root root 149 6 月 29 2015 hadoop-2.7.1
drwxr-xr-x. 7 root root 245 10 月 5 2019 jdk1.8.0_152

​ 查看 Hadoop 目录,得知 Hadoop 目录内容如下:

[root@djh-master ~]# ll /usr/local/src/hadoop-2.7.1/
total 28
drwxr-xr-x. 2 root root 194 6 月 29 2015 bin
drwxr-xr-x. 3 root root 20 6 月 29 2015 etc
drwxr-xr-x. 2 root root 106 6 月 29 2015 include
drwxr-xr-x. 3 root root 20 6 月 29 2015 lib
drwxr-xr-x. 2 root root 239 6 月 29 2015 libexec
-rw-r--r--. 1 root root 15429 6 月 29 2015 LICENSE.txt
-rw-r--r--. 1 root root 101 6 月 29 2015 NOTICE.txt
-rw-r--r--. 1 root root 1366 6 月 29 2015 README.txt
drwxr-xr-x. 2 root root 4096 6 月 29 2015 sbin
drwxr-xr-x. 4 root root 31 6 月 29 2015 share

其中:

bin:此目录中存放 Hadoop、HDFS、YARN 和 MapReduce 运行程序和管理软件。
etc:存放 Hadoop 配置文件。
include: 类似 C 语言的头文件
lib:本地库文件,支持对数据进行压缩和解压。
libexe:同 lib
sbin:Hadoop 集群启动、停止命令
share:说明文档、案例和依赖 jar 包。

2.4.2.2. 步骤二:配置 Hadoop 环境变量

​ 和设置 JAVA 环境变量类似,修改/etc/profile 文件。

[root@djh-master ~]# vi /etc/profile

​ 在文件的最后增加如下两行:

#HADOOP_HOME 指向 JAVA 安装目录

export HADOOP_HOME=/usr/local/src/hadoop-2.7.1

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

​ 执行 source 使用设置生效:

[root@djh-master ~]# source /etc/profile

​ 检查设置是否生效:

[root@djh-master ~]# hadoop

Usage: hadoop [--config confdir] [COMMAND | CLASSNAME]
CLASSNAME run the class named CLASSNAME

​ 出现上述 Hadoop 帮助信息就说明 Hadoop 已经安装好了。

2.4.2.3. 步骤三:修改目录所有者和所有者组

​ 上述安装完成的 Hadoop 软件只能让 root 用户使用,要让 hadoop 用户能够
运行 Hadoop 软件,需要将目录/usr/local/src 的所有者改为 hadoop 用户。

[root@djh-master ~]# chown -R hadoop:hadoop /usr/local/src 
[root@djh-master ~]# ll /usr/local/src
total 0
drwxr-xr-x. 9 hadoop hadoop 149 Jun 29 2015 hadoop-2.7.1
drwxr-xr-x. 7 hadoop hadoop 245 Oct 5 2019 jdk1.8.0_152

​ /usr/local/src 目录的所有者已经改为 hadoop 了。

​ /usr/local/src 目录的所有者已经改为 hadoop 了。

3.实验三 安装单机版 Hadoop 系统

3.1. 实验目标

完成本实验,您应该能够:
掌握 hadoop 的安装步骤
掌握 hadoop 的运行原理
掌握运行 hadoop 的基本命令

3.2. 实验要求

熟悉运行 hadoop 的基本命令
熟悉 hadoop 的运行原理
熟悉 hadoop 的安装步骤

3.3. 实验环境

本实验所需之主要资源环境如表 1-1 所示。
表 1-1 资源环境

服务器集群 单节点,机器最低配置:双核 CPU、8GB 内存、100G 硬盘
运行环境 CentOS 7.4
服务和组件 完成前面章节的实验,其他服务和组件根据实验需求安装

3.4. 实验过程

3.4.1. 实验任务一:配置 Hadoop 配置文件

​ 进入 Hadoop 目录

[root@djh-master ~]# cd /usr/local/src/hadoop-2.7.1/

​ 配置 hadoop-env.sh 文件,目的是告诉 Hadoop 系统 JDK 的安装目录。

[root@djh-master ~]# vi etc/hadoop/hadoop-env.sh

​ 在文件中查找 export JAVA_HOME 这行,将其改为如下所示内容。

export JAVA_HOME=/usr/local/src/jdk1.8.0_152

​ 这样就设置好 Hadoop 的本地模式,下面使用官方案例来测试 Hadoop 是否运
行正常。

3.4.2. 实验任务二:测试 Hadoop 本地模式的运行

3.4.2.1. 步骤一: 切换到 hadoop 用户

使用 hadoop 这个用户来运行 Hadoop 软件。

[root@djh-master ~]# su - hadoop
[hadoop@master ~]$

3.4.2.2. 步骤二: 创建输入数据存放目录

将输入数据存放在~/input 目录(hadoop 用户主目录下的 input 目录中)。

[hadoop@djh-master ~]$ mkdir ~/input

3.4.2.3. 步骤三: 创建数据输入文件

创建数据文件 data.txt,将要测试的数据内容输入到 data.txt 文件中。

[hadoop@djh-master ~]$ vi ~/input/data.txt

输入如下内容,保存退出。

Hello World
Hello Hadoop
Hello Huasan

3.4.2.4. 步骤四: 测试 MapReduce 运行

运行 WordCount 官方案例,统计 data.txt 文件中单词的出现频度。这个案
例可以用来统计年度十大热销产品、年度风云人物、年度最热名词等。命令如下:

adoop@djh-master ~]$ hadoop jar /usr/local/src/hadoop/2.7.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount ~/input/data.txt ~/output

运行结果保存在~/output 目录中,命令执行后查看结果:

[hadoop@djh-master ~]$ ll ~/output

-rw-r--r--. 1 hadoop hadoop 34 May 2 12:08 part-r-00000
-rw-r--r--. 1 hadoop hadoop 0 May 2 12:08 _SUCCESS

SUCCESS 表示处理成功,处理的结果存放在 part-r-00000 文件中,查看该文件。

[hadoop@djh-master ~]$ cat ~/output/part-r-00000 
Hadoop 1
Hello 3
Huasan 1
World 1

​ 可以看出统计结果正确,说明 Hadoop 本地模式运行正常。读者可将这个运
行结果与“3.2.3 MapReduce”中的 WordCount 案例运行过程进行对照,来加深
对 MapReduce 框架的理解。

​ 注意:输出目录不能事先创建,如果已经有~/output 目录,就要选择另外的
输出目录,或者将~/output 目录先删除。删除命令如下所示。

[root@djh-master ~]# rm -rf ~/output