一飞开源,介绍创意、新奇、有趣、实用的开源应用、系统、软件、硬件及技术,一个探索、发现、分享、使用与互动交流的开源技术社区平台。致力于打造活力开源社区,共建开源新生态!
一、开源项目简介
罗盘是一个大数据任务诊断平台,旨在提升用户排查问题效率,降低用户异常任务成本。
使用Apache-2.0开源协议
四、功能概述
罗盘是一个大数据任务诊断平台,旨在提升用户排查问题效率,降低用户异常任务成本。
其主要功能特性如下:
罗盘已支持诊断类型概览:
诊断维度
诊断类型
类型说明
失败分析
运行失败
最终运行失败的任务
首次失败
重试次数大于1的成功任务
长期失败
最近10天运行失败的任务
耗时分析
基线时间异常
相对于历史正常结束时间,提前结束或晚点结束的任务
基线耗时异常
相对于历史正常运行时长,运行时间过长或过短的任务
运行耗时长
运行时间超过2小时的任务
报错分析
sql失败
因sql执行问题而导致失败的任务
shuffle失败
因shuffle执行问题而导致失败的任务
内存溢出
因内存溢出问题而导致失败的任务
成本分析
内存浪费
内存使用峰值与总内存占比过低的任务
CPU浪费
driver/executor计算时间与总CPU计算时间占比过低的任务
效率分析
大表扫描
没有限制分区导致扫描行数过多的任务
OOM预警
广播表的累计内存与driver或executor任意一个内存占比过高的任务
数据倾斜
stage中存在task处理的最大数据量远大于中位数的任务
Job耗时异常
job空闲时间与job运行时间占比过高的任务
Stage耗时异常
stage空闲时间与stage运行时间占比过高的任务
Task长尾
stage中存在task最大运行耗时远大于中位数的任务
HDFS卡顿
stage中存在task处理速率过慢的任务
推测执行Task过多
stage中频繁出现task推测执行的任务
全局排序异常
全局排序导致运行耗时过长的任务
Compass 依赖了调度平台、Hadoop、Spark、Canal、MySQL、Kafka、Redis、Zookeeper、Elasticsearch,需要提前准备好相关环境。
Compass 支持单机和集群部署,可按模块弹性扩缩容。
compass ├── bin │ ├── compass_env.sh 环境变量,基础组件配置 │ ├── start_all.sh 启动脚本 │ └── stop_all.sh 停止脚本 ├── conf │ └── application-hadoop.yml hadoop相关配置 ├── task-application 关联任务实例、applicationId、hdfs_log_path ├── task-canal 订阅调度平台MySQL表元数据到Kafka ├── task-canal-adapter 同步调度平台MySQL表元数据Compass平台 ├── task-detect 工作流层异常类型检测 ├── task-metadata 同步Yarn、Spark任务元数据到Elasticsearch ├── task-parser 日志解析和Spark任务异常检测 ├── task-portal 异常任务的可视化服务 └── task-syncer 调度平台任务关系表的抽象和映射
访问一飞开源:https://code.exmay.com/ 下载 cd compass mvn package -DskipTests
cd dist/compass vim bin/compass_env.sh # Scheduler MySQL export SCHEDULER_MYSQL_ADDRESS="ip:port" export SCHEDULER_MYSQL_DB="scheduler" export SCHEDULER_DATASOURCE_USERNAME="user" export SCHEDULER_DATASOURCE_PASSWORD="pwd" # Compass MySQL export COMPASS_MYSQL_ADDRESS="ip:port" export COMPASS_MYSQL_DB="compass" export SPRING_DATASOURCE_USERNAME="user" export SPRING_DATASOURCE_PASSWORD="pwd" # Kafka export SPRING_KAFKA_BOOTSTRAPSERVERS="ip1:port,ip2:port" # Redis export SPRING_REDIS_CLUSTER_NODES="ip1:port,ip2:port" # Zookeeper export SPRING_ZOOKEEPER_NODES="ip1:port,ip2:port" # Elasticsearch export SPRING_ELASTICSEARCH_NODES="ip1:port,ip2:port"
./bin/start_all.sh
整体架构分3层:
具体模块流程阶段:
更多细节请参考部署指南
评论