本博客将总结记录博主学习大数据的相关知识

Hadoop框架是用来解决数据离线批处理问题的框架,其中最核心的是HDFSMapReduce,HDFS是架构在Hadoop之上的分布式文件系统,MapReduce是架构在Hadoop之上用来做计算的框架。

hadoop两个核心:HDFS和MapReduce

用途:解决分布式存储分布式计算

特点:高可靠性、高效性、可扩展性、成本低(普通PC机都能构建集群)

应用:Google、Facebook等,用于日志处理、批处理、离线处理

HDFS架构

架构说明

  • HDFS Client: 系统使用者,调用HDFS API操作文件;与NameNode交互获取文件元数据;与DataNode交互进行数据读写, 注意:写数据时文件切分由Client完成。
  • NameNode: Master节点(也称元数据节点),是系统唯一的管理者。负责元数据的管理(名称空间和数据块映射信息);配置副本策略;处理客户端请求。
  • DataNode: 数据存储节点(也称Slave节点),存储实际的数据;执行数据块的读写;汇报存储信息给NameNode。
  • Secondary NameNode: 小弟角色,分担大哥NameNode的工作量;是NameNode的冷备份;合并fsimage和fsedits然后再发给NameNode, 注意:在hadoop 2.x 版本,当启用HDFS HA时,将没有这一角色。(详见HDFS HA基本架构)。

架构原则

  • 元数据与数据分离: 文件本身的属性(即元数据)与文件所持有的数据分离。
  • 主/从架构: 一个HDFS集群是由一个NameNode和一定数目的DataNode组成。
  • 一次写入多次读取: HDFS中的文件在任何时间只能有一个Writer。当文件被创建,接着写入数据,最后,一旦文件被关闭,就不能再修改。
  • 移动计算比移动数据更划算: 数据运算,越靠近数据,执行运算的性能就越好,由于HDFS数据分布在不同机器上,要让网络的消耗最低,并提高系统的吞吐量,最佳方式是将运算的执行移到离它要处理的数据更近的地方,而不是移动数据。
最后修改:2021 年 12 月 06 日