Hadoop 初识
2018-05-21 本文已影响37人
沐小晨曦
Hadoop的前世今生
Google大数据技术
- MapReduce
- BigTable
- GFS
革命性的变化:
- 成本降低,能用PC机,就不用大型机和高端存储。
- 软件容错硬件故障视为常态,通过软件保证可靠性
- 简化并行分布式计算,无需控制节点同步和数据交换
Hadoop的功能与优势
Hadoop是开源的分布式存储和分布式计算平台。
核心组成:
HDFS:分布式文件系统,存储海量的数据
MapReduce:并行处理框架,实现任务分解和调度
功能:
搭建大型数据仓库,PB级数据的存储、处理、分析、统计等业务。
优势:
- 高扩展
- 低成本
- 成熟的生态圈
HDFS 分布式文件系统
HDFS设计架构
-
块(Block)
HDFS的文件被分成块进行存储,HDFS块的默认大小为64MB,块是文件存储处理的逻辑单元。
-
NameNode
管理节点,存放文件元数据:
- 文件和数据块的映射表
- 数据块与数据节点的映射表
-
DataNode
工作节点,,存放数据块。
HDFS中数据管理与容错
-
数据块副本
image -
心跳检测
image -
二级NameNode
image
HDFS中文件的读写操作
-
读取文件的流程
客户端发起文件读取请求,把文件名、路径告诉NameNode,NameNode查询元数据,根据元数据读取Blocks,下载重装。
-
写入文件的流程
文件先拆分为块,NmaeNode找到可用空间,返回DataNodes,然后写入Blocks,写入Blocks时要进行流水线复制,复制完成后更新元数据。
HDFS的特点
- 数据冗余,硬件容错
- 流式的数据访问
- 适合存储大文件
适合数据批量读写,吞吐量高;不适合交互式应用,低延迟很难满足;适合一次写入多次读取,顺序写入;不支持多用户并发写相同文件。
MapReduce 并行处理框架
运行原理
分而治之,一个大任务分成多个小的子任务(map),并行执行后,合并结果(reduce)
运行流程
-
Job & Task
一个Job(作业)会被分为多个Task(任务),Task可以分为MapTask和ReduceTask
-
JobTracker
- 作业调度
- 分配任务、监控任务执行进度
-
TaskTracker
MapReduce的容错机制
- 重复执行
- 推测执行
WordCount执行过程
image