大数据分布式
一、数据导论
1.1.数据是什么?
数据:一种可以被鉴别的对客观事件进行记录的符号。简单来说就是:对人类的行为及产生的事件的一种记录。生活中无时无刻不在产生数据:
1.2.数据对于现实生活有什么影响?
对于京东而言,数据可以更好的了解客户
1.3.数据有什么价值?
- 对数据的内容进行深入分析,可以更好的帮助了解事和物在现实世界的运行规律
- 比如,购物的订单记录(数据)可以帮助平台更好的了解消费者,从而促进交易。
二、大数据诞生
2.1.大数据的发展
大数据的诞生和信息化以及互联网的发展是密切相关的。
⑴.早期的计算机(上世纪 70 年代之前)大多数是相互独立的,各自处理各自的数据
⑵.上世纪 70 年代后,逐步出现了基于 TCP/IP 协议的小规模的计算机互联互通。但多数是军事、科研等用途。
⑶.上世纪 90 年代左后,全球互联的互联网出现。个人、企业均可参与其中,真正逐步的实现了全球互联。
⑷.在 2000 年后,互联网上的商业行为剧增,现在知名的互联网公司(谷歌、 AWS 、腾讯、阿里等)也是在这个年代开始起步。在互联网参与者众多的前提下,商业公司、科研单位等,所能获得的数据量也是剧增。
2.2.大数据的诞生
2.2.1.为什么需要大数据技术?
剧增的数据量和羸弱的单机性能,让许多科技公司开始尝试以数量来解决问题。
剧增的数据量,和羸弱的单机性能,让许多科技公司开始尝试以数量来解决问题。在这个过程中,分布式处理技术诞生了。
2008年之前在当时较为”高端”的分布式技术基本上还处于大企业内部专用且不够成熟
2.2.2.Hadoop
Apache Hadoop 是一款开源的分布式处理技术栈为业界提供了:
- 基于 Hadoop HDFS 的:分布式数据存储技术
- 基于 Hadoop MapReduce 的:分布式数据计算技术
- 基于 Hadoop YARN 的:分布式资源调度技术
Apache Hadoop 的出现具有非常重大的意义:
- 为业界提供了”第一款”企业级开源大数据分布式技术解决方案
- 从 Hadoop 开始,大数据体系逐步建成,各类大数据技术不断出现
Apache Hadoop 开源技术栈说明:
- Apache HBase NoSQL 数据库
- Apache Kafka 分布式消息队列
- Apache Hive 分布式 SQL 平台
- Apache Spark 分布式内存计算
- Apache Flume 流式数据传输工具
- Apache Flink 流计算平台
三、大数据概述
3.1.什么是大数据?
通过大数据的诞生可以发现:大数据的出现,本质上是为了解决海量数据处理的难题
大数据就是:使用分布式技术完成海量数据的处理,得到数据背后蕴含的价值。
- 狭义上:大数据是一类技术栈,是一种用来处理海量数据的软件技术体系。
- 广义上:大数据是数字化时代、信息化时代的基础(技术)支撑,以数据为生活赋能。
3.2.大数据的特征
大数据有 5 个主要特征,称之为: 5V 特性
从海量的高增长、多类别、低信息密度的数据中挖掘出高质量的结果
3.3.大数据的核心工作
整个大数据学习的技术也是围绕着这三点来进行的,即:
- 分布式存储相关技术栈
- 分布式计算相关技术栈
- 海量数据传输相关技术栈
四、大数据软件生态
4.1.大数据的核心工作
- 存储:妥善保存海量待处理数据
- 计算:完成海量数据的价值挖掘
- 传输:协助各个环节的数据传输
4.2.大数据软件生态
- 存储: Apache Hadoop HDFS 、 Apache HBase 、 Apache Kudu 、云平台
- 计算: Apache Hadoop MapReduce 、 Apache Spark 、 Apache Flink、 Apache Hive
- 传输: Apache Kafka 、 Apache Pulsar 、 Apache Flume 、 Apache Sqoop
大数据体系内的软件种类还是非常多的:
4.3.数据存储
Apache Hadoop - HDFS:Apache Hadoop 框架内的组件 HDFS 是大数据体系中使用最为广泛的分布式存储技术
4.4.数据计算
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.5.数据传输
Apache Kafka:Apache Kafka 是一款分布式的消息系统,可以完成海量规模的数据传输工作。Apache Kafka 在大数据领域也是明星产品
五、Apache Hadoop 概述
5.1.什么是 Hadoop?
Hadoop 是 Apache 软件基金会下的顶级开源项目,用以提供:
- 分布式数据存储
- 分布式数据计算
- 分布式资源调度
为一体的整体解决方案。Apache Hadoop 是典型的分布式软件框架,可以部署在 1 台乃至成千上万台服务器节点上协同工作。个人或企业可以借助 Hadoop 构建大规模服务器集群,完成海量数据的存储和计算。
5.2.为什么学习 Hadoop?
近 10 年来,大数据技术体系一词一直和 Hadoop 是划上等号的,提起大数据技术基本就是在提及 Hadoop 。随着近些年的发展,越来越多的新技术框架的出现,给大数据技术体系带来了丰富的生态,但是拥有元老地位的Hadoop 依旧非常重要。为什么学习 Hadoop 有如下几个至关重要的原因:
- Hadoop 是最早的一批大数据技术框架,在市面上拥有极高的占有率和庞大的用户群体。
- Hadoop 在大数据体系内,技术难度相对较低,非常适合作为大数据学习的入门技术栈。
所以,学习 Hadoop 不仅仅因为其适合入门,同时也可以为大数据学习打下良好的基础。
5.3.Hadoop 的功能
通常意义上, Hadoop 是一个整体,其内部还会细分为三个功能组件,分别是:
Hadoop 是一个集合了:存储、计算、资源调度为一体的大数据分布式框架
5.4.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.5.Hadoop 发行版本
Hadoop 发行版本(原生 Hadoop 体系)
- Apache 开源社区发行也是官方发行版本
- 优点:更新迭代快
- 缺点:兼容稳定性不周
商业公司发行(商业公司二次发行)
- 基于 Apache 开源协议,某些服务需要收费
- 优点:稳定兼容好
- 缺点:收费 版本更新慢
开源社区版本:https://hadoop.apache.org/
商业发行版本
- CDH ( Cloudera's Distribution, including Apache Hadoop ) Cloudera 公司出品,目前使用最多的商业版
- HDP ( Hortonworks Data Platform ), Hortonworks 公司出品,目前被 Cloudera 收购
- 星环,国产商业版,星环公司出品,在国内政企使用较多