在字节跳动内部,Presto 主要支撑了 Ad-hoc 查询.BI 可视化分析.近实时查询分析等场景,日查询量接近 100 万条.本文是字节跳动数据平台 Presto 团队-软件工程师常鹏飞在 PrestoCon 2021 大会上的分享整理. 在字节跳动内部,Presto 主要支撑了 Ad-hoc 查询.BI 可视化分析.近实时查询分析等场景,日查询量接近 100 万条. • 功能性方面:完全兼容 SparkSQL 语法,可以实现用户从 SparkSQL 到 Presto 的无感迁移: • 性能…
本文是字节跳动数据平台开发套件团队在1月9日Flink Forward Asia 2021: Flink Forward 峰会上的演讲分享,将着重分享Flink在字节跳动数据流的实践. 字节跳动数据流的业务背景 数据流处理的主要是埋点日志.埋点,也叫Event Tracking,是数据和业务之间的桥梁,是数据分析.推荐.运营的基石. 用户在使用App.小程序.Web等各种线上应用时产生的行为,主要通过埋点的形式进行采集上报,按不同的来源分为客户端埋点.Web端埋点.服务端埋点. 不同来源的埋点都…
来自字节跳动的管梓越同学一篇关于Apache Hudi在字节跳动推荐系统中EB级数据量实践的分享. 接下来将分为场景需求.设计选型.功能支持.性能调优.未来展望五部分介绍Hudi在字节跳动推荐系统中的实践. 在推荐系统中,我们在两个场景下使用数据湖 我们使用BigTable作为整个系统近线处理的数据存储,这是一个公司自研的组件TBase,提供了BigTable的语义和搜索推荐广告场景下一些需求的抽象,并屏蔽底层存储的差异.为了更好的理解,这里可以把它直接看做一个HBase.在这过程中为了能够服务…
背景 字节跳动 Data Catalog 产品早期,是基于 LinkedIn Wherehows 进行二次改造,产品早期只支持 Hive 一种数据源.后续为了支持业务发展,做了很多修修补补的工作,系统的可维护性和扩展性变得不可忍受.比如为了支持数据血缘能力,引入了字节内部的图数据库 veGraph,写入时,需要业务层处理 MySQL.ElasticSearch 和 veGraph 三种存储,模型也需要同时理解关系型和图两种.更多的背景可以参照之前的文章. 新版本保留了原有版本全量的产品能力,将存…
Go RPC 框架 KiteX 性能优化实践 原创 基础架构团队 字节跳动技术团队 2021-01-18…
https://mp.weixin.qq.com/s/wSaJYg-HqnYY4SdLA2Zzaw RPC 框架作为研发体系中重要的一环,承载了几乎所有的服务流量.本文将简单介绍字节跳动自研网络库 netpoll 的设计及实践:以及我们实际遇到的问题和解决思路,希望能为大家提供一些参考. 前言 字节跳动框架组主要负责公司内 RPC 框架的开发与维护.RPC 框架作为研发体系中重要的一环,承载了几乎所有的服务流量.随着公司内 Go 语言使用越来越广,业务对框架的要求越来越高,而 Go 原生 net…
前言 我们平时在使用软件的过程中是不是遇到过这样的情况:"这个 app 怎么还没下载完!"."太卡了吧!"."图片怎么还没加载出来!"."怎么刚进去就卡了!"."这怎么点了一下就退出了!"等等,这些情况其实包含了我们性能优化的主要内容. 性能的优化是一个老生常谈的点,也是一个比较重要的点.特别是诸多大厂在这方面尤为看重,毕竟就算0.1%的瑕疵,影响的讲师百万级,千万级的用户体验! 如果你已经有 2 - 3…
背景 字节跳动开发套件数据集成团队(DTS ,Data Transmission Service)在字节跳动内基于 Flink 实现了流批一体的数据集成服务.其中一个典型场景是 Kafka/ByteMQ/RocketMQ -> HDFS/Hive .Kafka/ByteMQ/RocketMQ -> HDFS/Hive(下面均称之为 MQ dump,具体介绍可见 字节跳动基于Flink的MQ-Hive实时数据集成 ) 在数仓建设第一层,对数据的准确性和实时性要求比较高.​ 目前字节跳动中国区 M…
前言 时至今日,短视频App可谓是如日中天,一片兴兴向荣.随着短视频的兴起,音视频开发也越来越受到重视,而且薪资水涨船高,以一线城市为例,音视频工程开发的薪资比Android应用层开发高出40%. 但是由于音视频开发涉及知识面比较广,入门门槛相对较高,让许许多多开发者望而生畏. 虽然网上有很多的博文总结了音视频打怪升级的路线,但是音视频开发相关的知识都相对独立,有讲"音视频解码相关"的,有讲"OpenGL相关"的,也有讲"FFmpeg相关的",但…
作为数据目录产品,Data Catalog 通过汇总技术和业务元数据,解决大数据生产者组织梳理数据.数据消费者找数和理解数的业务场景,并服务于数据开发和数据治理的产品体系.本文介绍了字节跳动 Data Catalog 系统的构建和迭代过程,将分为上.下篇发布.上篇主要围绕 Data Catalog 调研思路及技术架构展开. 一.背景 1. 元数据与 Data Catalog 元数据,一般指描述数据的数据,对数据及信息资源的描述性信息.在当前大数据的上下文里,通常又可细分为技术元数据和业务元数据.…
更多技术交流.求职机会.试用福利,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 相信大家都对大名鼎鼎的ClickHouse有一定的了解了,它强大的数据分析性能让人印象深刻.但在字节大量生产使用中,发现了ClickHouse依然存在了一定的限制.例如: 缺少完整的upsert和delete操作 多表关联查询能力弱 集群规模较大时可用性下降(对字节尤其如此) 没有资源隔离能力 因此,我们决定将ClickHouse能力进行全方位加强,打造一款更强大的数据分析平台.本篇将详细介绍我们是如…
更多技术交流.求职机会.试用福利,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 ClickHouse 作为目前业内主流的列式存储数据库(DBMS)之一,拥有着同类型 DBMS 难以企及的查询速度.作为该领域中的后起之秀,ClickHouse 已凭借其性能优势引领了业内新一轮分析型数据库的热潮.但随着企业业务数据量的不断扩大,在复杂 query 场景下,ClickHouse 容易存在查询异常问题,影响业务正常推进. 字节跳动作为国内最大规模的 ClickHouse 使用者,在对 C…
[北京/上海/南京][部门直推][可查询][实习&社招]字节跳动数据平台前端内推 重要信息,写在前面  [投递邮箱]chengxinsong@bytedance.com [微信扫码] 2019接近尾声,最后上车的机会,一定要抓住!!! 投过字节跳动,面试挂过不要紧!部门直推,捞起再面! 实习同学对项目经验没有强制要求.聪明.基础过硬.对操作系统.计算机网络.数据结构.算法有一定的理解即可! 21届及以后的同学欢迎来实习,实习转正so easy,妈妈再也不用担心我的offer! 我们是干啥的   …
前言 博主目前从事Android开发3年,前两年一直在抖音工作.我这篇文章并不是简单的描述一些面试中的题,或者总结一些Android的知识,而是想记录我整个的想法和准备的过程,以及一些心得体会,让大家更加全面的去看待工作.跳槽和生活(从我的角度,当然肯定有不合理的地方,大家借鉴就好) 抖音两年 在字节跳动的两年时间中见证了抖音从百万日活到2.5亿.团队从10人到100多人的过程,技术上不同时期的选型以及迭代.沉淀和更替.项目上经历了一个工程到模块化再到组件化最后插件化,深刻理解项目不同阶段和不同…
大家应该看过很多分享面试成功的经验,但根据幸存者偏差的理论,也许多看看别人面试失败在哪里,对自己才更有帮助. 最近跟一个朋友聊天,他准备了几个月,刚刚参加完字节跳动面试,第二面结束后,嗯,挂了- 所以啊,不管怎么样,不论是什么样的大小面试,要想不被面试官虐的不要不要的,只有刷爆面试题题做好全面的准备,当然除了这个还需要在平时把自己的基础打扎实,这样不论面试官怎么样一个知识点里往死里凿,你也能应付如流~ 字节跳动Android实习面试凉凉经 一面问的 Java 和 Android 基础 1.Jvm…
最近脉脉职言区有一条讨论火了: 哪家互联网公司薪资最'厉害'? 下面的评论多为字节跳动,还炸出了很多年薪40W的测试工程师   我只想问一句,现在的测试都这么有钱了吗? 前几天还有朋友说,从腾讯跳槽去了字节,一开始我还不理解,以为他是在走职场下坡路.但现在看来,字节跳动的薪资是真的香. 按照脉脉和知乎上字节员工的说法,即便是应届毕业生都可以拿到比阿里高 20%-30% 的薪资,而有工作经验的员工,普遍薪资水平高出业内 30% 以上. 再看看数据,字节跳动测试工程师的平均月薪就有 2W,根据拉勾网…
说在前面,面试时最好不要虚报工资.本来字节跳动是很想去的,几轮面试也通过了,最后没offer,自己只想到几个原因:1.虚报工资,比实际高30%:2.有更好的人选,这个可能性不大,我看还在招聘.我是面试Android开发的,3年经验,下面是面试流程: 一面 1.插件化.启动activity的hook方式.taskAffity.2.okhttp支持HTTP2?http2的功能有哪些?tcp方面拥塞控制?tsl的握手和具体的非对称加密算法.非对称名称3.handler的post(Runnable)如何…
新人报道,没有什么可分享的,就记录一些自己求职的体会和心得. 我是在校招补录的时候参加了今日头条的招聘,岗位是Android开发,最后成功拿到了入场券.但是这也丝毫不值得骄傲,大家都知道:技术日新月异,要是几个月不更新自己的技术栈,就会被时代淘汰. (更何况大佬那么多,我不过是个才入门的小弱鸡~) 以下是我总结进入头条的两大决定性因素: 一是,刷面经和笔试题非常关键.你将会在搜集资料的过程中了解到头条系的状况,具体岗位所面临的问题和笔面试的风格特征,做到有备无患. 二是,面试官会更偏爱逻辑思维强…
10 月 27 日举办的稀土开发者大会上,字节跳动 Web Infra 正式发起 Modern.js 开源项目,希望推动现代 Web 开发范式的普及,发展完整的现代 Web 工程体系,突破应用开发效率的瓶颈. 传统的 Web 开发是"服务器端为中心"的开发范式,近年来,已经越来越多的转移到"客户端为中心"的现代 Web 开发范式,开发门槛不断降低,效率不断提升.产品研发可以更少的关注底层技术细节,更专注在用户需求和市场价值上.而传统的前端技术栈难以解决"开…
作者:李卓立 仲凯宁 背景介绍 在<字节跳动 DanceCC 工具链系列之Swift 调试性能的优化方案>[1]一文中,我们介绍了如何使用自定义的工具链,来针对性优化调试器的性能,解决大型Swift项目的调试痛点. 在经过内部项目的接入以及一段时间的试用之后,为了精确测量经过优化后的LLDB调试Xcode项目效率提升效果,衡量项目收益,需要开发一套能够同时获取Xcode官方工具链与DanceCC工具链调试耗时的耗时监控方案. 一般来说,LLDB内置的工作耗时,可以通过输入log timers…
虽然已经临近年末,但是还是萌生要看新机会的想法,主要的原因是觉得在目前的岗位上技术增长遇到的瓶颈,因此想去做一些更有挑战的工作.因为仍然准备继续在深圳工作,因此选定了三家公司,腾讯.字节跳动和 shopee,考虑的岗位方向仍然是后台开发(其他岗位也面不上呀,伤心).虽然年底跳拿不到年终奖了,但是我觉得和自己个人整个职业生涯的发展比起来算不了什么,最好的时机永远是当下. 准备 敲定了方向和目标后就开始系统准备,主要分为以下几个方面来准备. 算法题 事先已经看过别人的社招面经知道头条每轮技术面都有算…
前言 我大概我是从去年12月份开始看书学习,到今年的6月份,一直学到看大家的面经基本上百分之90以上都会,我就在5月份开始投简历,边面试边补充基础知识等.也是有些辛苦.终于是在前不久拿到了字节跳动的offer,现在我也来写面经,希望能帮助到大家! 面经 Java基础 0.HashMap的源码,实现原理,JDK8中对HashMap做了怎样的优化. 拉链结构,数组+链表,原理是hash找数组,冲突后拉链表,1.8优化为会进化成红黑树提高效率,并且使用2^n来做容量值 引申点: equal & has…
前言 2019年5月,在收到offer邮件的那一刻,我仍然不敢相信自己这一番际遇.经历了七场面试,终于得偿所望,拿到了字节跳动的offer. 做加入大厂的决定并不是巧合.在多年的职业生涯里,我曾多次对接一线互联网公司的服务,与一线公司的员工有不少接触,再加上各种技术博客的耳濡目染,愈发让我对大厂心向往之.另外,二线互联网公司节奏相对较慢,内部的管理机制并不能满足我对极致工程师文化的期待.也许我注定要被996文化洗礼吧^_^ 正如我之前博客所述,凭借扎实的C#.net功底,我进入了一家二线互联网公…
架构就像是一场进化史,根据不同时期的需求,演变出不同的架构,车轮滚滚,到今天,移动端框架百花齐放,让人目不暇接.但是其中的本质是磨灭不了的,换言之根本没有磨灭而是隐藏到了人们所看不到的地方,但是依旧发挥着不可或缺的作用. 为什么需要架构? 一个Activity走天下,包含各种模块和功能 臃肿类太多 不同功能,不同层次拎不清楚,混合在一起 重复代码太多,复用性为差 无法协作开发, 耦合严重,bug太多 等等 当我们新进一个公司,接受别人的项目的时候,基本都会说句MMP,SHI一样的代码啊,啥玩意啊…
想在金九银十找工作的现在可以开始准备了,这边给大家分享一下面试会遇到的问题. 找工作还是需要大家不要担心,由于我们干这一行的接触人本来就不多,难免看到面试官会紧张,主要是因为怕面试官问的答不上来,答不上了千万不要胡扯一些.有了这篇文章,就不一样了,借鉴这位读者分享的面试经历,大家可以有针对性的开始准备刷题了. 下面分享下这位读者的面试内容: 一面 60min 总的来说,一面侧重考察基础(Java.Android.数据结构与算法.网络.操作系统.数据库),流程走下来到问重点算法的时候,只要求讲清楚…
字节跳动的面试难不难其实很难去非常准确的定义,但是能肯定的一点是,字节跳动的面试题都很有水平,真正考察了该岗位在以后工作中需要的能力. 大学学的Java后面又自学Android方向,跟着老师在实验室做了一些项目.以前听说,头条要手撕红黑树的事,心里还是蛮害怕.就想着,如果让我写红黑树,那我就直说写不来. 不过真正面试了,才发现,还好,没有让手写红黑树. 这次面试从6月2日开始一面,到6月10日hr面.一周过去仍未收到offer,内心实属煎熬.于是便整理了一下面经以及心理历程.没想到第二天一早HR…
字节面试过程: 4月4号进行内推,7天的简历评估,11号接到电话面试,尽管猝不及防回答仓促,但好在前期准备充分,通过.14号现场面试,次日收到通知,通过,二面.三面都很顺利.20号进行HR面,26号收到Offer. 应战大厂,一靠积累技术:二靠总结复盘.面试结束后把各大厂的面试经验及高频考点梳理了一遍,整理了一套完整的Android面试考点总结(有PDF版在文末分享给大家),希望能够帮助计划冲大厂的小伙伴. 以下为字节跳动三轮技术面经历: 专业一面:(59min) 1.自我介绍 2.Flutte…
谈谈我的真实感受吧- 程序员真的是需要将终生学习贯彻到底的职业,一旦停止学习,离被淘汰,也就不远了. 金三银四.金九银十跳槽季,这是一个千年不变的话题,每到这个时候,很多人都会临阵磨枪,相信不快也光.于是,大家都会搜集一些面试题. 但其实,对于一些不跳槽的同学来说,真的也很有必要去研读一些大厂的面试题.了解一下最近的主流技术,看看大厂在意的点是什么,再在自己的工作中去完善,去总结. 于是,我们花费了几个月的时间,整理出了Android大厂题(附带详细答案). 2017-2020字节跳动 Andr…
一眨眼又到金三银四了,不知道各位有没有做好跳槽涨薪的准备了呢? 今天的话大家分享一份最新的<字节跳动Android面试手册>,内容包含Android基础+进阶,Java基础+进阶,数据结构与算法,计算机网络部分.废话不多说,下面看详细内容. 一.Android基础+进阶 1.Activity启动模式 2.Activity的启动过程 3.进程通讯 4.Android Binder之应用层总结与分析 5.进程保活方法 6.从源码了解handler looper ,messageQueue思路 7.…
安卓开发大军浩浩荡荡,经过近十年的发展,Android技术优化日异月新,如今Android 11.0 已经发布,Android系统性能也已经非常流畅,可以在体验上完全媲美iOS. 但是,到了各大厂商手里,改源码.自定义系统,使得Android原生系统变得鱼龙混杂,然后到了不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象. 另外,随着产品内容迭代,功能越来越复杂,UI页面也越来越丰富,也成为流畅运行的一种阻碍.综上所述,对APP进行性能优…