一篇文章读懂什么是大数据

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mapbar_front/article/details/82054543

大数据概述

如果说,作为目前IT行业最火热、薪资最具有发展前景的两个方向——大数据和人工智能。现在甚至火热到凡是一个公司,都在说自己做大数据相关的业务,那么作为当前时代的程序员,我们应当了解,什么是大数据?

通俗的来讲,大数据就是基于海量的数据,提取其中具有借鉴意义,具有商业价值的东西,最终呈现给用户的这么一个过程,就叫大数据。

大数据技术体系

从概念上讲,上面所说的东西,都是比较笼统的概念,而大数据作为目前已经发展的比较成熟的阶段,已经形成了自己的一整套体系。

总的来说,大数据技术等于“数据”到“用户”这么一个过程。从低到高,共分为六层。

第一层:数据采集。

所谓数据采集,就是我首先要有数据分析的素材,我们需要得到这些数据,才能进行有价值的分析对比。比如百度的搜索记录的数据。阿里的用户购物的数据。腾讯的用户聊天数据。都是很好的数据素材。

第二层:数据存储

产生了数据,我们的数据到底该放在哪里?以什么样的方式进行存储?因为这些数据只有保存下来,才能进行有价值的分析,提取,最终得到我们想要的东西。所以数据存储是非常重要的一环。

第三层:资源管理层

有了海量的数据,我们要对数据进行存放,那我们如何保证存放数据能够快速的读取?如何针对不同的业务做不同的分析?为了有效的调度各类资源,我们大数据中,就专门有了资源管理层。

第四层:计算引擎层

我们知道了如何做资源调度,那么就要开始对最原始的数据开始处理,处理方式有实时处理、交互式处理、批处理等等。

实时处理,就是我希望得到用户实时的访问记录、活跃度、实时网页浏览等信息,采集到这样的东西,我们进行生成实时的统计、报表等信息。

交互式分析,就是用户和系统之间进行交互的部分,一般使用类SQL语言便于数据的查询和分析等。

批处理,对时间及时性要求低,一般进行批量数据分析,数据清洗等操作。

第五层:数据分析层

一般是和应用程序对接,把经过批量处理,或者加工过的数据,通过SQL、API等方式暴露出去的过程,就是数据分析。

第六层:数据可视化

为了让用户更加清晰的感知到数据的情况,一般使用可视化的东西呈现到用户面前,可以呈现的是网页、图表、报表等信息。

大数据技术分析

如果把大数据分解成我上面展示的六层结构,那每一层都有对应的处理工具、或者是解决方案,具体如下:

数据收集层:一般采用Flume、Kafka、Sqoop等进行数据的采集。
如果把数据这么划分:非关系型数据、关系型数据、交互式数据。那Flume一般处理的就是非关系型的数据,而Sqoop主要针对类似传统的SQL类型的数据,Kafka处理的是分布式的消息数据。

数据存储层:一般使用HDFS、HBase。
HDFS,是一种分布式文件系统的数据存储方案。可以把数据存储到一个个的廉价服务器上。
HBase,存储一种结构化、半结构化的数据。

资源管理层:YARN
负责集群的资源管理和调度、使得多个计算框架都能运行在一个集群中。

计算框架层:一般使用MapReduce、Hive、Spark、Presto、Spark Streaming等。
MapReduce,适合Pb级别以上的数据离线处理。
Hive:定义了一种类SQL的语言。便于离线数据的分析。

数据分析层:Mahout、MLlib、DataFrame、SQL、R等。

数据展示层:前端网页、Echarts、D3.js、SVG、Canvas等等。
这一层,主要负责数据的展示、提供给用户的有效信息等等。

猜你喜欢

转载自blog.csdn.net/mapbar_front/article/details/82054543