九象(Sky DataPilot)
九象(Sky DataPilot)是一款专注于开源大数据平台的数据化运维与效能提升专家产品,致力于以数据化、智能化的方式为大数据平台提供运维产品服务,帮助客户提升平台的稳定性和效能。
近180天成交:小于10单
评论:0(0条)
交付方式:计算巢私有化部署
九象(Sky DataPilot)
商品介绍
产品亮点
产品说明
产品简介
Sky DataPilot 是一站式大数据集群和任务的监控、告警、诊断、运维以及自动化任务优化平台,全面兼容 CDH、HDP、华为云 MRS 等主流大数据平台,适配主流大数据任务引擎(MapReduce、spark、tez、impala)。实现大数据集群和任务的可视化监控、诊断建议、任务自动优化等,从而提高大数据集群运维效率,提升集群和任务稳定性。 |
系统架构(注:上图黄色背景模块对应大数据任务自动优化和告警推送功能,属于商业版本功能。)
主要功能
|
安装与启动
Sky DataPilot 产品部署包含了服务端和客户端两个部分
|
服务端部署
Sky DataPilot 正常运行需要开放如下网络端口,管理员可根据实际环境要求,在网络侧开放相关端口。 |
组件 |
默认端口 |
说明 |
hbo-pc |
80 |
前端服务,浏览器访问端口 |
clickhouse |
8123 |
数据采集存储服务 |
mysql |
3306 |
后端数据存储服务 |
lcc-hbo |
8077 |
后端核心服务,为前端页面和 hook 提供接口 |
部署 Sky DataPilot 节点和大数据集群网络要求
- 大数据集群的所有主机可以访问到服务端主机80端口:http://{HOST_IP}:80(注:{HOST_IP}为服务端主机IP)
- 服务端主机能够访问要采集的任务类型的 history 服务
- 采集yarn app:resource manager webui(http://ip:8088)
- 采集MapReduce job:job history(http://ip:19888)
- 采集spark app:spark history(http://ip:18088)
- 采集impala:impala daemon webui(http://ip:25000)
docker compose 部署
部署服务器要求
- 操作系统:linux(x86_64架构),推荐CentOS 7.9
- 部署机器规格
集群日均任务数 |
CPU需求 |
内存需求 |
数据存储需求(SSD) |
< 1K |
4C |
8G |
100G |
1K < 任务数 < 1W |
8C |
16G |
200G |
1W < 任务数 < 5W |
8C |
16G |
300G |
5W < 任务数 < 10W |
8C |
32G |
500G |
10W < 任务数 |
16C |
32G |
500G以上 |
- 系统时区检查
Bash |
部署流程
- 获取服务端安装包
Bash |
- 解压安装包
Bash |
- 部署docker
如果已存在 docker ,且 docker api version >= 1.4.1,可跳过该步骤
Bash |
- 部署docker-compose
如果已存在 docker-compose ,可跳过该步骤
Bash |
- 导入镜像
Bash |
- 配置mysql和clickhouse存储
Bash |
- 启动/关停服务端
Bash |
- 访问前端
部署成功后,通过浏览器访问以下地址,输入用户名和密码,即可开始使用 Sky DataPilot。
Bash |
- 获取 license 并激活服务
Sky DataPilot 分为两个版本:免费版和商业版,版本区别可访问官网查看
免费版:填写免费版 license 申请表单 申请免费版本 license,申请完成后邮箱会收到一份 license 文件。 商业版:填写商业版试用申请,我们会在第一时间联系您。 |
在 Sky DataPilot 产品前端许可证注册页面将 license 文件上传,扫码后输入验证码激活服务。
hook 部署
- 仅 spark-submit、pyspark、spark-sql、hive on spark、hive on tez 任务需要进行hook部署。
- hook 需要部署在大数据任务提交的网关节点(即部署有任务提交客户端,且从该节点发起任务提交请求的节点),通常会有多个网关节点,可以灰度部署部分网关节点,部署并验证完成后可以在全部网关节点部署。
获取hook
Hook 分为两个版本:免费版和商业版,功能区分和服务端保持一致。
免费版本: 商业付费版本:
|
部署流程
免费版
- 解压并上传
Bash |
- 配置(以下设置值中的 hbo-pc-host 需要被替换为服务端部署机器的 IP 地址)
- Spark(包括spark-submit、spark-sql、pyspark、hive on spark 任务)
Bash |
- Hive on Tez(如果是通过 hiveserver2 提交,请修改 hiveserver2 的配置然后重启 hiveserver2 )
Bash |
agent部署
agent 核心功能是为 HDFS 存储治理以及 HIVE 表冷热数据扫描服务的客户端工具,如果需要使用到上述功能,需要安装 agent。
前置条件
- 部署节点:可独立部署在有客户端的客户机上也可部署在服务端上
- 服务器规格:
- CPU&内存:至少1核2G
- 磁盘:>= 20G(SSD/ HDD 均可)
- 操作系统:linux(x86_64架构),推荐CentOS 7.9 java版本8及以上
- lcc-agent 安装后 cgroup 默认限制2G内存,按照执行任务的并发情况适当调整,调整位置为/etc/systemd/system/lcc-agent.service
- 网络及客户端要求 ✔️代表当前功能需要 ○代表按需可选
产品功能与大数据服务要求 |
小文件优化 |
冷热数据优化 |
跟hivemetastore网络打通 |
✔️ |
✔️ |
跟metasote-mysql网络打通 |
✔️ |
|
跟namenode网络打通 |
✔️ |
✔️ |
访问HDFS客户端 |
✔️ |
○ |
访问hive客户端 |
✔️ |
✔️ |
部署安装及启动
Bash |
观察日志/var/lib/lcc-agent/lcc-agent.log是否有ERROR,如正常跟服务端连接成功则正常启动。
初始化设置
配置引导
服务端部署完成并激活后,需要进行一些基础的配置,保证功能能够正常运行,点击页面前往配置。
数据采集
从进入配置入口页面后,首先需要配置的就是采集配置,数据采集作为整个服务的数据起点,合理配置采集任务是后续监控、分析、运维、优化的关键,建议按照配置引导逐步配置采集任务,下面介绍采集核心配置参数。
配置项 |
默认值 |
说明 |
备注 |
|
collector.tasks
|
|
该配置项是数据采集的核心配置,格式为 yaml 数组(支持配置采集多个集群的数据),数组中每个对象为一个采集集群的信息,每个集群配置详细配置如下: |
注意:
|
|
enable.collect.spark |
true |
是否开启 spark 任务的采集 |
|
|
enable.collect.mr |
true |
是否开启 mr 任务的采集 |
|
|
enable.collect.tez.metrics |
true |
是否开启 tez 任务的采集 |
|
|
enable.collect.yarn.running.app |
false |
是否开启运行时 yarn app 的采集 |
|
|
enable.collect.impala.collector |
false |
是否开启 impala 任务的采集 |
|
|
enable.collect.impala.collector.coordinator |
false |
是否开启 impala coordinator 的采集 |
|
|
impala.collector |
|
impala.collector.daemon:任意一个 impala daemon 的地址 impala.collector.port:impala daemon 的端口 impala.collector.limit:每轮采集最大条目数 impala.collector.hours:每轮采集读取当前时间多久以前的数据,默认24小时 |
|
|
enable.kerberos.check |
false |
被采集的系统是否开启了 kerberos 鉴权 |
|
|
principal |
|
填写当前已有的 kerberos principle,格式:HTTP@xx.COM.CN |
|
|
keytab |
|
在服务端部署机器执行,keytab 文件地址需要替换对应位置 |
|
|
kdc.conf |
|
将 krb5.conf 文件内容复制,确认以下配置,没有则添加,将修改后内容复制到该字段。
|
|
存储治理
该配置仅需在使用小文件治理时配置,如不需要可跳过,具体配置可参考:操作指南>集群>小文件治理章节。
常见问题
数据采集
- 如果被采集的服务只能通过主机名或访问,可以为 collect-server 服务 container 添加 host 映射,挂载 host 到 container 内 /etc/hosts
- 编辑 docker-compose.yaml 文件
- 在 collect-server 服务下,按如下格式添加需要的映射。
Shell |
例如:
首页
首页展示的是集群任务的完成、资源使用和任务优化以及告警相关的摘要和趋势。
概览
|
任务相关
|
优化相关(仅商业版)
|
告警相关
|
任务
执行列表
执行列表支持展示5种引擎(MapReduce、spark、tez、impala、flink)任务的历史执行信息。可以根据app id、tez dag id、impala query id、job id、app name、队列、任务开始时间等过滤查询到对应引擎任务的执行记录,每条执行记录包含一些作业运行的摘要信息:
|
任务列表
任务列表可以根据任务类型、任务id、该任务最近一次执行的作业时间范围进行过滤查询任务。
批量操作任务(仅商业版)
在商业版本中,用户对任务进行批量打标签,并且可以批量将任务加入/移除 黑/白名单,在 Sky DataPilot 中可以通过黑白名单的方式控制灰度优化任务。具体灰度控制逻辑可参考当前页:任务设置章节。
|
点击任务 id 可以进入任务详情页面,页面包含了该任务历史执行的作业的详细信息,包括任务摘要信息和作业执行明细信息。
任务摘要包含:
|
作业执行明细包含:
|
impala
impala query
展示impala 查询结果,包含了当前的查询是否有进行统计分析,
|
impala 资源池
展示 impala 资源池的统计信息,及不同资源池的分池数据统计。
当前资源池的 TotalMemory/PendingMemory/UsedMemory 等数据及任务超超时拒绝等情况。
小任务加速(仅商业版)
- 待补充
优化分析
性能对比报告(仅商业版)
- 待补充
优化收益预估
展示各个队列各个引擎分类的天粒度下内存使用量和收益预估值,以及该引擎和队列下收益预估 top 100的任务。
任务优化分析
对具体任务执行进行诊断(不同引擎诊断维度有差异),发现任务异常,具体包含:
|
具体诊断指标说明:诊断指标说明
任务设置
任务设置页面包含:
|
黑白名单模式(仅商业版)
|
任务指纹
任务指纹管理的是如何计算生成任务 id 的一段 lua 脚本代码,产品初始了一个比较通用的计算任务 id 的代码版本,可以查看、编辑、启用任务指纹,在编辑指纹时可以在页面进行调试,看是否与期望值匹配。
任务指纹定义的是任务 id 如何计算的过程,与之紧密配合的是系统配置中 hook 配置项:lcc.hbo.job.uid.keys 的配置,该配置集群字段对应有 hadoop、spark、tez、impala 四种引擎,该配置定义的是任务 id 指纹计算 lua 脚本的入参,后台服务会根据入参定义尝试从作业运行的信息中获取到这些信息,将这些数据和引擎类型作为入参调用任务指纹脚本,从而产生一个全局唯一的任务id。
如果系统内置的 lcc.hbo.job.uid.keys 和指纹脚本不满足需求(比如:多个逻辑上认为是不同任务的作业归一到了同一个任务,或者逻辑上认为是同一个任务的作业归一到了不同的任务),可以调整 lcc.hbo.job.uid.keys 或者指纹脚本以满足归一准确的需求。当编辑完任务指纹后,新的计算逻辑便会生效,如果变更后的计算逻辑影响到了之前的任务id计算逻辑,那么这些任务就产生新的id,旧的任务id会被弃用。
商业版本
在商业版本中支持添加多个任务指纹,同一时刻只能有一个指纹生效,当新增指纹后如果想使指纹生效,可以点击启用该指纹,当点击启用后,旧版的指纹便会失效,新的指纹规则开始生效,并且后台服务会对历史任务进行一次重刷,将历史任务的 id 按照新的 lua 脚本计算规则重新进行一次计算并赋值(该操作比较消耗性能,不建议在大数据量情况下操作,可以考虑直接修改当前版本指纹,影响是历史任务和优化决策会失效,需要重新走一轮采集、决策的过程)。
优化规则(仅商业版)
优化规则内置了我们当前支持的所有引擎的优化规则,默认情况下所有的规则都是关闭状态,如果需要对某个引擎任务进行某种规则优化,可以开启该规则。除了开启/关闭规则,每个规则还有配置、规则名单、决策详情三种可操作项。
|
重新决策
当修改了优化规则配置后,如果想更新历史决策,需要在页面点击重新决策按钮,可以选择根据最近多少天的数据进行重新决策。
诊断指标说明
|
集群
队列分析
显示接入系统 yarn 集群的 CPU/内存资源的使用情况,用于排查当前集群资源 CPU/内存资源是否到达瓶颈,根据不同的队列资源情况观察是否因某个或某些队列的资源设置不合理导致性能利用不合理。
|
小文件治理
显示当前接入的集群中 hive 表数据的小文件情况,包括小文件扫描和小文件合并两个功能,功能相互独立,可仅开启小文件扫描,观察小文件的情况是否很严重,再看不同的表情况再决定合并哪些表。
1. 开通小文件治理
未开通会有开通提示,请点击产品页面里的系统-系统配置-配置引导-管控配置
将 ops_table_scan_enable/ops_merge_file_enable 开启,请注意开通后并不会立即可用,需要在客户端安装 agent 方可使用,agent 安装参考安装与启动章节的 agent 部署部分
ops_table_scan_enable(是否开启小文件)
- hive-metastore对应的MySQL相关配置,用来获取hive表的元数据
- cron 定时(什么时间执行获取hive元数据)
- hadoop_nameNode_address 用来获取的文件数信息,统计每日的文件数变化
- hadoop是用来补充在hive-mysql 里可能缺失统计数据的表,通过hadoop fs -count 命令来补充
- beeline相关参数为合并任务时使用的beeline客户端,用来提交合并任务
2. 产品功能
- 概览:当前集群的hive表的统计信息,参见指标释义
- Hive表小文件治理:展示当前扫描出的hive表数据,库名/表名/表存储量/文件数/文件平均大小/分区数/小文件分区数等数据用来辅助决策哪些表需要加入治理
- 默认按照文件平均大小排序.操作有加入治理/移除治理/治理历史
- 在进行小文件合并前需要配置小文件合并策略,其中执行队列为yarn队列的名称
- 默认不治理7天内的使用数据,可按需修改,对非分区表不起作用,非分区表一次合并
- hive治理的用户设置为hive最高权限的用户防止出现低权限用户合并不成功
- 对于delta/hudi/iceberg/paimon及hive事务表暂不支持合并,扫描出此类表需要用户自己手动合并
- 如hivemetastore开启权限验证,则需要修改追加参数白名单设置,并重启hiveserver2
- 修改 hive.security.authorization.sqlstd.confwhitelist.append 参数
- mapreduce\.input\.fileinputformat\.split\.maxsize|hive\.support\.concurrency|hive\.exec\.dynamic\.partition\.mode|hive\.exec\.dynamic\.partition|hive\.support\.quoted\.identifiers|mapreduce\.job\.queuename|mapreduce\.job\.name
- 治理任务历史:展示对某些表的治理任务历史,可以观察是否处理成功,合并前后的数据
指标释义
指标 |
含义 |
表存储量 |
一张表实际占用HDFS的文件大小的总量,分区表为全部分区相加,非分区表为全部文件相加 |
是否分区表 |
表是否为分区表 |
分区数 |
如果表为分区表,计算当前表的分区总数 |
小文件分区数 |
表为分区表时: 计算分区内平均文件大小是否小于64M(可调)的分区总数 |
小文件分区占比 |
表为分区表时: 小文件分区数占比总分区数的百分比 |
文件数 |
计算表涉及到的文件总数 |
平均文件大小 |
计算表的表存储量/文件数的比值 |
存储总量 |
所有表的表存储量即全部的表实际占用HDFS的文件大小总量 |
文件总数 |
所有表的文件数的总和,包含了分区表及非分区表实际上在HDFS存储的文件个数 |
平均文件大小 |
所有表的表存储总量/文件总数的平均值 |
表总数 |
所有表的总数 |
分区表总数 |
分区表的情况下,所有分区表的表总数 |
分区表总分区数 |
分区表的情况下,所有分区表的分区总数 |
非分表表总数 |
非分区表的情况下,所有表的表总数 |
小文件表存储总量 |
小文件即平均文件大小小于64M(可调)的表的存储量累计值 |
小文件表的文件总数 |
小文件即平均文件大小小于64M(可调)的表的存文件数累计值 |
小文件表平均文件大小 |
小文件即平均文件大小小于64M(可调)的表的存储总量/文件总数 |
小文件表的表总数 |
小文件即平均文件大小小于64M(可调)的表总数 |
小文件表的分区表总数 |
小文件即平均文件大小小于64M(可调)的分区表总数 |
小文件表的分区表总分区数 |
小文件即平均文件大小小于64M(可调)的分区总数 |
小文件表的非分区表总数 |
小文件即平均文件大小小于64M(可调)的非分区表总数 |
3. 资源控制
|
hive表冷热数据
集群在运行一段时间后,时常会产生一些临时表/无查询/查询极少的表占用集群容量空间,导致存储赠本增加,造成了存储的资源浪费,一些较大的表/不常使用的表在分布式数据计算中占用了较高或额外的网络传输影响到了任务的计算速度,当前功能为发现哪些表数据冷/温/热数据。展示当前的表冷热数据统计信息。
|
元仓
大数据元仓
展示 clickhouse 库中大数据相关任务、集群的存储模型,包括:spark、hadoop、tez、impala 以及 yarn 集群,用户可通过jdbc连接查询。
报表统计
集群分析
集群维度的监控分析,包含集群基本信息以及运行时机器负载和 yarn 整体以及队列资源的监控信息。
任务分析
|
告警
告警模块为系统本身和大数据集群以及任务提供监控告警功能
活跃告警
显示当前正在活跃的告警,当告警恢复后,会将当前活跃告警移除,支持通过告警规则和告警首次触发时间过滤活跃告警。
历史告警
显示历史活跃以及已经恢复的全部告警,同样支持通过告警规则和告警首次触发时间过滤。查看告警详情可以看到该告警的相关细节信息,包括告警规则名称、所属业务组、规则备注、数据来源、告警级别、事件状态、标签、触发时间、触发时表达式的值、promql、执行频率和时长、告警通知渠道、通知组等相关信息。
告警规则
告警规则页面可以创建新告警、批量导入导出告警、批量删除告警以及批量启停告警。其中我们出厂内置了一些常见告警,客户可以根据需要创建告警。
新建告警
制定告警规则是针对监控指标灵活地根据不同业务场景配置不同告警的过程。
|
时序查询
时序查询提供了查询 Prometheus 数据的入口,在排查问题时可以查询指标趋势辅助定位问题。
系统管理
系统管理负责维护管理告警相关配置
|
系统
用户中心
用户管理
用户管理支持创建、删除用户以及更改用户角色,不同角色拥有不同权限。
|
个人中心
个人中心页面支持修改密码和用户名。
系统配置
系统配置核心目的是为 Sky DataPilot 产品的服务提供统一配置管理的中心,支持查找、更新、新增,按照服务可分为以下几类:
- api:后端服务的相关,大部分属于高级配置,用户可以不关心。
- collect-server:数据采集服务相关,包含 MapReduce、tez、spark、impala 相关任务的采集配置,具体可看数据采集章节。
- hook:任务归一相关,与任务>优化设置>任务指纹配合共同生成同一任务的唯一 uid ,常规情况下这些 keys 不需要变更,如有需要可在交流群中反馈,由技术同学提供支持。
系统运维
系统运维为 Sky DataPilot 产品的服务提供了基础的服务容器状态监控和终端切入功能,方便在特殊场景下运维人员能够能登入容器进行问题排查。
系统日志
系统日志模块能够让用户在页面查看 Sky DataPilot 产品全部服务的日志,辅助问题排查。
产品参数
交付方式 | 计算巢私有化部署 |
开票主体 | 贝联珠贯科技(浙江)有限公司 |
所属类目 | 数据计算分析与数据湖 |
上架日期 | 2024-11-01 |
售后支持范围
商品价格(此处价格仅供参考,实际价格以选配后的价格为准)
版本名称 | 计费项 | 新购 |
免费版本 | 版本基础价格 | 2元 |
用户评论
暂无评价