Hadoop--简介
大数据,这个词在国内 2012 年才出现 ,指的是处理TB级别以上的数据,在互联网领域中,大数据应用非常广泛。Hadoop
是海量数据的分布式存储和计算平台(这里“海量数据”指的是不低于 TB 级别数据),Hadoop
适合处理海量数据,小数据发挥不了Hadoop
的优势。
认识Hadoop
What Is Apache Hadoop?
The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing.
- 解决问题:
1、海量数据的存储(HDFS)
2、海量数据的分析(MapReduce)
3、资源管理调度(YARN)(2.0 之后出现)
- 具体能做什么?
1、擅长于在廉价机器搭建的集群上进行海量数据(结构化与非结构化)的存储与离线处理
2、hadoop 擅长日志分析
Hadoop的三大核心组件:
HDFS(Hadoop Distributed File System)
:分布式文件系统;MapReduce
:并行计算框架;Yarn
:资源管理平台(2.0 版本增加)。
HDFS
- 分布式易扩展
- 廉价易得
- 高吞吐量
- 高可靠性
是一个主从结构的,有主节点和从节点。主节点只有一个:namenode
,从节点有很多个:datanodes
namenode:
- 接受用户操作请求
- 维护文件系统的目录结构
- 管理文件与block之间的关系,block与datanode之间的关系
datanode
- 负责存储文件
- 文件被分成block存储在磁盘上
- 为保证数据安全,文件会有多个副本
- block:就是把一个大的文件划分为多个块,每块就叫block。然后namenode就需要去管理这些块和文件之间的关系(比如文件块顺序等)。
MapReduce(1.0)
- 大容量高并发
- 封装分布式实现细节
- 大大提高分析效率
主从结构
- 主节点,只有一个:JobTracker
- 从节点,有很多个:TaskTrackers
JobTracker
- 接收Job,负责调度Job的每一个子任务task运行于TaskTracker上。
- 把计算任务分给TaskTrackers执行。
- 监控TaskTracker的执行情况。
TaskTrackers
- 运行在多个节点上的slaver服务。
- TaskTracker主动与JobTracker通信,接收作业。
- 并执行JobTracker分配的每一个计算任务。
Hadoop的特点
- 扩容能力(Scalable):能可靠的存储和处理千兆字节(PB)数据
- 成本低(Economical):可以通过普通机器组成服务集群来分发以及处理数据。这些服务器群总数可达千个节点
- 高效率:通过分发数据,hadoop可以在数据所在的节点上并行地(parallel)处理
- 可靠性:能自动维护多个副本,并且在任务失败后能自动地重新部署(redeploy)计算任务
1.0和2.0区别
- Hadoop 1.0和2.0的区别 主要是2.0对1.0的MapReduce进行了拆分,拆分成了MapReduce和Yarn,当然也之前基础上做了一些改变。上面我们已经讲了MapReduce(1.0),现在我们来讲讲2.0的MapReduce和Yarn。
MapReduce2.0
- MapReduce批处理计算模型 同样是主从结构,主节点,只有一个: MRAppMaster
- MRAppMaster负责:
- 接收客户提交的计算任务
- 把计算任务分给TaskTrackers执行,即任务调度
- 监控TaskTracker的执行情况
Yarn
- 资源的调度和管理平台
主从结构
- 主节点,可以有2个: ResourceManager
- 从节点,有很多个: NodeManager
ResourceManager负责:
- 集群资源的分配与调度
- MapReduce、Storm、Spark等应用,必须实现ApplicationMaster接口,才能被RM管理
NodeManager负责:
- 单节点资源的管理