文章目录
## 1.Hadoop简介
- hadoop主流版本:
- Apache基金会所开发的分布式系统基础架构(hadoop);
- Cloudera版本(Cloudera’s distribution Including Apache Hadoop,简称“CDH”),企业化版本;
- Hortonworks版本(Hortonworks Data Platform,简称“HDP”),常用版本。
-
hadoop的框架最核心的设计是:
底层的分布式存储(HDFS)和分布式计算(MapReduce)
- HDFS为海量的数据提供了存储。
- MapReduce为海量的数据提供了计算。
-
Hadoop框架包括以下四个模块:
-
hadoop应用场景: 在线旅游、移动数据、电子商务、能源开采与节能、基础架构管理、图像处理、诈骗检测、IT安全、医疗保健。
2.hdfs(分布式存储)
工作机制:
- 客户端创建任务,资源管理器把请求发往nn节点(namenode)
- nn进行任务分配(分配多少个block、复制几份),并将分配节点的地址回传给客户端
- 客户端(数据包的形式)从第一个block往后面的数据节点上开始发送和存储,同时也会把这个数据列表发往datanode节点
- datanode节点把数据列表传递给其它的datanode
- hadoop能够自动感知哪些datanode位于同一机架中,这为数据最终的存储提供了一定的依据。
- HDFS采用了主从(Master/Slave)结构模型,一个HDFS集群是由一个NameNode和若干个Datanode组成的。
- HDFS存储机制保存了多个副本,使系统能够提供容错机制,某一副本丢失或宕机可自动恢复,保证系统高可用性。
- HDFS默认会将文件分割成block
- HDFS采用的是一次写入多次读取的文件访问模型。
- HDFS容错机制:
- 节点失败监测机制:DN每隔3秒向NN发送心跳信号,10分钟收不到,认为DN宕机。
- 通信故障监测机制:只要发送了数据,接收方就会返回确认码。
- 数据错误监测机制:在传输数据时,同时会发送总和校验码。
3.mapreduce
MR有两个阶段组成:Map和Reduce;用户只需实现map()和reduce()两个函数,即可实现分布式计算。
MapReduce的执行过程
Map任务处理
-
覆盖map(),接收<k,v>,将其转换为新的<k,v>输出。
-
对上步输出的<k,v>进行分区(默认分为一个区),对不同分区中的数据进行排序(按照k)、分组(相同key的value放到一个集合中)
-
(可选)对分组后的数据进行归约。
Reduce任务处理
- 多个map任务的输出,按照不同的分区,通过网络copy到不同的reduce节点上。(shuffle)
- 对多个map的输出进行合并、排序。覆盖reduce函数,接收的是分组后的数据,实现自己的业务逻辑,处理后,产生新的<k,v>输出。
- 对reduce输出的<k,v>写到HDFS中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。