前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《你问我答》第一期 | 你想要的答案在这里

《你问我答》第一期 | 你想要的答案在这里

作者头像
腾讯大数据
发布2020-06-01 15:10:43
8540
发布2020-06-01 15:10:43
举报

各位小伙伴们大家好,咱们又见面啦~

《你问我答》栏目上线以后,受到了大伙的热烈欢迎

小编每天在后台收到的提问数不胜数

对于各位小伙伴的踊跃参与,小编深表感谢

就冲大家的热情

小编一定会兢兢业业地把栏目做好

帮助大伙解决各种疑难问题

但是……

你们的方向是不是有点跑偏啊喂!!!

再次隆重介绍一下

站在你们面前的是

汇聚腾讯Apache及Linux开源社区

国内一流大数据技术专家

超40位社区committer的专家天团

每一位都在各自领域拥有顶尖的技术水平

以及丰富的实践经验

问小哥哥们的年龄也就罢了

为什么还有“大神们如何做头发护理”这种问题?!!

emmmm......

关于这个,小编特意请教了技术团队里几位

头发颇为茂盛的大佬

答案是:

天赋异禀

最后,竟然还有小伙伴问“欧洲所有国家的名称?”

我——

作为腾讯大数据平台的小编

这几十条数据不在话下

好了,吐槽结束 

废话不多说

下面我们来看一看上周小编精选出来的几个提问吧!

01

@BIGBING:

请问腾讯大数据中心有什么开源项目?

陈鹏

腾讯大数据团队负责人。

回答

腾讯大数据最早从2014年,就将腾讯内部稳定运营的TDW平台对外开源。

2017年6月,腾讯大数据开源第三代高性能计算平台Angel(https://github.com/Angel-ML/angel)。2017年8月,Angel 正式宣布加入 LF 基金会;2019年8月正式发布一个里程碑式的版本Angel 3.0;2019年12月20日,腾讯开源项目Angel从LF AI基金会毕业,也是中国首个从LF AI基金会毕业的开源项目

2019年,在ApacheCon上,我们面向全球开发者正式宣布开源自身核心平台——实时数据采集平台TubeMQ(https://tubemq.apache.org/en-us/),并捐献给Apache社区,目前正在孵化中。

同年11月份,腾讯大数据正式开源了基于最主流的OpenJDK8开发的Tencent Kona JDK、资源管理平台核心TKEStack(https://github.com/tkestack/tke),以及分布式HTAP数据库TBase(https://github.com/Tencent/TBase)。

随着在大数据开源领域的开源逐步加速,腾讯正在成为中国大数据领域开源最全面的厂商。除了我们开源的项目外,腾讯大数据团队几十个PMC、committer和更多的贡献者也在持续不断回馈社区,参与社区建设。

02

@陶:

腾讯对Angel机器学习框架针对大规模场景做了哪些专门的优化呢?

Bruce

腾讯大数据智能学习团队负责人,负责腾讯Angel、联邦学习PowerIFL、图数据库等研发工作。

回答

Angel机器学习框架就是从服务于广告业务开始的,广告业务的一大特点就是模型非常高维,特征又非常稀疏,同时训练样本非常多,经常上千万、亿级别

针对这种大规模的场景,Angel主要从以下几个方面进行优化:

1、针对超大规模模型,Angel机器学习框架采用了PS(ParameterServer)参数服务器做模型并行的训练,大模型经过partitioner切分后分片存放在不同的PSServer节点上,如图1所示。Partitioner会考虑数据的稀疏程度以及不同算法的数据访问特点,对数据模型进行分区,尽量使得每个分区的负载均衡。

2、支持psFunc,在PS端可以执行用户自定义的操作函数,完成对模型的一些全局性操作,避免在worker端执行的代价,也减少了网络通信量。

3、其次,Angel在数据模型上,专门针对大规模稀疏数据进行设计,定义了稀疏存储的vecotor/matrix/graph等数据结构,压缩存储空间,同时提供高效的数据访问能力。

4、Worker端采用单executor多task的方式,可以在进程共享worker级别参数配置,减少网络通信开销。

图1.Angel参数服务器架构图

有了上面几个优化大招,Angel可以轻松搞定百亿甚至千亿级别的大模型。Angel本身以大数据框架Spark作为底层分布式框架,可以很容易与其他大数据业务系统对接起来。

Angel还在不断演进发展中,以便提供更多更好用的算法给大家,最近我们发布了release 3.1.0版本,包括大量图计算相关的功能,欢迎小伙伴去下载试用,提issue,提PR:

https://github.com/Angel-ML/angel/releases/tag/v3.1.0

03

@Richie:

Super SQL 两个不同数据源的大表join,是怎么实现的呢?

张韶全

腾讯大数据SuperSQL和Hive项目负责人,香港中文大学博士,《SparkSQL内核剖析》作者。

回答

两个大表的Join的实现是采用SortMergeJoin的方式。SortMergeJoin这种实现方式的前提条件是需要在Join前首先将数据排序

如下图所示,为了让两条记录能Join到一起,需要将具有相同key的记录在同一个分区,因此一般会进行一次Shuffle操作,根据Join条件确定每条记录的key,并且基于该key进行分区,将可能Join到一起的记录分到同一个分区中,这样在后续的Shuffle读阶段就可以将两个表中具有相同key的记录拉到同一个分区处理。在Shuffle读阶段,会对两个表中每个分区获取到的数据进行merge sort操作。

SortMergeJoin将参与Join的两张表抽象为流式遍历表和查找表。会基于流表来遍历,每次取出流表中的一条记录,根据Join条件计算,去查找表中查找所有满足Join条件的记录,并将满足条件的每条记录分别与流表记录Join得到Join后的记录。

在遍历流式表时,对于每条记录,都采用顺序查找的方式从构建查找表中查找对应的记录。由于排序的特性,每次处理完一条记录后只需要从上一次结束位置开始继续查找。

番外:

如果两张表中有至少一张有数据倾斜,会引起“长尾Task”问题(含有倾斜数据的分区的Join速度明显落后与其他分区,导致其他分区执行完成后长时间等待此分区完成)。这个问题常见的解决方式是数据分离和数据打散。

数据分离:

例如进行Join的两个表分别为t1和t2,有数据倾斜的表为t1。可以将t1的数据分为两部分t11和t12,t11中不包含数据倾斜的数据,t12中只包含数据倾斜的数据。t11和t12分别与t2进行Join,然后将结果Union。

SQL如下所示。

t11与t2的Join没有数据倾斜的问题。由于t12通常不会很大,t12与t2的Join采用BroadcastJoin。这样t1与t2的Join避免了数据倾斜的出现。

select * from ( select * from t11, t2 where t11.key = t2.key union all select /*+ BROADCAST (t12) */ * from t12, t2 where t12.key = t2.key )

数据打散:

数据打散的处理方法就是将大表(A)中的id加上后缀(即“id_0”-“id_2”),起到“打散”的作用。为了结果正确,小表B中的id需要将每条数据都“复制”多份。此时再执行join操作,将会产生三个task,每个task只需要关联一条数据即可,起到了分散的作用。具体到SQL写法,每个数据表可以如下操作:

经过处理之后再使用new_id来作为聚合条件。需要注意的是,这里的rand效果不一定非常均匀,后缀数量可以根据实际业务的数据分步来权衡。处理数据倾斜时,有必要先用count(*)来查看数据的分步情况。此外,可以专门实现一个UDF函数用于专门生成0到n的数组,便于添加后缀。

04

@唐: 

kona预计啥时候开源呢?

杨晓峰

腾讯大数据JVM团队负责人,中国计算机协会(CCF)系统软件专委委员,OpenJDK Author & Committer。

回答

目前,Kona JDK 8已经对外开源,具体请关注:

https://github.com/Tencent/TencentKona-8

我们也在积极准备对外开源Kona 11,暂时预计会在今年下半年的某个时间进行。

Kona JDK为社区提供了一个经过大规模生产验证的、可靠、高性能的OpenJDK选项,其沉淀了我们在大数据/机器学习、云计算领域的经验心得。

与此同时,Kona JDK团队也致力于尽可能地贡献到OpenJDK社区,让更广泛的生态受益,您可以从下面列表了解相关贡献情况:

https://bugs.openjdk.java.net/issues/?jql=labels%20%3D%20tencent-interest

部分工作已经体现在刚刚发布不久的JDK 14等产品中,请看Oracle官方发布的Java 14公告 :

https://blogs.oracle.com/java-platform-group/the-arrival-of-java-14

腾讯是有限被明确列举的国内贡献公司之一:

05

@悟道:

TBase是否适合业务一致性要求高的金融系统?

李巍

腾讯大数据TBase团队高级工程师。2011年加入公司,先后从事腾讯TDW分布式数据仓库、tPG数据库、TBase分布式数据库等系统的研发工作。

回答

先从大背景来看,一直以来金融行业数据库市场被Oracle等国外传统集中式商业数据库占领,但是随着贸易战的不断深入,金融行业数据库的国产化、安全自主可控也是大势所趋。

作为在腾讯公司培育十余年,支撑起公司内外部的微信支付、人保财险(PICC)等核心系统的TBase数据库,是有能力扛起这个重任的。

从技术特点上来看:

首先,TBase采用MVCC+全局时钟+2PC+SSI的方式来实现全局一致性分布式事务,保证事务的ACID,同时引入大量性能优化的设计来减少全局事务带来的开销,保证了高性能可扩展的分布式事务能力,这一技术可以很好的满足金融场景对事务一致性的高要求;

其次,TBase构建了以三权分立、强制安全规则,透明加密与脱敏为基础的全面的数据安全体系,满足企业安全合规的要求;

再次,TBase支持存储过程、窗口函数等诸多企业级特性的同时,能够高度兼容Oracle语法,能大幅降低业务的迁移成本。

从系统成本上来看:

TBase只需运行在普通的x86服务器上,相比较于传统数据库使用的大型机小型机,硬件成本的压缩也是很可观的。

恭喜以上5位小伙伴

你们将获得“腾讯视频VIP月卡”一张

请在后台私信小编

小编会将礼物发给你们~

以上就是《你问我答》第一期的全部内容了

欢迎大家就自己关心的技术问题

在文章下方以“#你问我答#+提问内容”的形式留言

专家和小编在这里静候你的提问喔!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯大数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档