大数据技术

大数据概念:

"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的批处理模型。

  Flink支持增量迭代,具有对迭代自动优化的功能。是其性能优于spark和Hadoop的主要原因。

posted @ 2022-02-21 20:48  hungry_J  阅读(9)  评论(0)    收藏  举报