1

之前的一些学习目标和计划

 2 years ago
source link: https://timemachine.icu/posts/291450/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

之前的一些学习目标和计划

发表于2022-04-07更新于2022-04-07字数统计1.5k阅读时长8分阅读次数2

好久没有更新过博客了,去年接触了很多大数据技术相关的东西,也做过一些基准测试。但是很多东西依然了解的相对浅显,只停留在使用层面,想下笔却又不知道从何写起。2021 年结束的时候曾列过一些计划,也算是学习过程中的一份指南吧。

  • Hadoop

    • yarn 官方文档,要搞明白 yarn ui 上的参数,比如容量调度这些
      • yarn 架构
      • yarn 的容量调度策略,常见参数,作业帮采用的就是容量调度策略 https://cloud.tencent.com/developer/article/1195056
      • yarn 的公平调度策略
      • RM 的重启和 HA
      • 分层次来看的话,就是 yarn 的整体架构(例如整个 job 的提交流程和通信) -> 各个组件内部的子组件(例如 RM 中的 schedual 和 AM) -> 子组件常见的一些策略(比如 failrecover, HA,调度策略,状态管理,资源模型)。这其中涉及到一些常见的配置,对于集群运维和平常的信息集群查看比较有用。另外可以拓展的来看,其和 flink 和 spark 等框架提交任务的过程都是异曲同工之妙。
    • MR 官方文档,主要是执行计划
    • HDFS 存储
    • 业界提供的只是一个思想,大部分需要结合内部业务场景做灵活调整,并且要结合技术选型,确定常用维度,schema 的设计很重要。大体上分为如下步骤
      • 数仓规划,数据域和业务过程的划分,数仓建设的基础。
      • 数据标准,词根表,字段命名,字段业务含义和口径,强依赖于产品提供。
      • 数据指标,指标含义及口径,强依赖于产品提供。
      • 模型设计,需要着重考虑易用性,拓展性,规范性,定义分层数据流向标准,并且要考虑从表模型的设计及存储索引的简历来优化 SQL 的开发。
      • 模型评审,上面每一步都录入建模平台以保证业务一致性及可查性,避免歧义。
      • 资源预估,ETL 资源的合理预估,不限于存储,计算队列。
      • 离线拓展到实时,避免重复消费原始 topic,通过分发服务分发计算好的指标供各个分析主题链路消费
    • hive 参数优化、
    • 主要是扫描小文件,join 的倾斜,怎么定位出问题的 sql 逻辑。
    • hive on spark & hive on tez & hive on mr
    • 小文件主要存在三个方面的问题,存储压力(无法充分利用压缩),查询(扫描小文件,尤其是某些情况下的串行扫描,耗时非常长),元数据管理(增加元数据压力)
  • Flink

    • Flink 官方入门+进阶教程

      • Flink overview
      • Flink 的一些基础概念,比如有界无界流,状态,window + watermark
      • Flink 部署运行,常见命令
      • Flink DataStream API
      • Flink 客户端操作,比如实验性的 sql client
      • Flink Table API,在作业帮主要用的是 Table API,并且开发平台屏蔽掉了大部分的底层逻辑
      • Flink SQL
      • Flink Runtime 运行机制,比如提交流程,streamGraph -> jobGraph -> ExecutionGraph 的转换,语法树的解析,DAG 的生成,任务的重启策略
      • Flink Time 的概念和机制,以及要解决的问题
      • 以分层的角度来看 Flink 任务的提交过程,目前有个大致了解,但是说不上来,需要总结下
      • Flink 执行作业解析
      • Flink 网络流控和反压
      • Flink metrics
      • Flink Connector
      • Flink State
      • Flink Table SQL
    • Flink 的优化

      • 重点在于前期良好的资源评估,主要结合业务高峰期 qps
      • 因为本身资源足够,碰到的纯性能问题不多,优化点主要是分区不均匀的 topic,空跑的 slot 造成的资源利用率过低。以及释放掉高峰期数据处理空闲的内存。
    • Flink 官方文档阅读笔记

  • Kafka

    • Kafka 视频教程
  • Spark

    • spark catalyst 优化器源码
  • Doris

    • Dorisdb 执行计划查看,DAG 查看
    • 使用 dorisdb 过程总遇到的问题,大部分性能问题是通过重建 schema 来解决的,让存储更均匀,并且尽量命中前缀索引。
      • dorisdb 对 value 列的索引支持不太好
    • doris 的实时摄入性能测试及优化
    • doris 的离线摄入性能测试及优化
  • Druid

    • 常见优化
      • 摄入任务优化,hadoop based && kafka based,任务性能和最终生成的 segment 大小,分片的的折衷。
      • segment 存储优化
    • Druid 和 Doris 的不同地方,哪些场景下用 druid 比较好
      • druid 全列索引。dorisdb 只有 key 列上的前缀索引,bitmap 索引,大数据量下,低基维的检索可能不如 druid 好。
      • druid 无法存储明细数据,但是实施摄入相对简单,本身集成支持足够。doris 可以存储明细数据,但是实时摄入的话需要自己开发代码,受限于基建服务的问题,整个链路比较长。
    • Druid 离线摄入过程及优化
    • Druid 实时摄入过程及优化
    • Druid 集群运维,metrics 收集
    • Druid 物化视图
  • ElstaicSearch

    • 官方文档书籍 ElstaicSearch 权威指南
    • 深入的不多,只知道设置字段类型的时候需要考虑是否用到倒排索引,尤其是数字类型的低基维
  • 常见数据结构

    • bitmap
  • metrics 监控

    • 常见监控指标
    • kafka metrics
    • spark metrics
    • flink metrics
    • druid metrics
    • 对于部分计算系统,如何集成预期的自定义指标,比如处理错误量等
    • grafana + prometheus 简单配置

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK