各位小伙伴们大家好,咱们又见面啦~
《你问我答》栏目上线以后,受到了大伙的热烈欢迎
小编每天在后台收到的提问数不胜数
对于各位小伙伴的踊跃参与,小编深表感谢
就冲大家的热情
小编一定会兢兢业业地把栏目做好
帮助大伙解决各种疑难问题
但是……
你们的方向是不是有点跑偏啊喂!!!
再次隆重介绍一下
站在你们面前的是
汇聚腾讯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 = tencent-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月卡”一张
请在后台私信小编
小编会将礼物发给你们~
以上就是《你问我答》第一期的全部内容了
欢迎大家就自己关心的技术问题
在文章下方以“#你问我答# 提问内容”的形式留言
专家和小编在这里静候你的提问喔!