【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
一、Hadoop的简介
1.Hadoop:一个开源,高可靠,可扩展的分布式计算框架
2.Hadoop解决的问题:
(1)海量数据的存储(HDFS):分布式文件系统,有两个好处,
(a)可以动态添加存储系统,这样存储就不会受到限制
(b)元数据备份,这里默认备份三分,可以修改
(2)海量数据的分析(MapReduce):分而自知,可以把数据分成多分,并行分析处理
(3)分布式资源调度(Yarn):集群之间的调度,比如:CPU、内存等
3.特点
-
扩容能力比较强
-
成本低(普通PC机都可以)
-
高效率(Hadoop会对数据进行分片处理)
-
可靠性(自动备份,自动找回数据等功能)
4.应用场景
- 日志分析
- 基于海量数据的在线应用
- 推荐系统
- 计算广告
- 复杂计算
- 网盘
- 搜索引擎等......
5.Hadoop项目主要模块包括以下四个模块
(1)Hadoop Common:为其他的Hadoop模块提供基础设施
(2)Hadoop HDFS:一个可靠、吞吐量的分布式文件系统
(3)Hadoop MapReduce:一个分布式的离线并行计算框架
(4)Hadoop YARN:一个新的MapReduce框架,任务调度与资源管理
二、MapReduce的使用
1.MapReduce(分布式计算框架)
(1)Map任务处理
- 读取文件的内容,解析成key、Value键值对
- 重写map方法,编写业务逻辑输出新的key、value键值对
- 对输出的key、Value进行分区(Partitioner类)
- 对数据按照key进行排序、分组。相同key的value放到一个集合中
(2)Reduce任务处理
- 对多个map任务的输出,按照不同的分区,通过网络copy到不同的ruduce节点。
- 对多个map任务的输出进行合并、排序。写reduce函数自己的逻辑,对输入的key、 value处理,转换成新的key、Value输出。
- 把reduce的输出保存到文件中。
转载请注明出处:
【定陶黄公子】
https://my.oschina.net/u/2547914/blog/806609
来源:oschina
链接:https://my.oschina.net/u/2547914/blog/806609