美文网首页
大数据工程师技能总结

大数据工程师技能总结

作者: x4passer | 来源:发表于2020-01-08 17:32 被阅读0次

    业务分层划分

    • 边缘部分

      • 数据收集,高效、不丢、资源消耗低、可审计监控
      • 数据传输,域名、链路选择
      • 数据开发,部分数据开发需要下沉到边缘
    • 中央部分

      • 通用基础设施

        • 机器选型,针对不同服务选择合适的机型
        • 集群搭建,选择合适的发行版本
        • 配置管理,做到自动化下发配置,管理集群,服务
        • 监控管理,监控大数据平台组建,为调优、扩容提供数据支撑
      • 数据平台基础

        • 数据接入,选择Flume,易扩展,方便接入各类数据
        • 数据计算,选择Spark,MR
        • 数据存储,Kafka、HDFS、HBase、ClickHouse、ES、Mongodb
        • 计算管理,yarn进行计算资源管理
        • 任务调度,选择azkaban
        • 数据分析,hiveSQL、sparkSQL
      • 数据管理

        • 数据开发,工具封装、任务调度、测试等
        • 数据仓库,ODS、DW(视情况细分为DWD,DWS)、DM(亦或者为ADS)
        • 数据治理,元数据管理、数据质量管理
      • 数据使用

        • 数据查询,提供给运维
        • 数据运营,提供给项目
        • 数据报表,提供给老板
        • 数据API,提供给客户

    平台建设总结

    • 边缘

      • Flume、FileBeat的收集传输数据
      • 做好监控,保障不丢数据,延迟低,资源消耗可控
    • 中央

      • 通用基础设施
        • 了解硬件选型需要注意的问题点,选择合适的硬件
        • 针对不同的服务,做合适的系统配置优化
        • 熟练掌握大数据集群的搭建,并结合ansible做到近100%的自动化创建、管理、维护
        • 采用Telegrafa、influxdb、grafana,监控内部大数据集群和spark等计算状态信息
      • 数据平台基础
        • 数据接入
          • 代理层,采用Haproxy,4层代理,可以在升级后端时,选择性的摘除backend
          • 接收层,采用flume,研读过Flume的Memory channel代码,开发过Flume插件
        • 数据计算
          • 涉及流数据开发、离线统计开发,涵盖实时监控、通用用户数据统计、特殊客户需求开发等多方面,
          • 对计算进行了二次封装,该工具计算采用spark,配置采用yaml,配置后提交azkaban调度,完成计算需求,支持流和文件两大类输入,支持多种存储输出,大大提升了计算开发
          • ETL相关,该部分主要涉及到ODS、DW、DM之间数据的流动,主要是用hivesql,调度采用azkaban,hivesql 底层引擎测试过tez,部分job 使用该引擎
        • 数据存储
          • kafka,作为日志消息队列,深度了解kafka,熟悉kafka读写过程,针对kafka做过大量的调优
          • HDFS,ODS、DW的存储介质,了解HDFS的内部机制,内部HDFS的维护者,HDFS存储的数据为parquet格式,计算效率高,方便和Hive结合
          • DB存储,HBase 作为海量OLTP存储,有很高效的写入性能,略微可以的查询性能,部分高度聚合的专用数据存储在HBase中;ClickHouse 作为一款优秀MPP架构的OLAP 数据库支持实时写入,查询聚合能力极强,并发略低,用于各类多维不确定数据分析存储;ES 检索能力,多维查询能力很棒,是部分特殊日志的存储介质,可以方便查询和画图
        • 计算资源管理
          • yarn,目前大数据集群最大的占有,数量的掌握yarn计算资源调度管理,针对不同部分,配置不同的队列,进行资源隔离,并且鉴于不用时段任务状态各异,会动态的调整yarn各个队列的capacity
        • 任务调度
          • 目前较为常用的是azkaban、airflow,我们选择了azkaban,用它来调度hive,spark,mr等,内置了多种job type,方便易用
        • 数据分析
          • 临时需求,使用的是hivesql/spark sql,查询的数据涉及DM、DW或者ODS,视穿透情况而定;
          • 通用需求,使用的是封装的计算工具,一般涉及到数据的输出
      • 数据管理
        • 数据开发套件,目前还比较简陋,但是可以方便快捷的将计算开放给使用方,简单配置即可进行数据开发
        • 离线数据仓库
          • ODS层,数据接入统一以parquet的格式持久化到HDFS形成ODS,根据内外部需求开发ETL,将ODS数据转化写入DW,ODS层数据保存至少6个月
          • DW层,目前根据量级和数据复杂度划分为一层或者两层,数据量小且计算频次低,则这部分业务只有DWS层;针对一些负责多维的数据,增加一层通用聚合层DWD层,形成数据宽表,为DWS层服务;DW数据保存1-3年
          • DM(亦或者为ADS)层,则是最终数据提供层,高度聚合数据存储到hbase或者hdfs,对于维度较多,查询不太确定的数据存储到clickhouse,永久保存,对于过老的数据,可以同步到廉价存储进行保存
        • 实时数据仓库
          • DW层,通用聚合层DWD层,存储数据到kafka;DW数据保存1-3天
          • DM(亦或者为ADS)层,则是最终数据提供层,实时消费kafka计算写入,高度聚合数据存储到hbase或者hdfs;对于维度较多,查询不太确定的数据存储到clickhouse
        • 数据治理
          • 元数据管理,目前比较简陋,wiki记录或者gafana查询平台选择对应数据源
          • 数据质量管理,目前采用边缘独立计算和中央抽样实时计算进行实时对比,结果集成在grafana
      • 数据使用
        • 数据查询,需求方为运维,提供的工具有命令行查询工具、勾选式查询平台、kibana查询平台
        • 数据运营,需求方为项目,提供勾选式查询平台
        • 数据报表,需求方是项目或者客户,对内提供勾选式查询平台;对外提供API查询;或者自动化报表生成发送
        • 数据API,需求方是客户,提供形式是API服务

    个人技能总结

    • 通用基础设施
      • 熟悉硬件选型,完成过多种服务的硬件选型,曾在单一服务优化中成本提升7%,单机性能提升50%
      • 优秀的运维技能,发现并排查到一个系统内核bug
      • 熟练掌握大数据集群的搭建,并结合ansible做到近100%的自动化创建、管理、维护
      • 采用Telegrafa、influxdb、grafana,监控内部大数据集群和spark等计算状态信息
      • 大数据配套组件,引入过azkaban调度平台、dr-elephant等
    • 数据平台基础
      • 数据接入
        • 熟悉flume开发,研读过Flume的Memory channel、kafkasink 等多个核心组件的代码,开发过Flume interceptor插件
      • 数据计算
        • 涉及流数据开发、离线统计开发,涵盖实时监控、通用用户数据统计、特殊客户需求开发等多方面,熟练掌握spark、hive、mr
        • 语言涉及java、golang、scala
        • 为了方便计算封装了一个通用计算工具,提升了开发效率
        • 开发过IP转换的hive UDF模块
      • 数仓建设
        • 做过简单的数仓分层建设、建表规范话、etl规范化等
      • 数据存储
        • kafka,熟练掌握kafka,作为ODS数据前置日志队列和实时计算存储,了解过部分组件的代码,内部解决过kafka出现的各类问题
        • HDFS,熟练掌握HDFS的搭建、维护,深入了解过hdfs读写、高可用、配置优化等
        • 数据格式,大量使用过parquet,测试使用过orc,carbondata,了解avro、thrift等rpc格式,开发过filebeat的thrift output,对接flume 的thrfit source
        • DB存储
          • Mysql,数据迁移、分区表、更换引擎、数据备份、读写分离、主从同步
          • MongoDB,数据迁移、数据备份、部分小优化
          • Hbase,结合phoenix使用,了解hbase底层原理,做过hbase的深度测试调优
          • Clickhouse,了解使用过clickhouse多个mergeTree 引擎,打架维护过两大通用集群架构
          • ES,熟悉ES 上下游组件,熟练掌握logstash、hangout等数据写入工具
      • 其他调研了解,仅搭建使用,了解了大概
        • prestodb
        • kudu
        • carbondata
        • Maxwell & canel
    • 数据使用
      • 简陋版统一数据查询平台,基于grafana simple-json-datasource做数据源开发
      • 尝试过superset和zepplin场景不太适用,放弃了
    • 开发技能
      • 熟练掌握java,golang开发,了解scala,学习过akka
      • 熟悉了解JVM,JMM相关知识
      • 熟悉了解golang gpm和内存管理相关知识
      • 熟练掌握hive SQL,spark 开发,FLume开发,MR开发

    相关文章

      网友评论

          本文标题:大数据工程师技能总结

          本文链接:https://www.haomeiwen.com/subject/gjvsactx.html