数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践

这篇具有很好参考价值的文章主要介绍了数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        大数据平台不仅需要稳定地运行生产任务,还需要提供数据开发的能力。因此,不少大数据平台都会为每个任务区分开发模式与线上模式,可以通过提交上线的方式,将开发模式任务提交到线上,让其用于线上数据生产工作。

        开发模式与线上模式其实可以看成两个代码相似,但完全独立的任务,为了便于后续描述,将其分别称为开发模式任务与线上模式任务。

数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践

数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践        开发模式下的任务可以进行编辑、运行、调试。当任务开发完毕后,通过提交上线功能,将开发模式的任务提交到线上,也即使用开发模式的任务代码覆盖原本的线上模式任务代码。线上模式下的任务是用于生产的,因此该模式下的任务不可以编辑、调试,但可以配置调度、依赖、报警。

问题背景

        开发模式任务与线上模式任务代码虽然相似,但却是完全独立的,修改开发模式任务,并不会影响到线上模式任务。这在一定程度上避免了“开发阶段影响线上”的问题,但在实际的开发过程中,用户在调试某个开发任务时,由于数据与线上任务是同一份(引用了同一个 table 或者同一份 hdfs 数据),因此极易影响到线上的产出数据,造成线上数据被污染情况。

例如,某线上模式任务的代码如下:

数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践

由于业务需求的改变,需要将 ods_student 的数据按照年龄进行过滤(仅需要小于 18 岁的学生数据),则 SQL 被改写成:

数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践

但该 SQL 在开发阶段如果执行的话,会直接影响到线上的数据。针对该问题,大部分数据开发人员会建立一个 school.dwd_student_dev 表(该表作为 school.dwd_student 的开发表),然后在开发模式下写入数据到该表。

在提交上线时,再将 school.dwd_student_dev 改成 school.dwd_student

        虽然这样可以在一定程度上避免数据污染问题,但需要在提交上线时修改代码。由于生产级别的 SQL 非常复杂,会涉及很多表,因此很容易导致数据开发人员出现漏改、错改的情况。一旦将错误的代码提交上线后,便会导致线上问题/事故。

传统方案及优化空间

针对上述问题,业内最常见的解决方案是搭建完全独立的两套集群(不仅包含 hadoop 集群,还包含大数据平台子系统),一套作为开发集群、一套作为线上集群。在开发集群进行数据开发、测试,经过验证后,再通过手动/半自动的方式将开发任务、调度信息导入到线上集群。

数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践

传统双集群架构图

这种方式虽然完全避免了开发阶段影响线上的问题,但却失去了一些灵活性。

1. 实际的开发场景会经常遇到:开发阶段,需要读取线上数据进行开发、测试(往往是开发集群无此数据、或者在任务调优阶段开发集群数据量过小,无法模拟真实场景)。为了满足读取线上数据的需求,只能在使用的时候导入线上数据。导数过程非常耗时,针对一个存储数据较多的 table/hdfs 往往需要数个小时,这无疑给此方案增加了很多使用成本,致使该方案难以在业务落地。

2. 由于线上集群、开发集群是两套完全独立大数据平台,而且它们中间还需要保持数据的一致性(任务、表、调度数据的一致性)。众所周知,一致性在两套系统中是很难保证的,因此极有可能出现:提交上线的时候,发现线上没有该表;该表字段与开发集群不一致;设置依赖时发现被依赖的任务在线上集群不存在等等。

基于数据沙箱的集群隔离方案

网易有数大数据平台,引入了一种“数据沙箱”的机制,将代码与代码运行所需要的数据、环境变量解耦,根据代码的运行环境,自动关联所需要的数据和环境变量。一套代码,可以在不同的环境之间,无缝切换。下面,我们重点介绍一下,数据沙箱在生产、测试物理集群隔离场景下的应用。

“开发、生产双集群”方案的架构图如下所示:

数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践

通过架构图可以看出,网易有数大数据平台具备真正意义上的开发模式任务与线上模式任务的数据、计算隔离。

在双集群场景下,网易有数大数据平台拥有两套独立的 HDFS 集群与 YARN 集群,在开发模式下默认读写开发 HDFS 集群,在线上模式下默认读写线上 HDFS 集群。这两套集群公用同一个 HiveMetastore 服务,开发模式下的 table 处于开发库下面,线上模式下的 table 处于线上库下面,这两个 table 的 location 分别指向开发 HDFS 集群、线上 HDFS 集群。同时,网易有数大数据平台还提供 ${database} 的宏定义,在开发模式下支持将其自动替换为 database_dev,在线上模式下支持将其自动替换为 database。

以 school.ods_study 表举例,对应的开发表为 school_dev.ods_study。它们的 location 分别为:

线上表为“hdfs://online/warehouse/school.db/ods_study/”;

开发表为“hdfs://dev/warehouse/school.db/ods_study/”。

可以看出这两个表的 location 只有 authority 不同,path 部分完全一致。这样无论是使用 SQL 直接读写这两个表,还是通过 hdfs 操作这两个表的数据(外表操作),结合宏定义之后,代码都是完全相同的。

基于数据沙箱的开发生产双集群应用实践

在介绍完网易有数大数据平台“开发、生产双集群”功能的实现后,再了解一下双集群的使用姿势,以便更好的理解双集群的实现细节。

ETL 任务大部分都是 SQL 任务(操作 hive 表),还有少部分 MR、SparkRDD 任务(直接操作 HDFS 数据)。

操作SQL

开发阶段仅读写开发集群数据

SQL 编写如下:

数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践

该 SQL 在开发模式下运行,相当于执行如下 SQL:

数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践

该 SQL 在线上模式下运行,相当于执行如下 SQL:

数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践

从开发模式与线上模式的 SQL 可以看出,该 SQL 在提交上线时完全不需要修改代码的,便可以在执行时通过宏替换的方式,动态的完成开发模式下读写开发集群数据,线上模式下读写线上集群数据。

开发阶段读线上集群数据,写开发集群数据

SQL 编写如下:

数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践

该 SQL 在开发模式下运行,相当于执行如下 SQL:

数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践

该 SQL 在线上模式下运行,相当于执行如下 SQL:

数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践

从开发模式与线上模式的 SQL 可以看出,该 SQL 在提交上线时完全不需要修改代码的,便可以在执行时通过宏替换的方式,动态的完成开发模式下读线上集群数据写入到开发集群,线上模式下读线上集群数据写入到线上集群。

操作 HDFS

HDFS 双集群使用姿势与 SQL 双集群使用姿势基本类似,SQL 是通过宏定义实现的,HDFS 是通过 default.fs 实现的。

比如:读开发集群的 HDFS 数据,写入到开发集群的 HDFS。

数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践

读开发集群的 HDFS 数据,写入到线上集群的 HDFS。

数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践

通过代码对比可以发现,使用MR、SparkRDD操作 HDFS 数据时,也无需修改代码即可提交上线,同一份代码在两套环境都完全适用。同时还完全保留了,开发环境读写开发集群数据、开发环境读线上数据,写开发数据的特性。

应用效果

网易有数大数据平台通过开发、生产双集群,实现了开发模式任务与线上模式任务,在代码、数据、计算上的隔离,同时在提交上线节点还避免了修改代码。通过开发、生产双集群功能,即保证了开发的效率,还保证了线上数据不被污染的问题。

同时,在开发、生产双集群中,网易大数据平台还引入了数据脱敏的功能,在开发阶段,如果读取线上敏感数据,将会进行脱敏处理。在保证数据安全的前提下,解决了数据开发、测试、发布阶段效率问题。

华泰集团:统一客户沙箱平台系统 

项目背景及目标

大数据时代,对海量数据的搜集、存储、分析、挖掘及应用已是大势所趋,因此需要有专门的平台及相应产品来专门进行大数据的分析和挖掘;保险公司沉淀了几十年的客户交易数据,随着保险业务模式的不断创新,数据量呈现指数级增长,数据来源也更加多元化;目前各个保险公司都在密切的搜集客户多方面数据,在营销、风控、核保、理赔、定价等方面进行更好的应用。

目前公司数据分析、挖掘等涉及计算资源分散,可利用的工具有限及计算资源和效率较低,不能进行大规模数据挖掘,且无法统一进行管理;需要一个集成相关多种数据分析工具的统一平台来完成整个数据解决方案;当前各个子公司的数据没有整合,数据分析人员仅能在不同的子平台进行数据分析,不能对客户进行更完整的刻画;跨平台、公司访问数据需要频繁申请,数据安全及工作效率不能保证因此需要提供一个综合统一的平台,提供为一整套数据解决方案实施的平台。

项目方案

平台架构

数据沙箱是客户统一平台的重要组成部分,沙箱整合产、寿等子公司各系统数据,在集团层面做客户打通,并相应的为子公司提供客户画像、保单查询、精准营销等方面工作;数据沙箱提供了为一整套数据解决方案实施的平台,链接平台各层数据源,集合多种数据分析、挖掘工具,支持数据探查、分析、建模及报表展示等多种工作。

下图为基于大数据平台的沙箱架构图:

数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践

下图为沙箱的一个物理架构图:

数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践

创新点

性能优越:沙箱计算资源庞大,整合了大数据平台计算资源,支持大规模数据并行计算,通过开通账号,使得整个集团人员能够集中在平台中进行数据分析挖掘;

数据全面:整合全集团数据,同时也可以接入外部数据,和平台共享一套数据源,与平台各层互通,保证数据可获得、一致、便捷高效;

多种数据挖掘工具:可实现一站式数据解决方案;多种数据挖掘工具可利用,如sql查询工具、excel、python、spark等;

支持业务报表查询:支持业务统计指标的web展示、提供BI工具协助进行数据分析、报表发布;

人员权限及数据安全:支持多租户分权限分资源管理;对敏感数据进行加密处理;

使用便捷:提供进入、使用沙箱环境的友好界面,方便非开发数据分析人员使用;

提供算法平台,支持可视化建模,降低建模门槛。

提供云办公桌面,解决个人电脑设备老、旧、性能差的问题

项目主要建设内容及功能

1、沙箱云服务办公环境

沙箱为每位用户提供一个远程的windows办公环境,并安装常用的数据分析工具,如office、notepad、anaconda等;在安全方面,为每个用户提供仅供个人访问的目录来保证个人数据的私密,同时提供共享文件夹,方便进行不同用户之间文件的传输。

云办公桌面展示如下:

数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践

2、沙箱数据挖掘notebook环境

当需要进行大批量数据分析、挖掘时,可使用沙箱专供的数据挖掘工具-jupterhub来执行;

沙箱安装了anaconda运行环境,集成了较新的python及相应的很多数据分析、建模包,jupterhub的notebook是一个数据图形化GUI展示工具,能够通过浏览器打开,方便数据挖掘人员使用。

沙箱数据挖掘notebook环境界面展示如下:

数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践

点击python3即可进入相应的交互式编程,沙箱针对该工具已安装常用的机器学习算法,包括目前主流的算法:scikit-learn的所有算法(如Random Forest、SVM等)、XGBoost、LightGBM等;深度学习如:pytorch、tensorflower(不支持GPU);同时已为每位用户创建单独的文件夹;同时也安装了pyimpala、pyspark等,支持连接大数据平台,利用大数据平台资源进行快速的大数据分析及分布式建模等。

3、大数据分析交互平台HUE

沙箱为用户提供一个快速的大数据查询平台,通过Hue可使用Hive、impala进行数据分析,通过impala进行sql查询分析,性能优越,传统数据库查询耗时费力,而通过impala进行查询,速度一般都能提升10倍以上,同时可以通过python连接impala,通过python端进行sql查询,还可以将云办公桌面的客户端连接到大数据平台进行查询。

数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践

3、大数据分析交互平台HUE

沙箱提供了专门的BI工具,通过该工具,可以连接数据库,并对数据进行探查、分析并制作固定报表等。

BI工具展示如下:

数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践

沙箱AI算法平台工具

沙箱提供了专门的AI算法平台工具,通过该工具,大大降低算法使用的门槛,使得部分非专业人员能够自行建模,挖掘业务价值。

AI 算法平台展示如下:

数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践

项目过程管理

1、需求分析和概要设计阶段

此阶段时间段为2019年9月至2020年2月,其间主要完成了业务需求分析、业务功能和技术构架的高层设计。提交了现状需求分析报告、各功能模块的高层设计、技术构架和接口的高层设计等文档。

2、系统详细设计阶段

此阶段起始时间为2020年2月至2020年3月,其间主要完成了沙箱系统详细设计工作,确定沙箱的主要建设方案及功能重点。

3、系统开发、测试和上线准备阶段

此阶段起始时间为2020年3月至2020年7月,完成了平台搭建、数据接入、数据加工整合、产品部署等,编写了测试用例和操作手册。

4、上线阶段

此阶段起始时间为2020年8月至今,沙箱处于正式上线使用状态,已开放给各个子公司相关部门人员使用

项目成效

沙箱平台旨在通过打造综合的数据挖掘平台,来提升整个集团的数字化运用、分析能力。沙箱主要服务于数据分析人员,通过提供强大的计算资源、整合多种分析工具,并实行统一的用户管理,方便数据分析人员进行有价值的数据挖掘,赋能于公司业务发展。在投入使用过程中得到了广大子公司及多部门的青睐,如下为部分沙箱的具体支持案例:

沙箱目前服务的部门有:集团精算部、集团综合创新部、集团内审部、集团资产管理部、财险的科创部、财险精算部、财险车险部、目前累计开通近100个用户,并在持续推广中;

支持财险科创产寿交叉和车险续保率预测的相关数据挖掘、建模工作;

支持用户数据分析及财务报表ocr文本识别等具体工作;

支持集团综合创新部进行产寿交叉分析等方面的工作;

支持集团资产管理部相关性热力图展示的统计分析。

经验总结

让数据产生价值的重要一环就是搭建一个强大的分析挖掘平台,沙箱不直接面向市场,但通过提供分析平台来协助相关的业务及管理人员来支持运营决策;通过沙箱可以实现对客户的分类,筛选优质客户,预测客户产品偏好,更全面支持客户画像、统计报表分析、提供运营决策数据等等文章来源地址https://www.toymoban.com/news/detail-444115.html

到了这里,关于数据沙箱在大数据生产、测试物理集群隔离场景中最佳实践的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • redis(6.0以上版本)哨兵、生产级redis cluster集群部署、测试、特点

    目录 一、特点    可自由指定主从    可自定义分配哈希槽    先建立单个实例,在分配主从 二、生产级redis cluster部署 :一台服务器即可(192.168.1.134) 1关闭防火墙 2获取redis6.2.12tar包(官网获取) 3.为了方便管理创建单独目录 4.修改配置文件 5.启动服务 6.用集群模式登

    2024年02月12日
    浏览(37)
  • 百度生成式AI产品文心一言邀请测试,五大场景、五大能力革新生产力工具

    随着科技的飞速发展,人工智能(AI)正在成为推动社会进步和提升生产力的关键力量。百度推出的生成式AI产品文心一言,以其五大场景和五大能力,将生产力工具带入一个全新的时代。 文心一言作为一款生成式AI产品,旨在通过深度学习技术,理解和生成自然语言,实现人机

    2024年02月13日
    浏览(54)
  • 大数据Flink(五十七):Yarn集群环境(生产推荐)

    文章目录 Yarn集群环境(生产推荐) 一、准备工作

    2024年02月13日
    浏览(43)
  • 公网环境调试本地配置的Java支付宝沙箱环境模拟支付场景

    在沙箱环境调试支付SDK的时候,往往沙箱环境部署在本地,局限性大,在沙箱环境中有多种支付场景,往往是多人联合开发,本地环境可能无法满足异地联合,所以把本地环境变成公网环境下进行调试开发会更好。 本次教程,我们将使用支付宝平台提供的沙箱环境,在本地配

    2024年01月22日
    浏览(62)
  • 大数据内容分享(九):Hadoop-生产集群搭建(完全分布式)

    目录 Hadoop运行模式——完全分布式 1、准备3台虚拟机(关闭防火墙、配置静态IP 和 主机名称) 2、安装JDK 和 Hadoop 并配置JDK和Hadoop的环境变量 3、配置完全分布式集群 4、集群配置 1)集群部署规划 2)配置文件说明 3)配置集群 5、集群启动 与 测试 1)workers的配置 2)启动集

    2024年02月21日
    浏览(97)
  • 【大数据之Hadoop】二十八、生产调优-HDFS集群扩容及缩容

      增加或缩减服务器,注意不允许白名单和黑名单同时出现同一个主机。   原有数据节点不能满足数据存储需求时,需要在原有集群的基础上动态增加节点,即动态增加服务器,增加服务器的同时不需要重启集群。   hadoop完全分布式集群设置了3个datanode节点,当白名

    2024年02月03日
    浏览(59)
  • 测试开发基础 | 计算机网络篇(二):物理层与数据链路层

    【摘要】 计算机网络知识是自动化测试等技术基础,也是测试面试必考题目。霍格沃兹测试学院特别策划了本系列文章,将带大家一步步夯实计算机网络的基础知识。由于物理层知识在互联网软件研发工作中用到的并不多,所以可以仅做一个简单的了解。物理层解决如何在连

    2024年01月23日
    浏览(44)
  • Sermant类隔离架构:解决JavaAgent场景类冲突的实践

    本文分享自华为云社区《Sermant类隔离架构解析——解决JavaAgent场景类冲突的实践》,作者:华为云开源。 Sermant是基于Java字节码增强技术的无代理服务网格,其利用Java字节码增强技术为宿主应用程序提供服务治理功能。因深知JavaAgent场景中类冲突问题会造成的影响,Sermant在

    2024年02月09日
    浏览(42)
  • 【MySQL】根据MVCC和Read View分析事务的四种隔离级别在读写场景分别是如何体现其隔离性的

    需要云服务器等云产品来学习Linux的同学可以移步/--腾讯云--/--阿里云--/--华为云--/官网,轻量型云服务器低至112元/年,新用户首次下单享超低折扣。   目录 一、数据库并发的三种场景 二、读写场景的MVCC  1、3个(4个)记录隐藏列字段 2、undo log(撤销日志) 3、模拟MVCC场景

    2024年02月12日
    浏览(42)
  • spring boot支付宝沙箱环境测试支付功能

    目录 一、安装支付宝支付demo 二、配置demo信息 三、配置回调地址和异步地址 四、内网穿透 (一)简介 (二)使用场景 (三)内网穿透的几个常用软件 (四)使用natapp 选择Java版本,下载后是一个eclipse项目 SDK Demo 获取 - 支付宝文档中心 (alipay.com) 导入ideal参考:IDEA导入Ec

    2024年01月17日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包