文章目录
- 一 数据导论
- 二 大数据的诞生
- 三 大数据概论
- 3.1 大数据的5V特征
- 3.2 大数据的工作核心
- 四 大数据软件生态
- 4.1 数据存储软件
- 4.2 数据计算软件
- 4.3 数据传输软件
- 五 Apache Hadoop概述
- 5.1 Apache Hadoop框架
- 5.2 Hadoop的功能
- 5.3 Hadoop的发展
- 5.4 Hadoop发行版本
一 数据导论
- 数据:一种可以被鉴别的对客观事件进行记录的符号。简单来说就是:对人类的行为及产生的事件的一种记录。
- 数据的价值:数据的背后都会隐藏着巨大的价值,丰富的数据支撑可以让我们更好的了解,事和物在现实世界的运行规律
- 大数据时代:当下时代已经是数据的时代,数据非常重要并且蕴含巨大的价值
- 大数据技术栈:对超大规模的数据进行处理并挖掘出数据背后的价值的技术体系
二 大数据的诞生
- 大数据的诞生和信息化以及互联网的发展是密切相关的。
- 早期的计算机(上世纪70年代之前)大多数是相互独立的,各自处理各自的数据
- 上世纪70年代后,逐步出现了基于TCP/IP协议的小规模的计算机互联互通。但多数是军事、科研等用途
- 上世纪90年代左后,全球互联的互联网出现。个人、企业均可参与其中,真正逐步的实现了全球互联
- 在2000年后,互联网上的商业行为剧增。在互联网参与者众多的前提下,商业公司、科研单位等,所能获得的数据量也是剧增。
- 剧增的数据量,和羸弱的单机性能,让许多科技公司开始尝试以数量来解决问题。
- 2008年之前,这些在当时较为”高端”的分布式技术基本上还处于大企业内部专用且不够成熟。
- 2008年 Apache Hadoop开源广大企业拥有了成熟的、开源的、分布式数据处理解决方案
Apache Hadoop 是一款开源的分布式处理技术栈为业界提供了
- 基于Hadoop HDFS的:分布式数据存储技术
- 基于Hadoop MapReduce的:分布式数据计算技术
- 基于Hadoop YARN的:分布式资源调度技术
Apache Hadoop的出现具有非常重大的意义: - 为业界提供了”第一款”企业级开源大数据分布式技术解决方案
- 从Hadoop开始,大数据体系逐步建成,各类大数据技术不断出现
三 大数据概论
- 大数据的出现,本质上是为了解决海量数据的处理难题。
- 大数据就是:使用分布式技术完成海量数据的处理,得到数据背后蕴含的价值。
- 狭义上:大数据是一类技术栈,是一种用来处理海量数据的软件技术体系。
- 广义上:大数据是数字化时代、信息化时代的基础(技术)支撑,以数据为生活赋能。
3.1 大数据的5V特征
3.2 大数据的工作核心
- 大数据的核心工作其实就是:从海量的高增长、多类别、低信息密度的数据中挖掘出高质量的结果
四 大数据软件生态
大数据的核心工作:
- 存储:妥善保存海量待处理数据
- 计算:完成海量数据的价值挖掘
- 传输:协助各个环节的数据传输
- 所以大数据软件生态也是围绕工作重心展开的
4.1 数据存储软件
- Apache Hadoop - HDFS
Apache Hadoop框架内的组件HDFS是大数据体系中使用最为广泛的分布式存储技术
- Apache HBase
Apache HBase是大数据体系内使用非常广泛的NoSQL KV型数据库技术HBase是基于HDFS之上构建的。
- Apache KUDU
Apache Kudu同样为大数据体系中使用较多的分布式存储引擎
- 云平台存储组件
各大云平台厂商也有相应的大数据存储组件,如阿里云的OSS、UCloud的US3、AWS的S3、金山云的KS3等等
4.2 数据计算软件
- Apache Hadoop - MapReduce
- Apache Hadoop的MapReduce组件是最早一代的大数据分布式计算引擎对大数据的发展做出了卓越的贡献
- Apache Hive
- Apache Hive是一款以SQL为要开发语言的分布式计算框架。其底层使用了Hadoop的MapReduce技术
- Apache Hive至今仍活跃在大数据一线,被许多公司使用
- Apache Spark
- Apache Spark是目前全球范围内最火热的分布式内存计算引擎。是大数据体系中的明星计算产品
- Apache Flink
- Apache Flink同样也是一款明星级的大数据分布式内存计算引擎。特别是在实时计算(流计算)领域,Flink占据了大多数的国内市场。
4.3 数据传输软件
- Apache Kafka
- Apache Kafka是一款分布式的消息系统,可以完成海量规模的数据传输工作。
- Apache Kafka在大数据领域也是明星产品
- Apache Pulsar
- Apache Pulsar同样是一款分布式的消息系统。在大数据领域同样有非常多的使用者。
- Apache Flume
- Apache Flume是一款流式数据采集工具,可以从非常多的数据源中完成数据采集传输的任务。
- Apache Sqoop
- Apache Sqoop是一款ETL工具,可以协助大数据体系和关系型数据库之间进行数据传输
五 Apache Hadoop概述
5.1 Apache Hadoop框架
- Hadoop是Apache软件基金会下的顶级开源项目,用以提供:分布式数据存储、分布式数据计算、分布式资源调度为一体的整体解决方案。
- Apache Hadoop是典型的分布式软件框架,可以部署在1台乃至成千上万台服务器节点上协同工作。个人或企业可以借助Hadoop构建大规模服务器集群,完成海量数据的存储和计算。
5.2 Hadoop的功能
- 通常意义上,Hadoop是一个整体,其内部还会细分为三个功能组件,分别是:
- Hadoop是一个集合了:存储、计算、资源调度为一体的大数据分布式框架
5.3 Hadoop的发展
- Hadoop创始人:Doug Cutting
- Hadoop起源于Apache Lucene子项目:Nutch
- Nutch的设计目标是构建一个大型的全网搜索引擎。
- 遇到瓶颈:如何解决数十亿网页的存储和索引问题
- Google三篇论文
- 《The Google file system》:谷歌分布式文件系统GFS
- 《MapReduce: Simplified Data Processing on Large Clusters》:谷歌分布式计算框架MapReduce
- 《Bigtable: A Distributed Storage System for Structured Data》:谷歌结构化数据存储系统
5.4 Hadoop发行版本
- Apache开源社区版本
- 商业发行版本
- CDH(Cloudera’s Distribution, including Apache Hadoop) Cloudera公司出品,目前使用最多的商业版
- HDP(Hortonworks Data Platform),Hortonworks公司出品,目前被Cloudera收购
- 星环,国产商业版,星环公司出品,在国内政企使用较多