Hadoop 实战篇(1)
Hadoop 实战篇(1)
作者 | WenasWei
前言
在前面介绍过了 Hadoop-离线批处理技术的整体架构,接下来便开始学习安装配置并使用 Hadoop ; 将从以下几点介绍:
Linux 环境的配置与安装 Hadoop
Hadoop 的三种安装模式介绍
本地模式安装
伪集群模式安装
一 Linux 环境的配置与安装 Hadoop
Hadoop 需要使用到 Linux 环境上的一些基本的配置需要,Hadoop 用户组和用户添加,免密登录操作,JDK 安装
1.1 VMWare 中 Ubuntu 网络配置
在使用 VMWare 安装 Ubuntu18.04-Linux 操作系统下时产生系统配置问题可以通过分享的博文进行配置,CSDN 跳转链接: VMWare中Ubuntu网络配置
其中包含了以下几个重要操作步骤:
buntu 系统信息与修改主机名
Windows 设置 VMWare 的 NAT 网络
Linux 网关设置与配置静态 IP
Linux 修改 hosts 文件
Linux 免密码登录
1.2 Hadoop 用户组和用户添加
1.2.1 添加 Hadoop 用户组和用户
以 root 用户登录 Linux-Ubuntu 18.04 虚拟机,执行命令:
1.2.2 赋予 Hadoop 用户目录权限
将 /usr/local
目录权限赋予 Hadoop 用户, 命令如下:
1.2.3 赋予 Hadoop 用户 sodu 权限
编辑/etc/sudoers
文件,在root ALL=(ALL:ALL) ALL
下添加hadoop ALL=(ALL:ALL) ALL
1.2.4 赋予 Hadoop 用户登录密码
1.3 JDK 安装
Linux 安装 JDK 可以参照分享的博文《Logstash-数据流引擎》-<第三节:Logstash 安装>--(第二小节: 3.2 Linux 安装 JDK 进行)安装配置到每一台主机上,CSDN 跳转链接: Logstash-数据流引擎
1.4 Hadoop 官网下载
官网下载:https://hadoop.apache.org/releases.html Binary download
使用 wget 命名下载(下载目录是当前目录):
例如:version3.3.0 https://mirrors.bfsu.edu.cn/apache/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
解压、移动到你想要放置的文件夹:
/usr/local
1.5 配置 Hadoop 环境
修改配置文件
/etc/profile
:
使配置文件生效
查看 Hadoop 配置是否成功
从结果可以看出,Hadoop 版本为 Hadoop 3.3.0
,说明 Hadoop 环境安装并配置成功。
二 Hadoop 的三种安装模式介绍
Hadoop 提供了 3 种不同得到安装模式,分别为单机模式、伪集群模式和集群模式。
2.1 单机模式
单机模式(本地模式):Hadoop 默认模式、即非分布式模式、无需进行其他配置即可运行非分布式,即 java 单进程,方便进行调试、跟踪和排除问题,只需要在 Hadoop 的 hadoop-env.sh
文件中配置 JAVA_HOME 即可。
本地单机模式以 Hadoop Jar 命令运行 Hadoop 程序,并将运行结果直接输出到本地磁盘。
2.2 伪集群模式
Hadoop 在单节点(单点故障问题)上以伪分布式的方式运行,Hadoop 进程以分离的 java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时读取的是 HDFS 中的文件。能够在逻辑上提供与集群模式一样的运行环境,在物理上伪集群模式部署在单台服务器上:而集群模式需要部署在多台服务器上,以实现物理上的完全集群分布。
伪集群模式中需要在 Hadoop 的 hadoop-env.sh 文件中配置 JAVA HOME 外,还要配置 Hadoop 所使用的文件系统、HDFS 的副本数量和 YARN 地址,以及服务器的 SSH 免密码登录等。伪集群模式以 HadopJar 命令运行 Hadoop 程序,并将运行结果输出到 HDFS 中。
2.3 集群模式
集群模式也称完全集群模式,它与伪集群模式有着本质的区别: 集群模式是在物理服务器上实现的完全分布式集群,部署在多台物理服务器上;而伪集群模式在逻辑上是集群模式,但它是部署在单台物理服务器上的。
对于生产环境,要求 Hadoop 环境的高可靠性和高可用性,往往某个节点故障就会导致整个集群不可用;同时,要求生产环境的数据必须可靠,某个数据节点出现故障或者数据发生丢失后,数据必须可恢复。这就要求生产环境上必须部署 Hadoop 的集群模式,以应对生产环境的各种要求。
集群模式的部署是 3 种安装模式中最复杂的,它需要部署在多台物理服务器上,要提前将服务器环境规划好,除了要配置 Hadoop 所使用的文件系统、HDFS 的副本数量和 YARN 地址外。还要配置各台服务器之间的 SSH 免密码登录、各 Hadoop 节点之间的 RPC 通信、NameNode 失败自动切换机制、HA 高可用等。另外,还需要安装配置分布式应用协调服务--Zookeeper。
集群模式以 Hadoop Jar 命令运行 Hadoop 程序,并将运行结果输出到 HDFS 中。
三 单机模式
3.1 修改 Hadoop 配置文件
单机模式下修改 Hadoop 配置文件 hadoop-env.sh
,添加上 Java 环境配置路径
3.2 创建测试数据文件
创建目录
/home/hadoop/input
:
创建测试数据文件
data.input
:
3.3 运行 Hadoop 测试用例
运行 Hadoop 自带的 MapReduce 示例程序,统计指定文件中的单词个数。
运行 Hadoop 自带的 MapReduce 程序命令:
通用格式说明如下:
hadoop jar: 以 Hadoop 命令行的形式运行 MapReduce 程序;
/usr/local/hadoop-3.3.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar: Hadoop 自带的 MapReduce 程序所在 Jar 包的完整路径;
wordcount: 标识使用的是单词计数的 MapReduce 程序,因为
hadoop-mapreduce-examples-3.3.0.jar
文件中存在多个 MapReduce 程序。参数说明如下。
/home/hadoop/input/data.input: 输入 data.input 文件所在的本地完整路径名称;
/home/hadoop/output: 本地结果数据输出目录,不能手动创建,需要 Hadoop 程序创建。
执行成功结果:
查看文件结果
查看/home/hadoop/output
文件夹和生成文件如下:
查看统计数据文件part-r-00000
:
四 伪集群模式安装
Hadoop 在单节点上以伪分布式的方式运行、Hadoop 进程以分离的 Java 进程来运行,节点即为 NameNode 也作为 DataNode,同时、读取的是 HDFS 中的文件。需要修改的配置文件:core-site.xml 和 hdfs-site.xml、mapred-site.xml,每个配置以声明 property 的 name 和 value 的方式实现。
4.1 伪集群文件配置
对于 Hadoop 伪集群模式的配置,除了需要配置 hadoop-env.sh 文件外,还需要配置以下 4 个文件:core site.xml、hdfs-site.xml、mapred-site.xml 和 yarn-site.xml,每个文件与 hadoop-env.sh 文件在同一个目录下,各文件的作用如下:
4.1.1 core-site.xml
指定 NameNode 的位置,hadoop.tmp.dir 是 Hadoop 文件系统依赖的基础配置,很多路径都依赖它。如果 hdfs-site.xml 中不配置 Namenode 和 DataNode 的存放位置,则默认就放在这个路径中。
core-site.xml 配置文件如下:
注意: 其中的 hadoop1 为配置的主机名
4.1.2 hdfs-site.xml
配置 NameNode 和 DataNode 存放文件的具体路径,配置副本的数量。
hdfs-site.xml 配置文件如下:
注意: 伪分布式只有一个节点,所以 dfs.replication
需要配置成 1 ,在集群模式下至少配置 3 个节点; 此外还配置了 datanode 和 namenode 的节点位置。
4.1.3 mapred-site.xml
在之前版本的 Hadoop 中是没有此文件的,需要将 mapred-site.xml.template
重命名:配置 MapReduce 作业是提交到 YARN 集群还是使用本地作业执行器在本地执行,其中需要配置 Hadoop 的环境配置: HADOOP_HOME。
mapred-site.xml 配置文件如下:
4.1.4 yarn-site.xml
配置 ResourceManager 所在节点的主机名;配置辅助服务列表,这些服务由 NodeManager 执行。
yarn-site.xml 配置文件如下:
4.2 格式化 NameNode 和启动 Hadoop
4.2.1 赋予脚本 root 账户运行权限
脚本目录: /usr/local/hadoop-3.3.0/sbin
,需要赋予脚本 root 账户运行权限的有:start-dfs.sh、start-yarn.sh、stop-dfs.sh 和 stop-yarn.sh。
(1)start-dfs.sh 和 stop-dfs.sh 分别为启动和停止 HDFS 进程节点, 脚本顶部需要添加 root 运行权限如下:
(2)start-yarn.ss 和 stop-yarn.sh 分别为启动和停止 yarn 进程节点, 脚本顶部需要添加 root 运行权限如下:
4.2.2 格式化 NameNode
格式化 NameNode 执行命令:
当输出结果中有如下信息是,说明格式化 NameNode 成功:
4.2.3 启动 Hadoop
(1)启动 HDFS
在命令行执行脚本启动 HDFS:
jps 查看进程
(2)启动 YARN
在命令行执行脚本启动 YARN:
jps 查看进程
4.2.4 查看 Hadoop 节点信息
验证 Hadoop 伪集群模式启动成功的两种方式: 一种在浏览器通过 Hadoop 暴露的接口查看 NameNode 的状态是否为"活动状态", 另一种是执行 MapReduce 程序来验证是否安装并启动成功。
在浏览器中输入地址进行访问:
登录界面如图所示,节点为"活跃状态":
4.3 运行 MapReduce 程序验证环境搭建
运行 MapReduce 程序验证环境搭建步骤分为以下四步:
在 HDFS 上创建输入文件目录
上传数据文件到 HDFS 中
执行 MapReduce 程序
4.3.1 在 HDFS 上创建输入文件目录
在 HDFS 上新建 /data/input
目录,具体操作如下:
4.3.2 上传数据文件到 HDFS 中
上传本地模式下的数据文件 "data.input" 到 HDFS 中目录: /data/input
4.3.3 执行 MapReduce 程序
运行 Hadoop 自带的 wordcount 计数程序,具体命令如下:
查看执行结果在 wordcount 计数程序执行过程中,会自动创建
/data/output
目录,先查看 HDFS 上创建的/data/output
目录,命令如下:
可以从 part-r-00000 文件中正确的输出了每个单词以及该单词在测试数据文件中的数量,说明 Hadoop 的伪集群模式正确的将 MapReduce 的结果输出到了 HDFS 中。
END
本文主要是为了后续部署 hadoop 等大数据组件的网络策略处理,其中最主要的设置网络静态 ip、主机名修改、设置免密登录等操作,下一篇将介绍 Hadoop 的集群模式安装,欢迎关注微信公众号: 进击的梦清 ; 我是一名在互联网浪潮下的打工人,希望和你共同学习进步,秉承信念: 你知道的越多,不知道的就越多。
参考文档:
[1] RongT.博客园: https://www.cnblogs.com/tanrong/p/10645467.html ,2019-04-02.
[2] Hadoop 官网: https://hadoop.apache.org/
[3] 冰河.海量数据处理与大数据技术实站 [M].第 1 版.北京: 北京大学出版社,2020-09
版权声明: 本文为 InfoQ 作者【进击的梦清】的原创文章。
原文链接:【http://xie.infoq.cn/article/fb8093aff6417352612dd03c1】。文章转载请联系作者。
评论