(分布式存储系统HDFS【redundant reliable storage】+分布式计算框架MapReduce【data process】+资源管理系统Yarn【cluste resource management】)
(1)分布式存储系统HDFS(Hadoop Distributed File System)
基本原理:将文件切分成等大的数据块,存储到多台机器上,将数据切分、容错、负载均衡等功能透明化,可将HDFS看成是一个容量巨大、具有高容错性的磁盘。
应用场景:海量数据的可靠性存储
HDFS优点:高容错性(数据自动保存多个副本,副本丢失后自动恢复);
适合批处理(移动计算而非数据、数据位置暴露给计算框架);
适合大数据处理(GB、TB、甚至PB级数据、百万规模以上的文件数量、10K+节点规模);
默认数据块大小为64MB,可配置,如果文件大小不到64MB,则单独存成一个block;
默认每个block有三个副本;
HDFS写流程如下——
HDFS读流程如下——
(2)资源管理系统YARN(Yet Another Resource Negotiator)
Hadoop2.0新增系统,负责集群的资源管理和调度,使得多种计算框架运行在一个集群中。
YARN基本架构如下——
YARN运行过程剖析如下——
(3)分布式计算框架MapReduce
具有良好的扩展性、高容错性,适合PB级以上海量数据的离线处理。
将计算过程分为两个阶段,Map和Reduce,Map阶段并行处理输入数据,Reduce阶段对Map结果进行汇总。运用Shuffle连接Map和Reduce两个阶段(Map Task将数据写到本地磁盘,Reduce Task从每个Map Task上读取一份数据)
MapReduce架构如下——
MapReduce运行流程如下——
(4)Hadoop2.0生态系统
(5)Pig
构建在Hadoop上的数据仓库,定义一种数据流语言——Pig Latin,通常用于离线分析。
(6)Mahout(数据挖掘库)
基于Hadoop的机器学习和数据挖掘的分布式计算框架,实现了三大类算法:推荐、聚类、分类。
(7)Zookeeper(分布式协作服务)
解决分布式环境下数据管理问题——统一命名、状态同步、集群管理、配置同步
(8)Sqoop(数据同步工具)
连接Hadoop与传统数据库之间的桥梁,支持多种数据库,包括MySQL、DB2等;
插拔式,用户可根据需要支持新的数据库;
本质上是一个MapReduce程序,充分利用MR分布式并行的特点与MR的容错性特点;
(9)Flume(日志收集工具)
(10)Oozie(作业流调度系统)
(1)HBase数据模型
Table:表——类似于传统数据库中的表
Column Family:列簇
Row Key:行键——Table的主键
Timestamp:时间戳——每行数据都对应一个时间戳
基于MR的数据仓库,最初用于解决海量结构化的日志数据统计问题,ETL工具;构建在Hadoop上的数据仓库;
Hive定义了一种类SQL查询语言——HQL
通常用于进行离线数据处理(采用MapReduce)
日志分析(统计网站一个时间段的pv、uv),大部分互联网公司使用Hive进行日志分析,包括百度、淘宝
多维度数据分析,
流式计算,是指被处理的数据像流水一样不断地流入系统,而系统需针对每条数据进行实时处理和计算,并永不停止(直到用户显式杀死进程);
更多大数据相关技术,欢迎一起讨论~
————————一个唯美食与远方不可辜负的程序媛——————————————