概述
# 1 含义
使用分布式技术完成海量数据的处理,得到数据背后蕴含的价值。 狭义:大数据是一类技术栈,是一种用来处理海量数据的软件技术体系。 广义:大数据是数字化时代、信息化时代的基础(技术)支撑,以数据为生活赋能。
# 2 特征
# 2.1 体积 (大) Volume
数据体量大
- 采集数据量大
- 存储数据量大
- 计算数据量大
- TB、PB 级别起步
# 2.2 种类 (多) Variety
种类、来源多样化
- 种类:结构化、半结构化、非结构化
- 来源:日志文本、图片、音频、视频
# 2.3 价值 (低) Value
低价值密度
- 信息海量但是价值密度低
- 深度复杂的挖掘分析需要机器学习参与
# 2.4 速度 (快) Velocity
速度快
- 数据增长速度快
- 获得数据速度快
- 数据处理速度快
# 2.5 质量 (优) Veracity
数据的质量
- 数据的准确性
- 数据的可信赖度
从海量的高增长、多类别、低信息密度的数据中挖掘出高质量的结果
- 存储:妥善存储海量待处理数据
- 计算:完成海量数据的挖掘
- 传输:协助各个环节的数据传输
# 3 常见框架
# 3.1 数据存储
# 3.1.1 Apache Hadoop - HDFS
Apache Hadoop 框架内的组件 HDFS 是大数据体系中使用最为广泛的分布式存储技术
# 3.1.2 Apache HBase
Apache HBase 是大数据体系内使用非常广泛的 NoSQL KV 型数据库技术,是基于 HDFS 之上构建的。
# 3.1.3 Apache KUDU
Apache Kudu 同样为大数据体系中使用较多的分布书存储引擎
# 3.1.4 云平台存储组件
如阿里云的 OSS、UCloud 的 US3、AWS 的 S3、金山云的 KS3 等等
S3 也算的话,那是不是可以理解就是对象存储,只是说底层实现是分布式的?
# 3.2 数据技术
# 3.2.1 Apache Hadoop - MapReduce
过时
Apache Hadoop 的 Map Reduce 组件是最早一代的大数据分布式计算引擎,对大数据的发展做出了卓越贡献。
# 3.2.2 Apache Hive
有人用,但不多
Apache Hive 是一款以 SQL 为主要开发语言的分布式计算框架。其底层使用了 Hadoop 的 MapReduce 技术,至今仍活跃在大数据一线,被许多公司使用。
# 3.2.3 Apache Spark
目前主流之一
Apache Spark 是目前全球范围内最火热的分布式内存计算引擎,是大数据体系中的明星计算产品
# 3.2.4 Apache Flink
目前主流之一
Apache Flink 同样也是一款明星级大数据分布式内存计算引擎,特别是在实时计算(流计算)领域,Flink 占据了大多数的国内市场。
# 3.3 数据传输
# 3.3.1 Apache Kafka
目前主流之一
Apache Kafka 是一款分布式的消息系统,可以完成海量规模的数据传输工作。
# 3.3.2 Apache Pulsar
目前主流之一
Apache Pulsar 同样是一款分布式的消息系统。
# 3.3.3 Apache Flume
Apache Flume 是一款流式数据采集工具,可以从非常多的数据源中完成数据采集传输的任务。
# 3.3.4 Apache Sqoop
Apache Sqoop 是一款 ETL 工具,可以协助大数据体系的关系型数据之间进行数据传输。
# 4 Hadoop 框架
某种意义上 大数据 = Hadoop ,大数据不能没有 Hadoop,就像西方不能没有耶路撒冷。
Hadoop 是一个框架,内部可细分为三个组件:
- HDFS 组件:存储组件
- MapReduce 组件:计算组件
- YARN 组件:调度组件
# 4.1 发行版本
# 4.1.1 开源社区版
优点:更新迭代快 缺点:兼容稳定性不周
# 4.1.2 商业发行版
优点:稳定兼容好 缺点:收费、版本更新慢 发行版本:
- CDH:Cloudera 公司出品,目前使用最多的商业版
- HDP:Hortonworks 公司出品,目前被 Cloudera 收购
- 星环:国产商业版,星环公司出品,在国内政企使用较多