大数据
所谓大数据,就是如下几个特点的数据,IBM用5个V来表述它:Volume、Velocity、Variety、Value、Veracity。
- Volume: 巨大的数据量 ,集中储存/集中计算已经无法处理巨大的数据量。
- Velocity:数据增长速度快,用户基数庞大/设备数量众多/实时海量/数据指数级别增长。
- Variety:非结构化数据多样性。
- Value:数据的价值密度低。
- Vercity:数据的真实性。
Hadoop
Hadoop是开源的大数据框架,分布式计算的解决方案。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。可以说 Hadoop= HDFS + MapReduce 。
HDFS
HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。HDFS的架构如图。
HDFS由三个“组件”构成:Block,NameNode,DataNode。
Block(数据块)是抽象快而非整个文件作为存储单元。默认为64M,一般设置为128M,备份为3份。
NameNode用于管理文件系统的命名空间,存放文件元数据,维护文件系统的所有文件科目了,文件和数据块的映射;记录每个文件中各块数据节点信息。
DataNode存储并检索数据块;向NameNode更新存储快列表。
HDFS的优点
- 适合大文文件存储,具有副本策略;
- 在廉价机器上可以构建,有一定的容错和恢复机制;
- 支持流式访问,一次写入多次读取最高效率。
HDFS的优点
- 不适合大量小文件存储;
- 不适合并发写入;
- 不支持文件随即修改;
- 不支持随机读等低延时访问。
Tips对于小文件问题,Hadoop本身也提供了Hadoop Archive,Sequence file和CombineFileInputFormat
HDFS的的写入过程
- 客户端向NameNode发起写数据请求;
- 分块写入DataNode节点,DataNode自动完成副本备份;
- DataNode向NameNode汇报存储完成,NameNode通知客户端完成。
HDFS的读取过程
- 客户端向NameNode请求;
- NameNode找出距离最近的DataNode节点信息;
- 客户端从DataNode分块下载文件。
MapReduce编程模型
- 输入一个大文件通过Split之后,将其分为多个分片;
- Map方法把每个分片由单独的机器去处理;
- Reduce将每个机器计算的结果进行汇总并得到最终的结果。
YARN
YARN是是Hadoop的资源管理器。由于hadoop1.0只支持MapReduce任务、资源利用率低。Hadoop2.0中加入YARN使得hadoop中的编程模型有了除MapReduce外的更多选择,并且多种应用程序如MapReduce、Spark可以使用同一个数据集。
ResourceManager
- 分配和调度资源;
- 启动并监控ApplicationMaster;
- 监控NodeManager。
ApplicationMaster
- 为MR类型的程序申请资源,并分配给内部任务;
- 负责数据的切分;
- 监控任务的执行以及容错。
NodeManager
4. 管理单个节点的资源;
5. 处理来自ResourceManager的命令;
6. 处理来自ApplicationMasster的命令。
Hadoop生态圈
HBase
- HBase是分布式数据库;
- 它利用HDFS作为文件存储系统,支持MR程序读取数据;
- 存储非结构化和半结构化数据和结构化数据。
HBase的三个关键属性
RowKey:数据唯一标识,按字典排序;
Column Family:列族,最多不超过三个;
TimeStamp:时间戳,支持多版本数据同时存在。
Spark
- 基于内存的大数据并行计算框架;
- 兼容HDFS,HIVE等数据源;
- 弹性分布式数据集RDD;
- 基于事件驱动,通过线程池复用线程提高性能。
参考
慕课网叁金老师视频课程https://www.imooc.com/learn/928
.
.
.
.
.
.
桃花仙人种桃树,又摘桃花换酒钱_