WDP是浩鲸科技旗下鲸智大数据平台的简称,提供基于HADOOP技术栈一体化的集成、管理、部署监控能力的平台系统,实现了从底层开源组件代码的编译到软件包的制作,以及通过组件之间的兼容性测试,提供快速部署安装,集群主机管控的能力,最终形成统一、闭环的大数据整体解决方案。

本文通过对WDP相关技术和原理进行介绍,并基于相关案例的讲解,向业界朋友分享团队内部在研发过程中的一些思路,以及关于底座未来技术演进的展望,欢迎大家一起探讨。

技术简介

产品产生背景

随着移动互联网技术的高速发展,运营商的数据量呈指数级增长。如何利用海量数据资源进行价值和商业变现,成为运营商提高核心竞争力、抢占市场先机的关键。目前市场上的主流版本CDH/HDP都面临停止更新、原厂技术支持成本较高、组件不齐备和较为老旧的问题。WDP适用企业级的大数据处理环境,是一个分布式数据处理系统,对外提供大容量的数据存储、分析查询和实时流式数据处理分析能力,是浩鲸在大数据产品技术方面沉淀多年的技术体现和产品实现,能够为企业提供稳定、功能齐备的大数据平台。

产品定位

结合多年的大数据技术研发和运营服务支撑经验,浩鲸科技提供了自主可控的大数据发行版本,具备商用能力的企业级大数据平台产品。产品覆盖浩鲸科技在大数据实施方面所使用的技术栈和相关组件,并且提供一体化的部署运维能力。在解决过往CDH大数据平台实施过程中,由于组件的缺少需要手工部署某些组件的问题,比如KAFKA,FLINK,SPARK等运维成本过高,兼容适配问题多等。

通过WDP的监控和运维管理端,实现大数据组件的可视化、快速部署和实施,并且最大程度上避免了兼容性问题,为上层应用提供统一稳定可靠的自主大数据底座。

产品价值

通过统一的运维监控平台集成开源的HADOOP组件,进行定制化开发和兼容性适配,实现大数据组件的一体化部署和运维平台。平台自主可控,依赖于多年的研发经验,涉及的HADOOP开源组件已具备技术兜底能力,能够提供给客户和应用可靠稳定的自主大数据平台底座。

WDP具备高度的可扩展和定制化产品能力,与浩鲸科技的相关产品能够高度集成,例如通过浩鲸科技的SIMS平台,能够实现一键轻松部署;浩鲸科技数据工厂完全对接WDP组件,兼容性得到最大限度的保证。

WDP具备大数据组件的高度可扩展能力,能够引入新的技术组件或者进行版本迭代升级,满足不同的应用对底座的功能或者性能的需求,解决了无需应用由于其他大数据平台缺乏某些组件或者版本无法升级,带来许多兼容和运维的难题。

WDP是浩鲸科技企业数据中台的可靠底座,具备管理大规模HADOOP大数据集群的能力,对开源组件进行封装和增强,对外提供稳定的大容量的数据存储、查询和分析能力。

产品方案的独特技术实现

集群统一管控

通过对集群的统一管控,WDP能够对接集群的物理主机,对所有主机进行组件角色的分配和相关软件的安装,支持通过界面和向导交互式页面,对主机进行维护管理,解决开源版本的HADOOP组件部署麻烦的痛点。运维人员只需要关注WDP的管理端,即可对集群的主机进行组件的定制与分配,也能对某台特定的主机进行单独维护,如下线重新部署HADOOP组件等需求,也支持对集群进行扩展,在线添加主机纳入统一管控。

一体化的大数据组件技术闭环

大数据的组件目前在开源社区是独立演进的状态,他们各自既相互依赖,又具备自己独立的版本号,不同的版本号之间的协调是一个相当棘手的问题:

例如:

组件

版本

依赖版本

HADOOP

3.2.0

HBASE:1.2.6

HIVE

3.1.2

HADOOP:3.1.0

HBASE

2.2.6

HADOOP:2.8.5

这些不同的HADOOP组件,社区版本在各自的演进过程中,会依赖对应的其它组件的版本,但是这些版本之间不是固定在一组版本号里面的,存在循环依赖,版本不一致的问题。

WDP在集合这些HADOOP组件的过程中,对组件的依赖关系进行了完整的梳理,确保我们集成的组件都在设定的版本技术范围以内。然后对所有的源代码的依赖包,例如POM文件的版本号进行调整,并且重新编译,确保所有的依赖的jar包都在固定的版本号里面。也由于进行了版本号的调整,不可避免会出现一些兼容性的问题,经过完整的测试用例,我们对发现兼容性问题的部分进行了调试和分析,最终对源代码的不兼容部分进行了修改,然后重新打包完成整套技术体系的闭环!

统一的安全治理管控

WDP能够满足数据安全治理的要求:包括统一的租户验证,通过KERBEROS的鉴权机制,实现整个HADOOP组件体系的统一鉴权,利用集成的RANGER组件,实现多租户的权限分配。

HDFS,HIVE,HBASE等组件统一通过ranger组件进行权限控制。也支持KAFKA、presto等组件的权限分配。

作为满足商用需求的大数据底座,具备完整的安全管控机制是最基本的要求,也是核心的竞争力。当前WDP的安全治理模式基于KERBEROS,它是大数据领域使用最广泛的安全验证机制。

统一的授权机制:RANGER

WDP比起广泛应用的CDH5版本,在授权方面更加具备优势,CDH5只能通过原生的或者sentry进行授权,权限的模型不统一,没有可视化界面,使用相对麻烦,通过RANGER组件,实现了针对HDFS,HBASE,HIVE,YARN等全组件的统一授权。由于RANGER也是属于独立的社区版本,我们WDP在集成的过程中也遇到了一些版本号的兼容性问题,通过对部分插件进行改造和适配的基础上,RANGER已经完美覆盖了集成的HDFS,HBASE,HIVE,YARN,KAFKA的版本,实现了在闭环版本的集成上的统一权限认证。

技术价值

大规模的集群扩展能力

1)  支持大规模的集群管理能力,理论上设计可以支持1000台主机的集群规模。

2)  超过300台主机后,一般需要启用HDFS联邦存储。WDP支持界面启用和管理HDFS联邦。

3)  支持在线扩展能力,支持在安装集群的基础上,在线扩展存储和计算主机资源,扩展存储和计算能力。

快速的技术迭代和升级扩展能力

针对HADOOP组件快速发展和迭代的现状,不同HADOOP组件的演进路线和版本升级计划各不相同。因此,WDP的重要工作是进行不同版本的适配和整合,针对不同版本进行适配和改造,完成一体化的版本技术升级和演进。

WDP拥有在线组件升级能力,针对不同组件的版本升级,提供了快速安全的升级方式:

老集群的升级和迁移能力

目前国内的运营商存量市场,老版本CDH5的hadoop2集群是主流,由于CDH5是免费的,后续对应的演进版本CDH6,CDP是收费的,授权费用较高,并且技术是国外的非国产技术,运营商进行后续版本演进升级的意愿不高,但又有明确的意愿升级到HADOOP3版本。针对这块存量市场,WDP具备从CDH5版本进行升级和迁移到WDP的HADOOP3集群,确保数据和权限完整迁移,并且能够进行快速迁移,在较短的停机时间完成系统的升级和迁移:

· 20台以下的规模:1小时完成

· 100台以下的规模:3小时完成

· 300台以下规模:6小时完成

案例讲解

某移动大规模集群

目前某移动是应用WDP的最大规模集群,当前接入WDP的机器超过100台,计划2022年完成1000台机器的接入。

配置了计算规模:

存储资源:600T

内存资源:25T

CPU资源:10000核

强大的任务调度能力

目前每天运行2W个调度任务,5T的数据,WDP的集群能够充分利用集群的并行处理能力。

高效的集群存储空间利用率

HADOOP3支持纠删码,相比传统的三副本模式,能够节省大量的存储空间。

目前配置了600T的存储(默认使用RS-6-3-1024k模式)

RS-6-3-1024k:每组数据包含6个数据块和3个校验块,一共9个块,存储使用效率6/9=67%,一个集群最小datanode数量为9,可允许3个datanode同时离线不影响应用访问数据。

原来的3副本模式,600T的资源,实际只能使用200T的利用率,使用纠删码,可以使用400T的实际存储空间。

技术展望与规划思考

持续扩展与版本演进

WDP的架构设计是基于可扩展的技术框架实现,在底座的架构上,可以对开源组件进行管控和集成。目前已经具备了比较完整的技术栈,主要还是在离线方面的应用为主。现在市场对实时性提出了更高的要求,在这背景下,实时数仓已经是重点的发展方向,WDP的技术演进路线,也需要在往这边更进一步。

我们将引入Apache Hudi + Clickhouse的框架构建实时数据湖底座,它将带来四大显著的效果:

数据时效更快:支撑业务系统,实现分钟级数据入湖,数据时效性从T+1到T+0;

处理性能更高:面对数据有删除、更新的场景Hudi比Hive处理效率提升10倍;

开发更简单:传统数据入湖不支持更新或者删除,开发人员需新建临时表,将数据处理后再进行覆盖,对同一个任务可能需要写很多代码去完成,有了Hudi的加持之后,做一个数据更新的操作就跟使用数据库一样简单,单条语句即可完成;

资源利用率更高:传统T+1的模式并不是24小时跑任务,计算高峰期在晚上,导致白天的资源利用不足,引入数据湖后,数据是实时采集入湖与实时计算,资源的使用分散到全天的过程,实际上把整个资源消耗的高峰和低峰抹平掉。

筑牢数据安全防护墙

增强数据底座在多方计算、隐私计算的能力、筑牢数据安全的保护墙,让数据可用不可见。

构建多方安全计算:多方计算、同态加密、零知识证明等技术都是属于这一范畴。其核心思想是设计特殊的加密算法和协议,从而支持在加密数据之上(即不接触数据明文内容)直接进行计算,得到所需的计算结果,其特点:

输入隐私性:安全多方计算研究的是各参与方在协作计算时如何对各方隐私数据进行保护,计算时不泄露任何本地数据;

计算正确性:多方计算参与各方就某一约定计算任务,通过约定MPC协议进行协同计算;

去中心化:安全多方计算中,各参与方地位平等,不存在任何有特权的参与方或第三方,提供一种去中心化的计算模式。

筑建可信任的大数据底座计算环境:隐私计算框架下,支持TEE可信计算技术,数据可用不可见,在保护数据安全的同时实现多源数据跨域合作,解决数据保护与融合应用难题。用户可放心的将数据放入安全的隐私计算区中,安全无忧的与第三方数据进行联合建模,支撑数据流通生态建设。

突破代码编译及组件兼容性瓶颈,自研WDP技术能力分享相关推荐

  1. vue在线组件交互/vue3在线代码编译

    最近在研究如何在浏览器上实现代码在线编译(就类似于地图那种,左边写代码,右边实时运行),然后就发现官方也在用@vue/repl的依赖,于是我也去研究了下,目前是大概搞出了一部分,我就分享出来,咱不遮遮 ...

  2. 【错误记录】Android Studio 编译时 Kotlin 代码编译报错 ( Not enough information to infer type variable T )

    文章目录 一.报错信息 二.解决方案 一.报错信息 在 Kotlin 代码中调用 findViewById(R.id.button) 代码 , 编译时报如下错误信息 : Not enough info ...

  3. java class文件 代码_java_基础——用代码编译.java文件+加载class文件

    java_基础--用代码编译.java文件+加载class文件 java_基础--用代码编译.java文件+加载class文件 [简单编译的流程] package com.zjm.www.test; ...

  4. c#编译时提高兼容性_幻像类型提高了编译时的安全性

    c#编译时提高兼容性 介绍 使用幻像类型是一种非常简单的技术,可用于提高代码的编译时安全性. 有很多潜在的用例,其复杂性程度各不相同,但是即使幻像类型的轻量级使用也可以显着提高编译时的安全性. 幻像类 ...

  5. 使用Roslyn将代码编译成单独的网络模块并将它们组装成动态库

    目录 介绍 代码 代码说明 主程序说明 实用方法 CreateCompilationWithMscorelib(...)方法 EmitToArray(...) 方法 总结 GitHub 上的代码 介绍 ...

  6. nvcc编译器之GPU代码编译(chapter 5)

    目录 5. GPU编译 5.1 GPU多代架构 5.2 GPU特性列表 5.3 应用兼容性 5.4 虚拟架构 5.5 虚拟架构特性列表 5.6 兼容性补全机制 5.7 nvcc示例 5. GPU编译 ...

  7. 7. 从0学ARM-GNU伪指令、代码编译,lds使用

    <嵌入式工程师到底要不要学习ARM汇编指令?arm学习文章汇总> <到底什么是Cortex.ARMv8.arm架构.ARM指令集.soc?一文帮你梳理基础概念[科普]> 关于A ...

  8. 英文单词来生成语句java_Java代码编译过程简述

    代码编译是由Javac编译器来完成,流程如下图1所示: 图1 Javac是一种编译器,能将一种语言规范转化成另外一种语言规范,通常编译器都是将便于人理解的语言规范转化成机器容易理解的语言规范,如C/C ...

  9. Java 代码编译和执行的整个过程

    一.简述 Java代码编译和执行的整个过程包含了三个重要的机制: ①Java 源码编译机制: ②类加载机制: ③类执行机制 二.Java 源码编译机制 Java 代码编译是由 Javac 编译器来完成 ...

最新文章

  1. Java多线程面试题通关手册!
  2. Struts2返回JSON对象的方法总结
  3. 构造函数 + 原型链继承 + 临摹面向对象模式的canvas动画框架
  4. C#代码总结02---使用泛型来获取Asp前台页面全部控件,并进行属性修改
  5. Qualitative and Quantitative
  6. 全面学习 Python 包,你 Get 了吗?
  7. 提升写作效率,让 Word 更好地为你所用
  8. linux系统自行清理归档日志_Linux下自动删除归档日志文件的方法
  9. 安全测试简历项目经验怎么写?
  10. 360浏览器如何设置默认极速模式
  11. linux命令练习4:cat命令;sort命令;grep命令以及cut命令练习
  12. excel熵值法计算权重_一文讲清楚分散投资(下)——让很多人顿悟的“熵增定律”在投资中的应用...
  13. SNS运营之Tumblr迅速涨粉的20个方法-适用于海外社媒推广,外贸独立站,自建站,让你粉丝快速翻倍
  14. 用vue简单写一个音乐播放器
  15. 简明扼要的概述微服务设计原则,深入开发微服务,就从今天开始
  16. 【涵子来信】——第一季——新春新年特别篇
  17. UVa272-TEX Quotes
  18. [附源码]Python计算机毕业设计SSM基于Java的流浪动物救助系统(程序+LW)
  19. 《生物化学与分子生物学》----糖类----听课笔记(二)
  20. 一台云服务器可以干什么?

热门文章

  1. 深度学习--前馈神经网络、反馈神经网络
  2. 修改和删除数据表字段
  3. java将int转换成字符串,Java将int转换为字符串
  4. QMT量化交易软件使用攻略(一)-相关重要概念
  5. Vue-router cannot read property _c of undefined
  6. 气液增压缸选型要认真对待
  7. 电脑开机后原来桌面的图标全都没了,鼠标可以移动但右击不管用
  8. 什么是闭包和如何使用闭包?
  9. 图片中的文字如何转换成Word文字
  10. Object常用方法、原型链、面向对象随笔