版本说明
当前版本号[20230506]。
版本 | 修改说明 |
---|---|
20230506 | 初版 |
知识总览图
目录
文章目录
第一章 大数据分布式
数据导论
数据是什么
数据:一种可以被鉴别的对客观事件进行记录的符号。
简单来说就是:**对人类的行为及产生的事件的一种记录。**包括我们的日常活动所产生的信息记录都是数据。
数据的价值
•对数据的内容进行深入分析,可以更好的帮助了解事和物在现实世界的运行规律
•比如,购物的订单记录(数据)可以帮助平台更好的了解消费者,从而促进交易。
大数据技术栈
对超大规模的数据进行处理并挖掘出数据背后的价值的技术体系
大数据诞生
大数据技术体系
大数据的诞生和信息化以及互联网的发展是密切相关的。
早期的计算机(上世纪70年代之前)
大多数是相互独立的,各自处理各自的数据
上世纪70年代后,逐步出现了基于TCP/IP协议的小规模的计算机互联互通。
但多数是军事、科研等用途。
上世纪90年代左后,全球互联的互联网出现。
个人、企业均可参与其中,真正逐步的实现了全球互联。
在2000年后,互联网上的商业行为剧增
现在知名的互联网公司(谷歌、AWS、腾讯、阿里等)也是在这个年代开始起步。
在互联网参与者众多的前提下,商业公司、科研单位等,所能获得的数据量也是剧增。
剧增的数据量,和羸弱的单机性能,让许多科技公司开始尝试以数量来解决问题。
在这个过程中,分布式处理技术诞生了。
分布式处理技术
在数据量巨大的基础下,以服务器的数量来解决大规模数据处理问题。
逐步演化:(存->用->传)
大规模服务器集群下的大规模数据存储
—>大规模服务器集群下的大规模数据计算
—>大规模服务器集群下的大规模数据传输技术
2008年之前,这些在当时较为”高端”的分布式技术基本上还处于大企业内部专用且不够成熟。
2008年,Apache Hadoop开源,广大企业拥有了成熟的、开源的、分布式数据处理解决方案。
Apache Hadoop对大数据体系的意义
Apache Hadoop 是一款开源的分布式处理技术栈
为业界提供了
•基于Hadoop HDFS的:分布式数据存储技术
•基于Hadoop MapReduce的:分布式数据计算技术
•基于Hadoop YARN的:分布式资源调度技术
Apache Hadoop的出现具有非常重大的意义:
•第一款获得业界普遍认可的开源分布式解决方案
•让各类企业都有可用的企业级开源分布式解决方案
•一定程度上催生出了众多的大数据体系技术栈
•从Hadoop开始(2008年左右)大数据开始蓬勃发展
大数据概述
大数据及其特征和核心工作内容
什么是大数据
大数据的出现,本质上是为了解决海量数据的处理难题。
大数据就是:使用分布式技术完成海量数据的处理,得到数据背后蕴含的价值。【狭义的、技术思维的】
而广义的是数字化时代。
简单概括:
- 狭义上:大数据是一类技术栈,是一种用来处理海量数据的软件技术体系。
- 广义上:大数据是数字化时代、信息化时代的基础(技术)支撑,以数据为生活赋能。
大数据的特征
大数据有5个主要特征,称之为:5V特性,分别是:体积、种类、价值、速度、质量。
从海量的高增长、多类别、低信息密度的数据中挖掘出高质量的结果
大数据的核心工作
•存储:妥善保存海量待处理数据
•计算:完成海量数据的价值挖掘
•传输:协助各个环节的数据传输
大数据软件生态
大数据技术框架及其负责的场景
数据主体上分成如下三大核心工作体系。而大数据软件生态,也基本上围绕着三大工作体系。
数据存储
- Apache Hadoop - HDFS
Apache Hadoop框架内的组件HDFS是大数据体系中使用
最为广泛的分布式存储技术
- Apache HBase
Apache HBase是大数据体系内使用非常广泛的NoSQL KV型数据库技术
HBase是基于HDFS之上构建的。
- Apache KUDU
Apache Kudu同样为大数据体系中使用较多的分布式存储引擎
- 云平台存储组件
除此以外,各大云平台厂商也有相应的大数据存储组件,如阿里云的OSS、UCloud的US3、AWS的S3、金山云的KS3等等
数据计算
- Apache Hadoop - MapReduce
Apache Hadoop的MapReduce组件是最早一代的大数据分布式计算引擎
对大数据的发展做出了卓越的贡献
- Apache Hive
Apache Hive是一款以SQL为要开发语言的分布式计算框架。其底层使用了Hadoop
的MapReduce技术
Apache Hive至今仍活跃在大数据一线,被许多公司使用。
- Apache Spark
Apache Spark是目前全球范围内最火热的分布式内存计算引擎。
是大数据体系中的明星计算产品
- Apache Flink
Apache Flink同样也是一款明星级的大数据分布式内存计算引擎。
特别是在实时计算(流计算)领域,Flink占据了大多数的国内市场。
数据传输
- Apache Kafka
Apache Kafka是一款分布式的消息系统,可以完成海量规模的数据传输工作。
Apache Kafka在大数据领域也是明星产品
- Apache Pulsar
Apache Pulsar同样是一款分布式的消息系统。
在大数据领域同样有非常多的使用者。
- Apache Flume
Apache Flume是一款流式数据采集工具,可以从非常多的数据源中
完成数据采集传输的任务。
- Apache Sqoop
Apache Sqoop是一款ETL工具,可以协助大数据体系和关系型数据库
之间进行数据传输。
Apache Hadoop概述
Apache Hadoop框架
Hadoop是Apache软件基金会下的顶级开源项目,用以提供:
•分布式数据存储
•分布式数据计算
•分布式资源调度
为一体的整体解决方案。
Apache Hadoop是典型的分布式软件框架,可以部署在1台乃至成千上万台服务器节点上协同工作。
个人或企业可以借助Hadoop构建大规模服务器集群,完成海量数据的存储和计算。
Hadoop的功能
通常意义上,Hadoop是一个整体,其内部还会细分为三个功能组件,分别是:
所以:Hadoop是一个集合了:存储、计算、资源调度为一体的大数据分布式框架
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》:谷歌结构化数据存储系统