【02】Hadoop简介及安装

文章目录

  • Hadoop简介及安装
    • 一、认识Hadoop
      • 1.Hadoop简介(Hadoop是什么)?
      • 2.Hadoop特点
      • 3.Hadoop中5个重要的进程
    • 二、Hadoop的安装
      • ·伪分布式模式安装
        • 1.下载Hadoop
        • 2.安装Hadoop
        • 3.配置Hadoop
        • 4.格式化文件系统。
        • 5.启动 Hadoop 并验证。
        • 6.关闭 Hadoop。
      • ·全分布式模式安装
        • ~集群环境准备
          • 1.准备机器。
          • 2.配置静态 IP。
          • 3.修改主机名。
          • 4.编辑域名映射。
          • 5.关闭防火墙。
          • 6.关闭 selinux。
          • 7.创建普通用户。
          • 8.使用 secureCRT 远程登录普通用户。
          • 9.安装和配置 SSH 免密登录。
          • 10.规划安装目录。
          • 11.安装和配置 Java。
        • ~集群安装过程
          • 1.下载 Hadoop。
          • 2.安装 Hadoop。
          • 3.配置 Hadoop。
          • 4.式化文件系统。
          • 5.启动 Hadoop 并验证。
          • 6.关闭 Hadoop。
          • 实操环境地址:

Hadoop简介及安装

一、认识Hadoop

1.Hadoop简介(Hadoop是什么)?

Hadoop 是一个开源的,可靠的、可扩展的分布式存储和计算框架,它基于 Java 语言开发,具有很好的跨平台特性,它允许用户使用简单的编程模型在廉价的计算机集群上对大规模数据集进行分布式处理。

2.Hadoop特点

1.高可靠性。
采用冗余数据存储方式,即使一个副本发生故障,其它副本也可以保证正常对外提供服务。

2.高可扩展性。
Hadoop 集群可以很方便地添加机器节点,从而提高整体数据处理能力。
3. 高性能。
相对于传统 BI 挖掘软件,Hadoop 性能表现优异。
4. 低成本。
Hadoop 是开源的,不需要支付任何费用即可下载安装使用。另外,Hadoop 集群可以部署在普通机器上,而不需要部署在价格昂贵的小型机上,能够大大减少公司的运营成本。
5. 支持多种平台。
Hadoop 支持 Windows 和 GNU/Linux 等多个操作系统平台。
6. 支持多种编程语言。
Hadoop 上的应用程序可以使用 Java、C++、Python 等语言来编写。

3.Hadoop中5个重要的进程

1.NameNode 进程。
NameNode 主要用来保存 HDFS 的元数据信息。例如需要存储一个 1280MB 的文件,如果按照 128MB 分块,那 NameNode 就会把这 10 个块(这里不考虑副本)分配到集群中的从节点上并记录对应关系。当你要下载这个文件的时候,NameNode 就知道从哪些节点上获取这些数据。NameNode 主要维护两个映射关系:一个是文件到块的映射,一个是块到节点的映射。这些映射关系就是元数据。

2.Secondary NameNode 进程。
Secondary NameNode 是 NameNode 的一个助手进程,通常运行在一个单独的物理机上。NameNode 启动时会加载此前持久化的元数据,启动后元数据会不断变化(因为数据会变化),这些变化的元数据要定期持久化以避免内存中的数据因宕机而丢失。将变化的元数据持久化,也称为合并操作日志文件。合并操作需要占用大量的 CPU 时间和内存,因此把这项任务剥离出来交给 Secondary Namenode 进程。总的来说,Secondary NameNode 一方面减轻了 NameNode 的压力,一方面增加了元数据的安全性。

3.DataNode 进程。
DataNode 与 NameNode 是配合关系,是部署在从节点上的。一个 Hadoop 集群可以有 1 个主节点和若干的从节点,一个从节点上部署一个 DataNode 进程。DataNode 负责实际的底层的文件的读写。存储在 HDFS 上的文件会被拆分成多个块(block),每个块会有多个副本。我们已知道 NameNode 管理着这些信息,而 DataNode 就实际管理着这些块,它负责将文件写入文件系统,也负责接受客户端的下载请求。另外,DataNode 会通过心跳(Heartbeat)定时向 NameNode 发送所存储的文件块信息。

4.ResourceManager 进程。
我们知道大数据技术的核心是分布式存储和分布式计算。在 Hadoop 中,分布式存储由 HDFS 解决,上述三个进程都属于 HDFS 体系。分布式计算,其编程模型由 MapReduce 定义,实际的计算资源协调由 YARN 负责管理。YARN 也采用主从模式,其核心程序是 ResourceManager 和 NodeManager。

5.NodeManager 进程。
NodeManager 管理 YARN 集群中的每一个节点,监视资源使用情况(CPU、内存、硬盘、网络),跟踪节点健康,向 ResourceManager 汇报这些信息;它依据 ResourceManager 的指令,为应用程序封装计算资源(称为 Container,容器),启动、监控、停止 Container。

二、Hadoop的安装

linux环境下…

·伪分布式模式安装

伪分布模式(Pseudo-Distributed Mode):只在一台计算机上运行,在这种模式下,Hadoop 的所有进程都运行在一个节点上,这个节点既扮演 master 也扮演 slave。

对于节点数目受限(内存小)的初学者可以采用伪分布模式,虽然只有一个节点支撑整个 Hadoop 集群,但是 Hadoop 在伪分布模式下的操作方式与在全分布模式下(集群模式)的操作几乎完全相同。

1.下载Hadoop

从官网下载 hadoop-2.9.2.tar.gz,将其存放在/soft
文件夹下

2.安装Hadoop

解压:

root:~/ $ tar -zxvf hadoop-2.9.2.tar.gz
root:~/ $ ll
……
drwxr-xr-x 10 shiyanlou shiyanlou 4.0K 12月 29 15:16 hadoop-2.9.2

配置环境变量

 root:~/ $ sudo vi /etc/profile
export JAVA_HOME=/opt/jdk1.8
export HADOOP_HOME=/home/shiyanlou/hadoop-2.9.2
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
root:~/ $ source /etc/profile #应用配置文件

3.配置Hadoop

Hadoop的配置文件位于$HADOOP_HOME/etc/hadoop 下。

第1步:配置hadoop-env.sh。
配置 JAVA_HOME 环境变量:

export JAVA_HOME=/opt/jdk1.8

第 2 步:配置 core-site.xml。

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop-2.9.2/tmp</value>
</property>

配置 fs.defaultFS 指定 Hadoop 所使用的文件系统的 URI(统一资源标识符),示例中的 URI 包含协议(HDFS)、NameNode 的 IP 地址(或者机器名)和端口(9000)。

配置 hadoop.tmp.dir 指定 Hadoop 运行时产生的临时文件的存储目录。

第 3 步:配置 hdfs-site.xml。

<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>
<property>
    <name>dfs.secondary.http.address</name>
    <value>localhost:50090</value>
</property>

配置 dfs.replication 指定数据副本的数量,由于是伪分布式形式,只有 1 个节点,所以这里设置为 1 即可。

配置 dfs.secondary.http.address 指定 Secondary Namenode 的地址和端口。

第 4 步:配置 mapred-site.xml。

原文件名为“mapred-site.xml.template”,将其另存为“mapred-site.xml”以使其生效。

root:~/ $ cp mapred-site.xml.template mapred-site.xml

确认其内容如下:

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

配置 mapreduce.framework.name 指定 MapReduce 运行在 yarn 上。

第 5 步:配置 yarn-site.xml。

<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>localhost</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

配置 yarn.resourcemanager.hostname 指定 YARN 的 ResourceManager 的地址。 配置 yarn.nodemanager.aux-services 指定 shuffle 机制。

第 6 步:配置 slaves。

localhost

配置集群中的从节点,一行一个机器名(或 IP 地址)。这里因为是伪分布式模式,所以 localhost 既是主节点,又是从节点。

4.格式化文件系统。

在主节点 master 上执行命令“hdfs namenode -format”格式化 HDFS 文件系统。

root:~/ $ hdfs namenode -format

执行成功后,会出现 core-site.xml 中 hadoop.tmp.dir 配置项指定的目录。

需要注意的是,格式化只需要一遍即可。如果格式化出错,修改相关配置后,需要先把 hadoop.tmp.dir 配置的目录删除,才能再次格式化。

5.启动 Hadoop 并验证。

首先启动 HDFS:

root:~/ $ start-dfs.sh
Starting namenodes on [master]
master: starting namenode, logging to /opt/hadoop-2.9.2/logs/hadoop-hadoop-namenode-master.out
master: starting datanode, logging to /opt/hadoop-2.9.2/logs/hadoop-hadoop-datanode-master.out
Starting secondary namenodes [master]
master: starting secondarynamenode, logging to /opt/hadoop-2.9.2/logs/hadoop-hadoop-secondarynamenode-master.out

通过输出可以看到 namenode、datanode 和 secondarynamenode 这 3 个进程已经启动了,而且提示了对应的日志文件(*_.out就是日志文件)。如果启动失败,可以去日志文件查看报错信息。

然后启动 YARN:

root:~/ $ start-yarn.sh
starting yarn daemons
starting resourcemanager, logging to /opt/hadoop-2.9.2/logs/yarn-hadoop-resourcemanager-master.out
master: starting nodemanager, logging to /opt/hadoop-2.9.2/logs/yarn-hadoop-nodemanager-master.out

通过输出可以看到 resourcemanager 和 nodemanager 这 2 个进程已经启动了。

下面我们确认一下已经启动的 Java 进程:

root:~/ $ jps
2465 NodeManager
2211 SecondaryNameNode
2517 Jps
1912 NameNode
2012 DataNode
2366 ResourceManager

可以看到除了 Jps 本身外,启动了 5 个 Java 进程,正是前面提到过的 5 个重要进程。

Hadoop 也提供了基于 Web 浏览器的管理工具,可以用来验证 Hadoop 集群是否部署成功且正确启动。其中 HDFS Web UI 的默认地址为 http://NameNodeIP:50070, 这里为 http://localhost:50070,运行界面如下图所示。

【02】Hadoop简介及安装_第1张图片

YARN Web UI 的默认地址为 http://ResourceManagerIP:8088,这里为 http://localhost:8088, 运行界面如下图所示。

【02】Hadoop简介及安装_第2张图片

6.关闭 Hadoop。

关闭 Hadoop 集群时,与启动顺序正好相反,先关闭 YARN,再关闭 HDFS。

关闭 YARN:

root:~/ $ stop-yarn.sh
stopping yarn daemons
stopping resourcemanager
master: stopping nodemanager

关闭 HDFS:

root:~/ $ stop-dfs.sh
Stopping namenodes on [master]
master: stopping namenode
master: stopping datanode
Stopping secondary namenodes [master]
master: stopping secondarynamenode

我们还可以使用“start-all.sh”来一起开启 HDFS 和 YARN,使用“stop-all.sh”来一起关闭 YARN 和 HDFS。

·全分布式模式安装

全分布模式(Fully-Distributed Mode),需要在多台计算机上分别运行主节点和从节点。在这种模式下,Hadoop 的相关进程分别运行在多个节点上,形成一个真正意义上的集群。

~集群环境准备

1.准备机器。

推荐使用 VMware Workstation Pro 安装 3 台 CentOS 虚拟机,分别为 master、slave1 和 slave2,3 台的配置一样,内存最低配置为 1024MB,CPU 为 1 个 1 核。3 台 CentOS 虚拟机的软件环境准备过程相同,以下步骤以虚拟机 master 为例来进行。

2.配置静态 IP。

首先,请将虚拟机的网络连接模式修改成 NAT 模式,然后参考下列步骤。

CentOS 版本不同,网卡配置文件都不尽相同。这里使用的 CentOS 7.6.1810 对应的网卡配置文件为 /etc/sysconfig/network-scripts/ifcfg-ens32,大家可自行查看个人 CentOS 的网卡配置文件。切换到 root 用户,使用命令“vim /etc/sysconfig/network-scripts/ifcfg-ens32”修改网卡配置文件,为该机器设置静态 IP 地址。网卡 ifcfg-ens32 配置文件的原始内容(部分)如下所示:

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens32"
UUID="eeb4b711-4179-4ec3-ab05-a51369e223b2"
DEVICE="ens32"
ONBOOT="yes"

修改后的文件内容如下所示,其中 BOOTPROTO 的值改成 static,表示手动设置 IP。ONBOOT 的值不变。另外添加 IPADDR 即 IP 地址、NETMASK 即子网掩码、GATEWAY 即网关以及 DNS1 域名解析器的配置。

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens32"
UUID="eeb4b711-4179-4ec3-ab05-a51369e223b2"
DEVICE="ens32"
ONBOOT="yes"

IPADDR=192.168.128.131
NETMASK=255.255.255.0
GATEWAY=192.168.128.2
DNS1=192.168.128.2

使用“reboot”命令重启机器或者“systemctl restart network.service”命令重启网络方可使配置生效。使用命令“ip address”或者简写“ip addr”查看到当前机器的 IP 地址已设置为静态 IP“192.168.128.131”。 同理,将虚拟机 slave1 和 slave2 的 IP 地址依次设置为静态 IP“192.168.128.132”、“192.168.128.133”。

3.修改主机名。

切换到 root 用户,通过修改配置文件 /etc/hostname,可以设定 Linux 主机名,该配置文件中原始内容为:“localhost.localdomain”,将其替换为:“master”。然后使用“reboot”命令重启机器方可使配置生效。使用命令“hostname”可以验证当前主机名是否已修改为“master”。同理,将虚拟机 slave1 和 slave2 的主机名依次设置为“slave1”、“slave2”。

4.编辑域名映射。

为协助用户便捷访问该机器而无需记住 IP 地址串,需要编辑域名映射文件 /etc/hosts,在原始内容最后追加 3 行内容:

192.168.128.131    master
192.168.128.132    slave1
192.168.128.133    slave2

使用“reboot”命令重启机器方可使配置生效。同理,编辑虚拟机 slave1 和 slave2 的域名映射文件,内容同虚拟机 master。至此,3 台 CentOS 虚拟机的静态 IP、主机名、域名映射均已修改完毕,在 master 上用“ping”命令来检测各节点间是否通讯正常,成功效果如下所示:

[root@master ~]# ping master
PING master (192.168.128.131) 56(84) bytes of data.
64 bytes from master (192.168.128.131): icmp_seq=1 ttl=64 time=0.377 ms
64 bytes from master (192.168.128.131): icmp_seq=2 ttl=64 time=0.091 ms
64 bytes from master (192.168.128.131): icmp_seq=3 ttl=64 time=0.103 ms
--- master ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.091/0.190/0.377/0.132 ms

[root@master~]# ping slave1
PING slave1 (192.168.128.132) 56(84) bytes of data.
64 bytes from slave1 (192.168.128.132): icmp_seq=1 ttl=64 time=5.12 ms
64 bytes from slave1 (192.168.128.132): icmp_seq=2 ttl=64 time=0.597 ms
64 bytes from slave1 (192.168.128.132): icmp_seq=3 ttl=64 time=0.585 ms
--- slave1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.585/2.101/5.123/2.137 ms

[root@master ~]# ping slave2
PING slave2 (192.168.128.133) 56(84) bytes of data.
64 bytes from slave2 (192.168.128.133): icmp_seq=1 ttl=64 time=6.75 ms
64 bytes from slave2 (192.168.128.133): icmp_seq=2 ttl=64 time=0.792 ms
64 bytes from slave2 (192.168.128.133): icmp_seq=3 ttl=64 time=0.387 ms
--- slave2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2019ms
rtt min/avg/max/mdev = 0.387/2.643/6.752/2.910 ms
5.关闭防火墙。

使用“systemctl stop firewalld”命令来关闭防火墙;使用“firewall-cmd --state”命令可查看防火墙状态;使用“systemctl disable firewalld”命令来禁止开机自启动防火墙。

在 slave1 和 slave2 上也需做同样的操作。

6.关闭 selinux。

查看 selinux 状态可以使用“getenforce”命令;通过修改文件 /etc/selinux/config 来关闭 selinux,将“SELINUX=enforcing”改成“SELINUX=disabled”,重启虚拟机即可。

在 slave1 和 slave2 上也需做同样的操作。

7.创建普通用户。

在实际开发中,我们不能使用 root 用户,而需要使用自己的账户,所以我们来创建自己的账户,如这里创建一个名为 hadoop 的账户。

[root@master ~]# useradd hadoop
[root@master ~]# passwd hadoop

然后通过修改文件 /etc/sudoers 为 hadoop 用户分配 sudoer 权限。找到下面这一行:

root    ALL=(ALL)       ALL

在下面添加一行:

hadoop  ALL=(ALL)       ALL

保存时需要用强制保存。

需要在 slave1 和 slave2 上做同样的操作。

8.使用 secureCRT 远程登录普通用户。

推荐使用 secureCRT 这类软件来连接、操作 Linux。

9.安装和配置 SSH 免密登录。

先使用命令“rpm -qa|grep ssh”查询 SSH 是否已经安装,如下所示:

[hadoop@admin ~]# rpm -qa|grep ssh
openssh-7.4p1-21.el7.x86_64
openssh-server-7.4p1-21.el7.x86_64
libssh2-1.8.0-3.el7.x86_64
openssh-clients-7.4p1-21.el7.x86_64

可以看到 ssh 软件包已经安装好,若没有安装好,用 yum 安装,命令如下所示:

yum -y install openssh
yum -y install openssh-server
yum -y install openssh-clients

使用“ssh-keygen”或者“ssh-keygen -t rsa”命令来创建当前用户 hadoop 的私钥与公钥。

[hadoop@admin ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
Created directory '/home/hadoop/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:e91dL+yOBk9LqtZNw2H9Xg28K29/nInrePNq4KmmrJc hadoop@admin
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|                 |
|             o   |
|            o +  |
|        S  o . +o|
|         ..o*o..*|
|        o.oO+o=+*|
|      .E.oooBBo++|
|     .o++o.o=OOoo|
+----[SHA256]-----+

中间有 3 处地方需要用户输入,我们全部直接敲击回车键即可。

结束后,我们可以看到在家目录下的 .ssh 目录下多了 2 个文件,其中 id_rsa 为私钥,id_rsa.pub 为公钥。

[hadoop@admin ~]$ ll ~/.ssh
-rw------- 1 hadoop hadoop 1679 425 15:00 id_rsa
-rw-r--r-- 1 hadoop hadoop  394 425 15:00 id_rsa.pub

上面的操作,需要在 slave1 和 slave2 上执行。

为了让 master 能免密登录自己(master)以及免密登录到 slave1 和 slave2 上,我们需要将 master 的公钥导入到 master、slave1 和 slave2 这 3 台机器上,可使用“ssh-copy-id 目标服务器 ip”命令来实现,代码如下:

[hadoop@master ~]$ ssh-copy-id 192.168.128.131
省略输出……

这样就把 master 节点上的 hadoop 用户对应的公钥保存到 master(它自己)的 authorized_keys 文件中了。中间需要输入 yes,以及 hadoop 用户在 master 主机上的密码。

然后把 master 节点上的 hadoop 用户对应的公钥保存到 slave1 上的 authorized_keys 文件中:

[hadoop@master ~]$ ssh-copy-id 192.168.128.132

最后把 master 节点上的 hadoop 用户对应的公钥保存到 slave2 上的 authorized_keys 文件中:

[hadoop@master ~]$ ssh-copy-id 192.168.128.133

现在,在 master 上使用命令“ssh ip 地址”来登录 slave1 和 slave2:

[hadoop@master ~]$ ssh 192.168.128.132
Last login: Sat Apr 25 14:52:07 2020 from 192.168.128.1
[hadoop@slave1 ~]$ exit
登出
Connection to 192.168.128.132 closed.

可以看到在 master 上,使用 ssh 命令,不需要输入密码就直接登录到 slave1 上了。若要退回到之前的 master 上,使用 exit 命令。

10.规划安装目录。

考虑到以后我们要安装的软件比较多,这里我们新建一个目录 /soft,专门用来安装相关软件。代码如下:

[hadoop@master ~]$ sudo mkdir /soft
sudo chown hadoop:hadoop /soft

在 slave1 和 slave2 上做同样的操作。

11.安装和配置 Java。

首先,通过命令“java -version”查看是否已安装 Java:

[hadoop@master ~]# java -version
openjdk version "1.8.0_222-ea"
OpenJDK Runtime Environment (build 1.8.0_222-ea-b03)
OpenJDK 64-Bit Server VM (build 25.222-b03, mixed mode)

可以看到该操作系统默认安装了 OpenJDK,我们建议使用 Oracle/Sun JDK,这里无需卸载 OpenJDK。 请到 Oracle 官网下载 jdk-8u65-linux-x64.tar.gz,可以在 windows 上下载再上传到 Linux 中去,也可以直接在 Linux 上下载。下载之后将其放到 /soft 目录中,然后解压:

[hadoop@master ~]$ cd /soft
[hadoop@master soft]$ ll
-rw-rw-r-- 1 hadoop hadoop 181260798 217 2018 jdk-8u65-linux-x64.tar.gz
[hadoop@master soft]$ tar -zxvf jdk-8u65-linux-x64.tar.gz
[hadoop@master soft]$ ll
drwxr-xr-x 8 hadoop hadoop       255 107 2015 jdk1.8.0_65
-rw-rw-r-- 1 hadoop hadoop 181260798 217 2018 jdk-8u65-linux-x64.tar.gz

重命名“jdk1.8.0_65”为“jdk1.8”。

[hadoop@master soft]$ mv jdk1.8.0_65/ jdk1.8

配置环境变量:在 /etc/profile 文件末尾追加下列内容:

export JAVA_HOME=/soft/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH

刷新环境变量:

[hadoop@master soft]$ source /etc/profile

测试是否安装配置成功:

[hadoop@master soft]$ java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)

在 slave1 和 slave2 上需做同样的安装、配置以及验证。

~集群安装过程

1.下载 Hadoop。

这一步,和伪分布式一样,需要注意的是,在 slave1 和 slave2 上需做同样的动作。

2.安装 Hadoop。

这一步,和伪分布式一样,需要注意的是,在 slave1 和 slave2 上需做同样的动作。

3.配置 Hadoop。

在这一步,需要注意的是,master、slave1 和 slave2 上必须要保持一样的配置。

第 1 个:hadoop-env.sh,保持不变。

第 2 个:core-site.xml,保持不变。

第 3 个:hdfs-site.xml。因为现在有 2 个从节点,所以将数据副本数量设置为 2:

<property>
    <name>dfs.replication</name>
    <value>2</value>
</property>
<property>
    <name>dfs.secondary.http.address</name>
    <value>192.168.128.131:50090</value>
</property>

第 4 个:mapred-site.xml,保持不变。

第 5 个:yarn-site.xml,保持不变。

第 6 个:slaves。需要改写:

slave1
slave2
4.式化文件系统。

需要注意的是必须在主节点 master 上执行格式化,且只需要执行一遍。因在上一节中已经生成 tmp 目录,所以这里必须先将它删除,才能执行“hdfs namenode -format”命令。

5.启动 Hadoop 并验证。

启动步骤和上一节相同,只需注意这些操作都在主节点 master 上执行。

启动完毕之后,在 master 上使用 jps 查看进程如下:

[hadoop@master hadoop-2.9.2]$ jps
4496 ResourceManager
4344 SecondaryNameNode
4138 NameNode
4748 Jps

在 slave1 上使用 jps 查看进程如下:

[hadoop@slave1 hadoop-2.9.2]$ jps
2664 Jps
2441 DataNode
2558 NodeManager

在 slave2 上使用 jps 查看进程如下:

[hadoop@slave2 hadoop]$ jps
2599 Jps
2540 NodeManager
2431 DataNode

可以看到除了 Jps 本身外,主节点上正好 3 个 Java 进程,2 个从节点上分别运行 2 个 Java 进程,这说明所有的进程都已经正常启动。我们也可以去访问 Web 界面,其中 HDFS Web UI 的默认地址为 http://192.168.128.131:50070, YARN Web UI 的默认地址为 http://192.168.128.131:8088。

6.关闭 Hadoop。

关闭 Hadoop 集群,与启动顺序正好相反,先关闭 YARN,再关闭 HDFS。

关闭 YARN,使用命令“stop-yarn.sh”。 关闭 HDFS,使用命令“stop-dfs.sh”。

实操环境地址:
https://www.lanqiao.cn/courses/3402/learning/?id=126494

你可能感兴趣的:(hadoop)