大数据技术
"4V":数据量大、数据类型繁多(结构化/非结构化数据)、数据处理速度快(秒级响应)、价值密度低
大数据带来的思想转变:
效率而非精确度(抽样——>全样)
相关而非因果,注重相关性分析而非因果分析
关键技术:数据采集、数据存储与管理、数据处理与分析、数据隐私与安全
分布式存储——>解决数据存储问题:
HDFS,HBase,NoSQL...
MapReduce,Spark,Flink...
典型的计算模式:(不同的业务场景用不同的技术解决)
批处理:针对大规模数据的批量处理(MapReduce,spark)
流计算:流数据需要实时处理,给出实时响应(Storm,Flume)
图计算:图结构数据的处理(Pregel,GraphX)
查询分析计算:大规模数据的存储管理和查询分析(Dremel,Hive,Cassandra)
代表性的大数据技术:
1.Hadoop:

组件:
分布式文件系统(HDFS):面向批处理,海量分布式文件存储(基于磁盘的分布式文件系统)。
资源调度和管理框架(YARN):提供计算所需CPU和内存资源。实现“一个集群多个计算框架”
例:三个框架,三个管家,相互竞争抢占资源——>一个管家(YARN),统一分配CPU、内存资源
分布式计算式框架(MapReduce):采用“分而治之”,将任务划分为多个子任务。

数据仓库(Hive):本质是一个编程接口,并不保存数据,数据保存在HDFS,将SQL语句自动转换对HDFS的查询分析,得到结果。
数据流处理(Pig):数据清洗
数据挖掘库(Mahout):实现常用数据挖掘算法分类、聚类、回归等。用MapReduce实现算法库
Ambari:安装、部署、配属和管理工具
分布式协作服务(Zookeeper):管家管理从节点,分布式协调
分布式数据库(HBase):实时性计算
日志收集(Flume):
数据库ETL(Sqoop):ETL(抽取、转换、加载),完成Hadoop系统组件之间的互通。HDFS<--导入/导出-->mysql
2.Spark:
Spark也是一个生态系统,不具备存储能力,是一个计算框架,计算模型:基于数据片集合的微批处理模型。
Spark Core:完成RDD应用开发,满足企业批处理需求
Spark SQL:分析关系数据
Spark Streaming/Structured Streaming:进行流计算
MLlib:机器学习算法库
GraphX:编写图计算应用程序
3.Hadoop VS Spark
Hadoop(MapReduce)表达能力有限,Map函数和Reduce函数降低了分布式应用开发的复杂度,也限制了表达能力。并非所有问题都能归结于Map函数、Reduce函数。
MapReduce磁盘IO开销大,数据从磁盘来,到磁盘中去。迭代算法时,磁盘IO开销大。
MapReduce延迟高,1.读/写磁盘延迟 2.衔接延迟:等待Map全部完成。
Spark本质的计算模式也是MapReduce,但是操作类型更多,表达能力更强;提供内存计算,能够不落磁盘尽量在内存操作;DAG(有向无环图)任务调度机制。
4.Flink:
是一个和spark同类型的计算框架。计算模型:基于操作符的连续流模型。实时性好于spark的批处理模型。

浙公网安备 33010602011771号