大数据技术概况

 

大数据时代的带来意味着咱们生活水平的提升算法

大数据时代的三次浪潮?数据库

  在1980年左右,我的计算机开始出现相对来讲信息能够更好的处理了。编程

  在1995年左右,互联网开始普及,为用户之间的信息传输带来了很大的便利。安全

  到了2010年,信息量开始爆炸,因此出现了物联网,云计算,大数据等热门行业。网络

是什么在背后支撑着大数据统领整个世纪呢?数据结构

  一个是存储量增大,另外一个是CPU计算能力的提升,还有一方面是咱们网络宽带速度的增长。架构

说到这里,那什么是大数据呢?框架

这里用四化来归纳。机器学习

  大量化:数据量的大大增长数据结构和算法

  多样化:数据的类型多样,也能够泛泛统称为结构化数据和非结构化数据。

  价值化:价值密度低可是商业价值高好比说在一个监控视频中,可能说有用的数据就那一两秒可是商业价值很大。

  快速化:数据的处理速度很是之快。

 

大数据技术层面分解:

  数据采集:利用工具将数据进行抽取,转换最终加载到数据仓库或数据集市中,固然也能够获取实时采集的数据进行实时处理分析。

  数据存储管理:利用分布式文件系统,数据仓库,关系型数据库等对数据进行存储管理。

  数据处理分析:利用分布式并行计算结合数据结构和算法对海良数据进行处理分析。最终对数据进行可视化方便人们更好的理解分析数据。

  数据隐私和安全:创建隐私数据保护体系来保护我的隐私和数据安全。

 

              两大核心技术(重点):

  分布式存储                                                                              分布式计算

  GFS/HDFS                    

  HBase                        MapReduce

  NoSQL(键值,图形,文档数据库)

  NewSQL

大数据计算分为几种方式?

  

现在比较火热的大数据技术有哪些?

  Hadoop,Spark,Flink,Beam等等

Hadoop是什么鬼?

  Hadoop是一个开源框架,可编写和运行分布式应用处理大规模数据。 Hadoop框架的核心是HDFS和MapReduce。其中 HDFS 是分布式文件系统,MapReduce 是分布式数据处理模型和执行环境。

Hadoop2.0生态系统以下:

Hadoop的核心:

HDFS(分布式存储)

  开源于Google的GFS。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。底层自行百度吧

Mapreduce(分布式计算框架)

 全称Hadoop MapReduce,用以进行大数据量的计算。其中Map对数据集上的独立元素进行指定的操做,生成键-值对形式中间结果。
 
================================map端=================================
  输入数据进行分片以后,分片的大小跟原始的文件大小、文件块的大小有关。每个分片对应的一个map任务。 

map任务在执行的过程当中,会将结果存放到内存当中,当内存占用达到必定的阈值(这个阈值是能够设置的)时,map会将中间的结果写入到本地磁盘上,造成临时文件这个过程叫作溢写。 
map在溢写的过程当中,会根据指定reduce任务个数分别写到对应的分区当中,这就是partition过程。每个分区对应的是一个reduce任务。而且在写的过程当中,进行相应的排序。在溢写的过程当中还能够设置conbiner过程,该过程跟reduce产生的结果应该是一致的,所以该过程应用存在必定的限制,须要慎用。 
每个map端最后都只存在一个临时文件做为reduce的输入,所以会对中间溢写到磁盘的多个临时文件进行合并Merge操做。最后造成一个内部分区的一个临时文件。

==============================Reduce======================================

首先要实现数据本地化,须要将远程节点上的map输出复制到本地。 
Merge过程,这个合并过程主要是对不一样的节点上的map输出结果进行合并。 
不断的复制和合并以后,最终造成一个输入文件。Reduce将最终的计算结果存放在HDFS上。 
针对MR2是新一代的MR的API。其主要是运行在Yarn的资源管理框架上。

 

Yarn(资源管理框架)

YARN (Yet Another Resource Negotiator,另外一种资源协调者)。它是一种资源调度和管理框架,通俗的来讲就是分配底层CPU和内存资源。它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。

Sqoop(数据同步工具)

Sqoop是SQL-to-Hadoop的缩写,主要用于传统数据库和Hadoop之间传输数据。

Mahout(数据挖掘算法库)

她其实就是一个包含了机器学习算法的学习库。

Hbase(分布式列存数据库)

HBase是Google Bigtable克隆版,HBase是一个针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。

Zookeeper(分布式协做服务)

主要解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。 

Pig(基于Hadoop的数据流系统)

雅虎开源,他主要是对数据流的处理。

Hive(基于Hadoop的数据仓库)

facebook开源,Hive定义了一种相似SQL的查询语言(HQL),将SQL转化为MapReduce任务在Hadoop上执行,提供了很大的便利。

Flume(日志收集工具)

Flume是一个可扩展、适合复杂环境的海量日志收集系统。

Storm

  Storm能够方便地在一个计算机集群中编写与扩展复杂的实时计算,Storm用于实时处理,就比如 Hadoop 用于批处理。Storm保证每一个消息都会获得处理,并且它很快——在一个小集群中,每秒能够处理数以百万计的消息。更棒的是你可使用任意编程语言来作开发。

 

Spark

首先附上一张架构图:

主件介绍:  

SparkCore:将分布式数据抽象为弹性分布式数据集(RDD),实现了应用任务调度、RPC、序列化和压缩,并为运行在其上的上层组件提供API。

SparkSQL:Spark Sql 是Spark来操做结构化数据的程序包,可让我使用SQL语句的方式来查询数据,Spark支持 多种数据源,包含Hive表,parquest以及JSON等内容。

SparkStreaming: 是Spark提供的实时数据进行流式计算的组件。

MLlib:提供经常使用机器学习算法的实现库。

GraphX:提供一个分布式图计算框架,能高效进行图计算。

BlinkDB:用于在海量数据上进行交互式SQL的近似查询引擎。

Tachyon:之内存为中心高容错的的分布式文件系统。

 

为何会出现spark?

  你们确定知道在2016年左右不少公司纷纷转向spark,为何呢?这是由于spark在Hadoop的基础上作了不少的改善,能够说是Hadoop升级版。

在Hadoop中会存在一些缺点例如:

  表达能力差

  磁盘IO开销大

  延迟高

spark:

中间结果输出:基于MapReduce的计算引擎一般会将中间结果输出到磁盘上,进行存储和容错。出于任务管道承接的,考虑,当一些查询翻译到MapReduce任务时,每每会产生多个Stage,而这些串联的Stage又依赖于底层文件系统(如HDFS)来存储每个Stage的输出结果。

Spark是MapReduce的替代方案,并且兼容HDFS、Hive,可融入Hadoop的生态系统,以弥补MapReduce的不足。

 

它的一些应用场景:

Yahoo将Spark用在Audience Expansion中的应用,进行点击预测和即席查询等
淘宝技术团队使用了Spark来解决屡次迭代的机器学习算法、高计算复杂度的算法等。应用于内容推荐、社区发现等 腾讯大数据精准推荐借助Spark快速迭代的优点,实现了在“数据实时采集、算法实时训练、系统实时预测”的全流程实时并行高维算法,最终成功应用于广点通pCTR投放系统上。 优酷土豆将Spark应用于视频推荐(图计算)、广告业务,主要实现机器学习、图计算等迭代计算。
相关文章
相关标签/搜索