有9年大数据开发经验,先后任职在哈罗、b站、得物app任职。熟练掌握java、scala、shell语言,有多次从零到一项目开发经验和开源项目源码二开。熟练掌握或二开过大数据技术栈如springboot、hive、hbase、hadoop、yarn、spark、flink(会使用层面)、elasticsearch、sorl、ranger、livy、presto、zookeeper、kafka、datax等。在哈啰任职期间设计和开发了一套智能业务指标监控系统,可动态配置分钟级监控上万个业务指标。b站任职期间主要工作是自研公司级项目的开发,pb级别数据量。涉及平台开发、任务治理,spark、hive、livy、hadoop、yarn引擎源码二开。参与杭州G20安保护航项目,获得G20杭州市政府颁发的安保纪念章。本人在职有工作,利用空闲时间和周末赚外快,大数据或java技术栈的均可。感谢联系
项目一: 得物App大渡河项目
技术架构:spring微服务框架+mybatis+spark+maxcompute+ es+mysql + adb + redis +hbase + datax + oss+clinkhouse等
项目描述:得物自建集群下阿里云dataworks,提供仿阿里云现有业务如数据集成、数据开发、数据地图、运维中心、权限管理等能力,让原运行在阿里云上的任务可以运行在自建集群上
责任描述:
1.owner数仓建表工具的开发和维护
2.数据集成(基于datax)的开发,提供odps、redis、hbase、es、redis、adb、mysql、clinkhouse等数据源的集成能力
3.参与数据开发模块的开发工作,将不同任务接入自研调度marvel中。
4.开发hive2mc任务功能,让自建集群的表回流到MC
项目二:Bilibili数据平台berserker相关开发
技术架构:spring微服务框架+mybatis+hadoop+hive+hbase+ es+mysql
项目描述:berserker为b站数据平台核心服务,微服务门户,关联相关子服务,提供数据BI、流计算、数据集成、数据开发、数据管理、运维中心、监控中心、数据盘、指标系统、权限管理功能模块。
责任描述:
1.berseker 数据管理页面提供elasticsearch查询支持,包括与hive表同步
2.berserker hive分区表生命周期管理程序的开发,通过页面配置生周期天数,定时调度调度程序,备份表partition后删除
3.新增berserker数据盘接口调用详情页面,在berserker中埋点,异步发送,存储接口调用情况,提供访问berserker各接口按时间范围内,接口id,接口名称,描述,用户,调用次数,平均响应时间,成功率,失败次数,失败次数及某接口具体调用详情(调用开始时间,结束时间,数据源,失败原因)
项目三:Bilibili数据平台底层权限管理
技术架构:hadoop+ranger+mysql
项目描述:数据平台仅提供了平台层面的权限控制,缺乏底层Hadoop文件系统的权限控制,用户权限单一
且权限过大(hive,hdfs用户),数据在裸奔。防止数据被误删或被盗取迫切需要有一套基于底层的权限管理方案
责任描述:
1.调研Hadoop HDFS文件系统权限管理Apache Ranger的使用。
2.编写压测代码,压测ranger优化ranger源码。使之能支撑QPS 3w+的支撑量
3.封装Ranger api提供berserker调用接口服务,编写现有berserker用户表权限的初始化代码
4.修改hadoop2.8源码,增加用户认证支持(后改为kerberos,此为B方案)。
项目四:Bilibili数据平台基础架构优化升级
技术架构:hadoop+yarn+spark+hive +livy+flink+tidb+clinkhouse
项目描述:平台任务量和数据量日益增大,线上数据量200PB+,集群大小1600+,内存350TBvcores 118000在现有服务器数据不变下,开源版本hadoop2.8.4 yarn调度能力以及达不到要求,每日线上任务大量pending,急需提升yarn调度,后yarn调度优化后瓶颈解决,转而优化引擎。
责任描述:
1.定位hiveServer启动慢问题,优化hiveServer启动时间。
2.定位开源版本hadoop yarn调度弱的原因,修改源码优化yarn调度能力
3.编写程序全量跑线上任务比对spark2.1,spark3.0,spark2.4,统计各自任务执行成功率,任务耗时,数据质量,失败原因等生成excel报表。选择版本spark2.4作为要升级的引擎。
4.针对hive on spark任务,优化spark,修改spark源码尽可能支持原有hive任务的spark兼容性。
5.Spark thriftserver beeline方式客户端无日志问题,修改源码支持客户端打印日志
6.Spark 修改源码打通与berserker,archer,dispatcher传递任务名展示任务调用
7.Spark 修改源码增加埋点记录一条任务访问hdfs及hive表血缘关系,存储到mysql
8.Spark 修改源码优化小文件merge
9.部署spark2.4,及spark thriftServer服务,在线灰度升级spark2.1到spark2.4
10.Spark接入配置中心,配置实时生效。
11.专家系统-诊断任务hive模块开发
项目五:Bilibili数据
得物自建集群,任务从阿里云dataworks下掉,提供仿阿里云现有业务如数据集成、数据开发、数据地图、运维中心、权限管理等能力,让原运行在阿里云上的任务可以运行在自建集群上
数据平台仅提供了平台层面的权限控制,缺乏底层Hadoop文件系统的权限控制,用户权限单一且权限过大(hive,hdfs用户),数据在裸奔。防止数据被误删或被盗取迫切需要有一套基于底层的权限管理方案 。压测优化ranger源码。使之能支撑QPS 3w+的支撑量
随着公司日益壮大,全能车薅羊毛情况出现,迫切需要一套能监控各业务接口数据是否异常的服务。 使用flink根据redis相应库中的自定义字段解析不同源做ETL清洗,清洗后的数据入库kafka,进入spark聚合程序根据redis中的自定义的聚合sql做聚合 数据一分钟粒度 入库时序