首页 > 其他分享 >大数据生态圈

大数据生态圈

时间:2023-07-20 15:00:57浏览次数:25  
标签:框架 离线 实时 计算 Spark 数据 生态圈

一、大数据生态

目前大数据生态圈中的核心技术总结下来如图1所示,分为以下9类,下面分别介绍。

1.数据采集技术框架

数据采集也被称为数据同步。

随着互联网、移动互联网、物联网等技术的兴起,产生了海量数据。这些数据散落在各个地方,我们需要将这些数据融合到一起,然后从这些海量数据中计算出一些有价值的内容。此时第一步需要做的是把数据采集过来。数据采集是大数据的基础,没有数据采集,何谈大数据!

数据采集技术框架包括以几种。

  • Flume、Logstash和FileBeat常用于日志数据实时监控采集

  • Sqoop和Datax常用于关系型数据库离线数据采集

  • Cannal和Maxwell常用于关系型数据库实时数据采集

Flume、Logstash和FileBeat的技术选型如图所示。

Sqoop和Datax之间的技术选型如图所示。

Cannal和Maxwell之间的技术选型如图4所示。

2.数据存储技术框架

数据的快速增长推动了技术的发展,涌现出了一批优秀的、支持分布式的存储系统。

数据存储技术框架包括HDFS、HBase、Kudu、Kafka等。

  • HDFS它可以解决海量数据存储的问题,但是其最大的缺点是不支持单条数据的修改操作,因为它毕竟不是数据库。

  • HBase是一个基于HDFS的分布式NoSQL数据库。这意味着,HBase可以利用HDFS的海量数据存储能力,并支持修改操作。但HBase并不是关系型数据库,所以它无法支持传统的SQL语法。

  • Kudu是介于HDFS和HBase之间的技术组件,既支持数据修改,也支持基于SQL的数据分析功能;目前Kudu的定位比较尴尬,属于一个折中的方案,在实际工作中应用有限。

  • Kafka常用于海量数据的临时缓冲存储,对外提供高吞吐量的读写能力。

3.分布式资源管理框架

在传统的IT领域中,企业的服务器资源(内存、CPU等)是有限的,也是固定的。但是,服务器的应用场景却是灵活多变的。例如,今天临时上线了一个系统,需要占用几台服务器;过了几天,需要把这个系统下线,把这几台服务器清理出来。

在大数据时代到来之前,服务器资源的变更对应的是系统的上线和下线,这些变动是有限的。

随着大数据时代的到来,临时任务的需求量大增,这些任务往往需要大量的服务器资源。

如果此时还依赖运维人员人工对接服务器资源的变更,显然是不现实的。

因此,分布式资源管理系统应运而生,常见的包括YARNKubernetesMesos,它们的典型应用领域如图所示。

4.数据计算技术框架

数据计算分为离线数据计算实时数据计算

(1)离线数据计算

大数据中的离线数据计算引擎经过十几年的发展,到目前为止主要发生了3次大的变更。

  • MapReduce可以称得上是大数据行业的第一代离线数据计算引擎,主要用于解决大规模数据集的分布式并行计算。MapReduce计算引擎的核心思想是,将计算逻辑抽象成Map和Reduce两个阶段进行处理。

  • Tez计算引擎在大数据技术生态圈中的存在感较弱,实际工作中很少会单独使用Tez去开发计算程序。

  • Spark最大的特点就是内存计算:任务执行阶段的中间结果全部被放在内存中,不需要读写磁盘,极大地提高了数据的计算性能。Spark提供了大量高阶函数(也可以称之为算子),可以实现各种复杂逻辑的迭代计算,非常适合应用在海量数据的快速且复杂计算需求中。

(2)实时数据计算

业内最典型的实时数据计算场景是天猫“双十一”的数据大屏。

数据大屏中展现的成交总金额、订单总量等数据指标,都是实时计算出来的。

用户购买商品后,商品的金额就会被实时增加到数据大屏中的成交总金额中。

用于实时数据计算的工具主要有以下3种。

  • Storm主要用于实现实时数据分布式计算。

  • Flink属于新一代实时数据分布式计算引擎,其计算性能和生态圈都优于Storm。

  • Spark中的SparkStreaming组件也可以提供基于秒级别的实时数据分布式计算功能。

Spark Streaming和Storm、Flink之间的区别见表。

Storm、Spark、Flink 之间的技术选型如图6所示。

目前企业中离线计算主要使用Spark,实时计算主要使用Flink。

5.数据分析技术框架

数据分析技术框架包括Hive、Impala、Kylin、Clickhouse、Druid、Doris等,它们的典型应用场景如图所示。

Hive、Impala和Kylin属于典型的离线OLAP(Online AnalyticalProcessing)数据分析引擎,主要应用在离线数据分析领域,它们之间的区别见表。

  • Hive的执行效率一般,但是稳定性极高;

  • Impala基于内存可以提供优秀的执行效率,但是稳定性一般;

  • Kylin通过预计算可以提供PB级别数据毫秒级响应。

Clickhouse、Druid和Doris属于典型的实时OLAP数据分析引擎,主要应用在实时数据分析领域,它们之间的区别见表。

  • Druid和Doris是可以支持高并发的,ClickHouse的并发能力有限;Druid中的SQL支持是有限的,ClickHouse支持非标准SQL,Doris支持标准SQL,对SQL支持比较好。

  • Druid和ClickHouse的成熟程度目前相对比较高,Doris处于快速发展阶段。

6.任务调度技术框架

任务调度技术框架包括Azkaban、Ooize、DolphinScheduler等。

 

标签:框架,离线,实时,计算,Spark,数据,生态圈
From: https://www.cnblogs.com/imreW/p/17568432.html

相关文章

  • EDS从小白到专家丨打造你的专属“数据物流”系统
     “数据快递”如何支撑便捷就医?本期让我们来了解如何使用EDS打造专属的“数据物流”系统......本文分享自华为云社区《【EDS从小白到专家】第2期—EDS-打造你的专属“数据物流”系统》,作者:开天aPaaS小助手。“数据快递”如何支撑便捷就医?本期让我们来了解如何使用EDS打造专属......
  • uniapp小程序(原生微信小程序也可以使用),获取接口二进制流数据上传文件到服务器
    需求:通过接口返回的二进制流数据,这个流数据他是一个xlsx文档,需要给到用户一个文档线上连接。下面是具体代码,注意只针对二进制的文件数据,如果图片上传直接调用uploadFile就可以,并且兼容原生微信小程序。exportfunctionexportExcel1(query){ uni.showLoading({ title:'正......
  • myBatis 流式查询,大数据量查询
    myBatis-plus/myBatis流式查询,大数据量查询myBatis这个开源框架的好处就不再赘述,myBatis-plus则更是myBatis的增强工具,框架给我提供很多查询数据方式,非常方便,这里就介绍一下流式查询,也就是游标的方式去查询。我们在完成工作的途中会遇到大数据量的查询,比如大量数据的导出等等......
  • flak创建数据库报 NameError: name 'MySQLdb' is not defined
     因为pycharm中无法安装MySQLdb,安装会报错 所以安装pymysql然后替换MySQLdb  进入到mysqldb.py文件中 替换mysqldb方法,导入pymysql取别名为MySQLdb 再次执行便能成功  ......
  • mysql查询数据库重复数据
    查询重复领取的优惠券//查询8888888用户优惠券状态为未使用且数量大于2的用户领取过的优惠券SELECTdiscount_coupon_id,count(discount_coupon_id)ascFROM`faith_user_discount_coupon`whereuser_id='88888888'and`status`='1'GROUPBYdiscount_coupon_idhavingc>......
  • 深入了解商品详情API接口的使用方法与数据获取
    ​ 作为程序员,了解和熟悉如何调用API接口获取淘宝商品数据是非常重要的。在现今的电商环境中,准确、及时地获取商品详情信息对于开发者和商家来说至关重要。本文将以程序员的视角,详细介绍如何调用API接口来获取淘宝商品详细信息,并且提供一些实际应用示例。一、理解商品详情API......
  • RuntimeError: Working outside of application context. 创建flask数据库报错
    在执行flask创建数据库时报错 解决办法借鉴如此 修改执行代码执行成功 ......
  • java中lambda两个集合不同的数据
    Java中Lambda两个集合不同的数据实现概述本文将指导刚入行的小白开发者如何使用Lambda表达式在Java中实现两个集合的差异数据。流程概览下面是实现的步骤概览:步骤描述1创建两个集合2使用Lambda表达式过滤出两个集合的差异数据3输出差异数据步骤详解1.......
  • mongodb 获取所有数据
    MongoDB获取所有数据MongoDB是一种非关系型数据库,被广泛应用于大数据处理和实时数据分析场景中。在使用MongoDB时,我们经常需要获取数据库中的所有数据。本文将介绍如何使用MongoDB来获取所有数据,并提供相应的代码示例。连接到MongoDB在开始之前,我们需要先连接到MongoDB数据库。......
  • 行行AI人才直播第11期:墨尔本大学数据科学高级讲师-宫明明《机器学习:从统计到因果,人工
    行行AI人才是博客园和顺顺智慧共同运营的AI行业人才全生命周期服务平台。马克斯·普朗克智能系统中心主任曾在国际数学家大会进行了题为FromStatisticaltoCausalLearning的报告,建立和理解人工智能系统的基本研究思路:从通过统计学习的符号方法到依靠因果关系概念的干预模......