HDFS 架构

HDFS 架构,第1张

HDFS 涉及两个重要进程:NameNode、DataNode。

他们一般都部署单独部署在不同服务器上,运行 NameNode 的服务器是主服务器,运行 DataNode 的服务器是从服务器。主服务器只有一个,从服务器有多个。

这种一主多从的架构基本适用于所有分布式系统或框架。可重复使用的架构方案叫作架构模式,一主多从可谓是大数据领域的最主要的架构模式。主服务器只有一台,掌控全局。从服务器有很多台,负责具体的事情。这样很多台服务器可以有效组织起来,对外表现出一个统一又强大的存储计算能力。

DataNode 负责文件数据的存储和读写操作,HDFS 将文件数据分割成若干数据块(Block),每个 DataNode 存储一部分数据块,这样文件就分布存储在整个 HDFS 服务器集群中。应用程序客户端(Client)可以并行对这些数据块进行访问,从而使得 HDFS 可以在服务器集群规模上实现数据并行访问,极大地提高了访问速度。

在实践中,HDFS 集群的 DataNode 服务器会有很多台,一般在几百台到几千台这样的规模,每台服务器配有数块磁盘,整个集群的存储容量大概在几 PB 到数百 PB。

NameNode 负责整个分布式文件系统的元数据(MetaData)管理,也就是文件路径名、数据块的 ID 以及存储位置等信息,相当于操作系统中文件分配表(FAT)的角色。HDFS 为了保证数据的高可用,会将一个数据块复制为多份(默认3份),并将多份相同的数据块存储在不同的机架的服务器上。这样当有磁盘损坏,或者某个 DataNode 服务器宕机,甚至某个交换机宕机时,系统能通过其备份的数据块进行查找。

处理客户端的请求。

客户端向 HDFS 上传文件。

客户端向 HDFS 读取文件。

像 NameNode 这样主从服务器管理同一份数据的场景,如果从服务器错误地以为主服务器宕机而接管集群管理,会出现主从服务器一起对 DataNode 发送指令,进而导致集群混乱,也就是所谓的“脑裂”。这也是这类场景选举主服务器时,引入 ZooKeeper 的原因。

完全分布式HA

服务器规划

技术栈包含

hdfs

hive on spark

presto

doris

superset

azkaban

kafka

fluent\flume

sqoop\kettle\flink-cdc

atlas

禁用swap/selinux

修改 IP/修改主机名/及主机名和 IP 地址的映射

时间同步/设置时区/自动时间同步

关闭防火墙

关闭SELINUX

新建用户

免密登录(先升级openssh)

发送密钥(dw01上执行)

授权

Tencent Kona v8.0.8-GA

腾讯开源的konaJDK,针对大数据场景下优化

解压并重命名至安装地址:/usr/local/java/

zookeeper-3.5.9

解压并重命名至安装地址:/usr/local/zookeeper

apache-hadoop-3.1.3 解压至安装地址:/usr/local/hadoop

修改环境变量

/usr/local/zookeeper/conf

启动zookeeper集群(每台执行)

三台服务器启动

格式化namenode(dw01执行)

启动namenode(dw01上执行)

在[nn2]和[nn3]上分别执行,同步 nn1 的元数据信息

启动nn2 nn3,分别执行

所有节点上启动datanode

将[nn1]切换为 Active

查看状态

配置yarn-site.xml

配置mapred-site.xml

分发配置文件,启动yarn(dw03 启动)

dw03节点

dw01节点

dw01执行

dw03执行

测试样例

启动脚本

HA切换namenode手动

修改yarn显示log的bug


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/481582.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-08
下一篇2023-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存