全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  应聘面试  >  大数据面试题

大数据的核心技术有哪些?

发布时间:2022-07-14 17:16:00
发布人:syq

  大数据的核心技术有哪些?大数据的核心层:数据采集层、数据存储分析层、数据共享层、数据应用层,叫法不同,作用基本相同。

大数据的核心技术有哪些

  大数据的核心技术有哪些?

  1、数据收集

  数据收集的任务是收集各种数据源的数据并将其存储到数据存储中,在此期间可以进行一些简单的清洗。有多种类型的数据源:

  网站日志:作为互联网行业,网站日志占比最大。网站日志存储在多个网站日志服务器上。一般在每台网站日志服务器上部署flume agent,实时采集网站日志并存储在HDFS上;

  业务数据库:还有各种类型的业务数据库,包括Mysql、Oracle、SqlServer等,这个时候我们迫切需要一个可以将各种数据库的数据同步到HDFS的工具。Sqoop 是一种,但是 Sqoop 太重了,无论数据大小,都需要启动 MapReduce 执行,Hadoop 集群中的每台机器都需要能够访问业务数据库;对于这种场景,淘宝开源的DataX是一个很好的解决方案。如果有资源,可以基于DataX进行二次开发,可以很好的解决。当然,Flume 也可以通过配置和开发,将数据库中的数据实时同步到 HDFS。

  数据源来自Ftp/Http:可能部分合作伙伴提供的数据需要定期通过Ftp/Http等获取,DataX也可以满足这个需求;

  其他数据源:如一些手动录入的数据,只需要提供一个接口或小程序即可完成。

  2、数据存储与分析

  毫无疑问,HDFS是大数据环境下数据仓库/数据平台最完美的数据存储解决方案。

  离线数据分析计算,也就是对实时性要求不高的部分,在我看来还是首选Hive,数据类型丰富,内置功能;ORC文件存储格式,压缩比非常高;非常方便的 SQL 支持使得 Hive 基于结构化数据的统计分析远比 MapReduce 高效。对于单个 SQL 语句可以满足的需求,MR 的开发可能需要数百行代码。

  当然,使用 Hadoop 框架自然也提供了 MapReduce 接口。如果你真的很乐意开发Java,或者对SQL不熟悉,也可以使用MapReduce进行分析计算。Spark在过去两年非常流行。经过实践,它的性能确实比 MapReduce 好很多,而且结合 Hive 和 Yarn 也越来越好。因此,需要支持使用 Spark 和 SparkSQL 进行分析计算。因为 Hadoop Yarn 已经存在,所以不用单独部署 Spark 集群,使用 Spark 其实是非常容易的。

  3、数据共享

  这里的数据共享,其实是指之前的数据分析计算结果存储的地方,其实就是关系型数据库和NOSQL数据库;之前使用Hive、MR、Spark、SparkSQL分析计算的结果还在HDFS上。但是大部分业务和应用无法直接从HDFS获取数据,所以需要一个数据共享的地方,让每个业务和产品都能轻松获取数据;它与 HDFS 的数据收集层正好相反,需要从 HDFS 传输数据。与其他目标数据源同步的工具,同样DataX也能满足。

  另外,一些实时计算结果数据可以直接写入实时计算模块的数据共享中。

  4、数据应用

  业务产品和业务产品使用的数据已经存在于数据共享层,可以直接从数据共享层访问;报表(FineReport,业务报表)与业务产品相同,报表中使用的数据一般已经统计和汇总。存储在数据共享层;ad hoc 查询 ad hoc 查询的用户很多,可能是数据开发人员、网站和产品运营商、数据分析师,甚至是部门负责人,他们都有临时查询数据的需求;这种即席查询通常情况下,现有报表和数据共享层中的数据不能满足其需求,需要直接从数据存储层查询。即席查询通常通过 SQL 完成。最大的困难是响应速度。使用 Hive 有点慢。可以使用 SparkSQL,它的响应速度比 Hive 快得多,并且与 Hive 兼容。当然,你也可以使用 Impala,如果你不关心平台中多一个框架。

  OLAP 目前很多OLAP工具都不能很好的支持直接从HDFS获取数据。他们通过将需要的数据同步到关系数据库中来做OLAP,但是如果数据量很大,关系数据库显然不能;这时候需要做相应的开发,从HDFS或者HBase获取数据,完成OLAP功能;例如,根据用户在界面上选择的不确定维度和指标,通过开发界面,从HBase中获取数据进行展示。

  其他数据接口 有通用接口和定制接口。比如一个从Redis获取用户属性的接口是通用的,所有的业务都可以调用这个接口来获取用户属性。

  5、实时计算

  企业现在对数据仓库的实时性要求越来越高,比如:实时了解一个网站的整体流量;实时获取广告的曝光和点击;在海量数据下,依靠传统的数据库和传统的实现方式,基本上是不可能的。需要一个分布式、高吞吐量、低延迟、高可靠的实时计算框架;Storm在这方面比较成熟,但是我选择Spark Streaming的原因很简单,就是不想在平台上引入另外一个框架,另外Spark Streaming的延迟比Storm高一点,对于我们来说可以忽略需要。

  我们目前使用Spark Streaming来实现网站流量的实时统计和广告效果的实时统计。方法也很简单。Flume 在前端日志服务器上收集网站日志和广告日志,并实时发送到 Spark Streaming。Spark Streaming 完成统计,将数据存储在 Redis 中,通过访问 Redis 实时获取服务。

  6、任务调度与监控

  在数据仓库/数据平台中,有很多种程序和任务,例如:数据采集任务、数据同步任务、数据分析任务等。这些任务除了定时调度外,还有非常复杂的任务依赖关系。例如,数据分析任务只有在相应的数据采集任务完成后才能启动;数据分析任务完成后才能启动数据同步任务;

  这就需要一个非常完善的任务调度和监控系统。作为数据仓库/数据平台的中心,负责调度和监控所有任务的分配和运行。更多关于大数据培训的问题,欢迎咨询千锋教育在线名师。千锋教育拥有多年IT培训服务经验,采用全程面授高品质、高体验培养模式,拥有国内一体化教学管理及学员服务,助力更多学员实现高薪梦想。

相关文章

大数据kafka常见面试题——如何搭建kafka?

2023-08-07

大数据kafka常见面试题——kafka中如何避免重复消费

2023-08-04

大数据面试题之多种方法创建dataframe

2023-08-02

大数据Hadoop面试题——Hadoop干什么用的?

2023-08-01

大数据行业2年工作经验的面试题有哪些?

2023-07-28

大数据kafka面试题——kafka和flume的区别是什么?

2023-07-27
在线咨询 免费试学 教程领取