大数据 -02-Hadoop 集群 XML 配置 超详细 core-site.xml hdfs-site.xml 3 节点云服务器 2C4G HDFS Yarn MapRedece

点一下关注吧!!!非常感谢!!持续更新!!!
基本介绍
目前我已经更新了很多大数据的文章!希望可以帮助到大家!之前都发布到 CSDN 上了,希望可以帮助到更多的小伙伴。
大数据相关 正在更新··· 约 300 篇
大模型相关 正在更新···
Java 正在更新··· 约 200 篇

章节内容
上一节完成了:
Java 的环境配置
Hadoop 环境配置
顺利完成了基础环境的配置,但是对于 Hadoop 来说,目前还有一些 XML 的配置需要我们修改,这样后续才能组装成集群来运行。接下来我们就进行一些 XML 的配置。Hadoop 集群配置 = HDFS 集群配置 + MapReduce 集群配置 + Yarn 集群配置。
基本介绍
HDFS(Hadoop Distributed File System)是 Apache Hadoop 框架中用于存储大数据的分布式文件系统。它具有高容错性和高扩展性的特点,专为在廉价硬件上运行而设计,能够处理大规模数据集。
核心概念
文件系统架构:HDFS 基于主从架构,由 NameNode(主节点)和多个 DataNode(数据节点)组成:NameNode 负责存储元数据,如文件目录、块位置信息等。它不会存储文件本身,而是维护文件块与 DataNode 的映射。DataNode 负责实际存储文件数据。HDFS 将文件拆分成多个固定大小的块(默认 64MB 或 128MB),并将这些块分布式存储在不同的 DataNode 上。
冗余与容错:为了保证数据安全,每个数据块都会被复制到多个 DataNode 上,默认是三个副本。这种机制可以防止数据丢失,即使某些节点发生故障,数据仍可从其他副本中恢复。
流式数据访问:HDFS 适合一次写入、多次读取的访问模式,主要用于批处理场景。它不支持像传统文件系统那样的随机写操作。
工作流程
数据写入:客户端将文件写入 HDFS 时,文件会被拆分成块并分别存储到不同的 DataNode 上。NameNode 会记录每个数据块的位置信息。当写入完成后,副本机制开始将数据复制到其他 DataNode。
数据读取:客户端从 HDFS 读取文件时,首先从 NameNode 获取文件块的位置信息,然后直接从对应的 DataNode 下载文件块。这种设计使得数据读取可以并行化,提升了读性能。
优势
可扩展性:HDFS 可以水平扩展,通过增加 DataNode 来扩大存储容量。
高容错性:由于数据块的多副本机制,HDFS 能有效应对硬件故障。当某个 DataNode 失效时,数据依然可从其他副本恢复。
数据本地化:在 Hadoop MapReduce 中,计算任务会尽量安排在数据存储节点附近,以减少网络传输,提高计算效率。
局限性
不支持低延迟数据访问:HDFS 更适合批处理场景,不适合低延迟的实时查询。
单点故障:NameNode 作为整个系统的元数据管理者,如果 NameNode 故障,整个 HDFS 将无法正常工作。不过,通过引入高可用(HA)机制,这个问题可以得到解决。
小文件问题:HDFS 对小文件的处理效率较低,因为每个文件都需要元数据管理,小文件过多会给 NameNode 带来较大压力。
集群配置
由于我也是参考着别人的内容,这里有一个对应的关系:
h121 对应 linux121
h122 对应 linux122
h123 对应 linux123

我们需要配置的内容如下图:
Hadoop集群配置 = HDFS集群配置 + MapReduce集群配置 + Yarn集群配置

按照上图,一步一步来配置。
HDFS 集群
运行环境
修改 hadoop 的运行内容
找到 JAVA_HOME 的部分,配置为我们上节配置的地址:(防止后续的一系列不必要的问题,血泪史)

NameNode
修改 core-site.xml
添加如下的内容
当前的完整配置如下:

core-site.xml
中的所有参数地址:https://hadoop.apache.org/docs/r2.9.2/hadoop-project-dist/hadoop-common/core-default.xml
SecondaryNameNode
将下面的内容加入进去:
当前的完整配置如下:

DataNode
这里是你的 3 台节点的名称,或者域名。

MapReduce 集群
运行环境
加入 JAVA_HOME 的环境,避免后续的不必要的问题。
当前配置如下:

mapred-site
我们需要将默认的模板修改过来,并在这个基础上进行修改:
加入如下的内容

Yarn 集群
运行环境
同前文,这里就不赘述了。也是修改 JAVA_HOME,避免后续不必要的麻烦!
yarn-site
加入如下的内容:

NodeManager
修改 slaves
文件,前文已经修改,这里就不需要了。
统一权限
现在已经完成了初步的配置,下面我们统一一下权限,防止后续出现权限问题:
DNS 修改
我是公网云,所以我统一一下 DNS,避免后续不必要的麻烦(也可以不弄,问题不大)
我使用的是阿里的 DNS
修改的截图如下:

版权声明: 本文为 InfoQ 作者【武子康】的原创文章。
原文链接:【http://xie.infoq.cn/article/692a33ba847d7bef619a8e9a3】。文章转载请联系作者。
评论