简介:本文介绍了开发框架的整体设计,然后拆卸每个模块。它重点关注如何快速实现应用程序的开发,以及从设计思想的角度,实现方法,功能介绍和创建方法的角度。回顾应用程序已充分介绍,以及针对环境准备和许多数据库的启动计划。简而言之,发展效率框架的效率,回顾性任务和维护成本以及代码管理将产生重大影响。
全文是3308个单词,预计阅读时间为10分钟。
随着Spark及其社区的持续发展,Spark本身不断成熟,Spark在技术架构和性能中的优势变得越来越明显。目前,大多数公司倾向于在大数据处理中使用Spark。Spark支持多种语言的开发,例如Scala,Java,SQL,Python等。
SPARK SQL使用与Hive兼容的标准数据连接,易于与其他语言API集成,表达清晰,易于入门和低学习成本。它是开发人员开发简单数据处理的首选语言。开发,使用SQL开发不令人满意,维护成本非常高,并且高级语言处理将更加有效。
在日常数据仓库开发工作中,除了开发工作外,我们还涉及大量的数据回顾性任务。对于创新的业务,直径变化频繁,业务迅速迭代。数据仓库的回顾非常普遍。通过可追溯性几个月甚至一年,这是非常普遍的。
为了响应当前状态,我们开发了一组Spark Offline开发框架。如下表所示,我们使用当前的问题和解决方案。框架的实现不仅使开发变得简单有效,而且数据的回顾性数据不需要任何开发,并且不需要任何开发即可完成大量回顾性工作。
该框架旨在封装重复的工作以使开发变得简单。该框架如图2-1所示,该框架主要分为三个部分。基本框架,可扩展工具和应用程序。开发人员只需要注意应用程序即可简单,快速实施代码开发。
在基本框架中,我们为所有类型的应用程序实施代码和配置分离机制。资源分配以XML文件的形式统一存储,并由框架解析。框架将使用开发人员配置的资源大小来完成Sparksession,SparkContext,SparkConf的创建。同时,加载了公共环境变量,并且开发了一般的UDF函数(例如通用URL参数分析等)。应用程序是所有应用程序的父类。处理过程如图所示。开发人员只需要注意绿色部分即可。
目前,下表显示了离线框架支持的常用环境变量。
可扩展工具包含大量工具,服务应用程序和基本框架。它是常用的,配置文件分析类,例如分析任务资源参数等;日期加法,减法,转换,标识和分析环境变量。一般的工具模块可以集体称为应用程序,可扩展工具,此处不会重复。
对于SQL应用程序,您只需要创建SQL代码和资源分配即可。应用程序类是唯一的(已实现的)。所有SQL应用程序只有一个。开发人员不需要护理。如下配置所示,类是所有应用程序的唯一名称。开发人员应关心路径中的SQL代码的大小以及Conf中SQL中使用的资源。
对于复杂的数据处理,当SQL代码无法满足需求时,我们还支持Java程序的编写。与SQL不同,开发人员需要创建一个新的应用程序类,继承应用程序父类并实现运行方法。在运行方法中,开发人员只需要注意数据的处理逻辑,而无需关注共同的Sparksession,SparkContext等的创建和关闭,并且该框架还可以帮助开发人员封装的输入和输出逻辑代码。对于输入类型,框架支持HDFS文件输入,SQL输入等。在各种输入类型中,开发人员只需要调用相关的处理功能。
以下是一个简单的Java数据处理应用程序。从配置文件可以看出,仍然需要资源的大小,但是与SQL不同,开发人员需要自定义相应的Java类(类参数)和应用程序的输入(输入(输入)(输入(输入)(输入(输入参数)和输出参数(输出参数),在此应用程序中输入到SQL代码和输出到HDFS文件。从测试类实现中可以看到开发人员只需执行三个步骤:获取输入数据,逻辑处理,逻辑处理和结果输出以完成代码编写。
开发了数据回顾应用程序来解决快速回顾性和释放人力。使用非常方便。开发人员不需要重建任务代码。它们与SQL应用程序相同。使用Back Trace Mission,并支持多个回顾性解决方案。
2.3.3.1在每日回顾性过程中发现的计划的设计严重浪费了回顾性的任务。不管如何提交任务的方法,实施以下环境应用和准备的过程:
占用此过程的时间共同称为实施环境准备。提交任务后,我们已经完成了以下三个过程:
执行环境的准备通常需要等待5-20分钟。队列时队列的资源状况在队列时上下波动。故障率约为10%。由队列,网络和资源不足引起的故障故障失败。费率约为5%,通常是由不稳定的节点和网络因素引起的。离线开发框架回顾性应用程序显示在设计中时间和人力,设计方案图2-3。
从回顾性时间的角度来看:所有可追溯性任务的第一步和第三步的时间都被压缩到一次,即每次的环境准备和释放,并执行多个回顾代码。如果开发人员跟踪任务,则在30个子任务中,它将节省5-20分钟29。可以看出,可追溯性越多,越明显的改善。
从人工干预的角度来看,首先,开发人员不需要开发或添加回顾性配置。第二,离线框架回顾应用程序启动的任务数量远远远远远远远远少于传统的回顾计划。以图2-3为例,回顾性任务是一种串行回顾方法。n任务的执行状态是手动需要的。
最后,在使用离线开发框架回到一年序列任务时,代码的执行仅需大约5分钟。我们发现,不使用离线开发框架的任务是理想的情况(也就是说,最短的时间分配给时间短的时间(最短的时间是分配到短时间的时间到达时间最及时的时间(最短时间分配给时间到达时间的时间。任务失败了10%),只能完成6个小时,效率超过90%,并且基本上不需要人力的关注。
2.3.3.2功能引入断点,使用火花计算更新。当我们享受计算带来的快速速度时,我们将不可避免地会遇到它们的不稳定。这对于在几个月甚至一年中追踪任务尤为重要,而且任务是巨大的。在失败后继续从断点继续进行。在离线框架设计中,该部分在任务返回示踪过程中已成功对帐的部分,并且在任务失败后将重新分配断点。
在回顾性任务中,我们通常根据业务需求确定返回跟踪顺序。对于新老用户的增量数据,由于当前日期数据取决于历史数据,我们通常会从历史到现在回顾一下。但是,当没有这样的需求时,一般而言,我们可以快速满足业务团队的理解在当前的数据指标中,我们通常会从现在到历史记录。在离线框架设计中,开发人员可以选择根据业务需求跟踪订单。
门户回顾通常低于常规任务。在资源有限的情况下,在回顾过程中不可能一次打开一次,以免占用大量资源来影响日常任务。当然,在完整资源的时期,我们可以选择跟踪适当的平行。离线开发框架支持一定程度的并发,并且开发人员在追踪任务时会放松。
2.3.3.3创建回顾任务回到应用程序非常方便。开发人员不需要新的开发代码。使用常规代码配置回顾方案。
在开发离线框架时,开发人员只需要专注于数据逻辑处理部分。开发完成后,提交执行。对于每个应用程序,主类是相同的。这是父母需要接收的参数,这是应用程序的配置文件的相对路径。
脱机框架之前和之后的比较图如下所示。
目前,离线开发框架仅支持SQL和Java语言代码的开发,但是SPARK支持的语言远远超过这两个。我们需要继续升级框架以支持多语言开发。
- - - - - 结尾 - - - - - -
推荐阅读:
云尼亚时代的搜索服务计算电源管理
谈论小型计划开源业务的建设
Baidu applet软件包流下载和安装优化
FAAS SSR解决方案用于前端工程
中东登录并不严重或丢失。
百度TOB TOB垂直帐户权限平台的设计和实践平台
原始:https://juejin.cn/post/709673583333858611128