Hadoop核心组件
整体直观概览
1. 分布式文件系统HDFS
1.1 基本概念
- 将文件切分成指定大小的数据块并以多副本的存储形式存储在多个机器上
- 数据切分, 多副本, 容错等操作对用户是透明的
1.2 图示
1.3 HDFS架构
- Datanode 定期向 Namenode 发 Hearbeat
- 元数据信息: 多份备份
1.4 HDFS的 IO 操作
- 上面的是读
- 客户端先向 NameNode 寻址
- 然后再找 DataNode 拿数据
- 下面的是写
- HDFS 不支持修改, 没有 leader 角色, 不支持并发写, 只能支持非并发的追加
- HBase 支持并发写和修改
- 删除: 删除的是元数据(索引信息)
- Datanode 会定期向 Namenode 发送心跳, 同步信息, 当 Namenode 发现 Datanode 上没有自己存储的信息时,就会把这部分信息删除掉。
1.5 HDFS 副本存放策略
- 复制因子为3时的 存放策略
- 如果写入者在一个 datanode 上, 则把一份拷贝放在本地机器上, 否则随机放到一个 datande 上
- 另一个副本放在不同的(远程)机架的节点上, 最后一个副本存放在同一个机架的不同节点上
- 这一策略削减了机架间的写入流量,通常提高了写入性能
- 复制因子大于3, 则随机确定第4个和其它的副本位置,同时将每个拷贝的数目保持在上限以下(基本上是
(副本数 - 1) / racks + 2
)。
2. 资源调度系统 YARN
2.1 基本概念
- YARN: Yet Another Resource Negotiator
- 负责整个集群资源的管理和调度
- YAEN特点: 扩展性 & 容错性 & 多框架资源统一调度
2.2 图示
3. 分布式计算框架 MapReduce
3.1 基本概念
- 源于Google的MapReduce论文, 论文发表于2004年12月
- MapReduce是Google MapReduce的克隆版
- MapReduce的特点: 扩展性 & 容错性 & 海量数据离线处理
3.2 图示
Hadoop优势
1. 高可靠性
- 数据存储: 数据块多副本
- 数据计算: 重新调度作业计算
2. 高扩展性
- 存储/计算资源不够时, 可以横向的线性扩展机器
- 一个集群中可以包含数以千计的节点
3. 其它
- 存储在廉价机器上, 降低成本
- 成熟的生态圈
Hadoop的发展史
Hadoop生态系统
1. 图示
2. 特点
- 开源, 社区活跃
- 囊括了大数据处理的方方面面
- 成熟的生态圈
Hadoop常用发行版及选型
- Apache Hadoop
- CDH : Cloudera Distributed Hadoop (国内用的比较多)
- HDP : Hortonworks Data Platform
使用:
CDH使用占比 60-70
hadoop: hadoop-2.6.0-cdh5.7.0
hive : hive-1.1.0-cdh5.7.0