【大数据】大数据学习笔记(1)

柔情痞子 提交于 2019-12-19 14:08:27

【推荐】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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!