文档编写目的
Workload XM是Cloudera现代数据平台以工作负载为中心的管理工具,可主动分析数据仓库、数据工程和机器学习环境的工作负载,提升应用程序性能,以及优化基础架构的容量配置。Workload XM与Cloudera Enterprise平台内的多种计算引擎进行交互,使用户能够全面了解各类性能指标,从而通过迭代模式进行自助服务。
WXM工具专注于Cloudera平台,提高用户对于工作负载的可见性,提供规范化的优化建议。WXM工具在安装、迁移、主动监控和故障排除方面提供卓越的用户体验,可以显著提高系统利用率并延长运行时间。
关于Workload XM是如何与其他集群交互以及在本地安装Workload XM实例所依赖的服务可在如下架构图中体现:
- 测试环境:
1.Redhat7.2
2.采用root用户操作
3.WXM服务部署在CDP7.1.1
4.JDK1.8.0_181
5.集群已启用Kerberos
先决条件
2.1WXM安装包准备
1.访问官网地址下载最新的WXM试用版本
https://www.cloudera.com/downloads/workloadxm.html
2.下载的主要安装文件有如下几个:
代码语言:javascript复制WXM-2.1.0.2.1.0-b804-3162213-el7.parcel
WXM-2.1.0.2.1.0-b804-3162213-el7.parcel.sha
WXM-2.1.0.2.1.0-b804-3162213.jar.sha
WXM-2.1.0.2.1.0-b804-3162213.jar
manifest.json
3.manifest.json文件默认是下载不到的,这里需要我们自己手动创建一个,内容如下:
代码语言:javascript复制[root@cdh4 wxm-2.1.0]# cat manifest.json
{
"lastUpdated": 1578310132844,
"parcels": [
{
"components": [
{
"name": "Workload XM",
"pkg_version": "2.1.0.2.1.0-b804-3162213",
"version": "2.1.0.2.1.0-b804-3162213"
}
],
"depends": "CDH (>= 5.14)",
"hash": "d6cd79d78ca5f1fd9e7a2b7a860c9c88d040af49",
"parcelName": "WXM-2.1.0.2.1.0-b804-3162213-el7.parcel",
"releaseNotes": "Workload XM on-premises must be installed in a dedicated cluster, separate from your development, test, or production workload clusters."
}
]
}
4.将下载的包部署到本地httpd服务的/var/www/html/wxm-2.0.1目录下
代码语言:javascript复制[root@cdh4 ~]# cd /var/www/html/wxm-2.1.0/
[root@cdh4 wxm-2.1.0]# ll
5.通过浏览器访问是否部署成功
6.将csd文件部署到需要安装WXM的CDH集群Cloudera Manager Server服务所在节点的/opt/cloudera/csd目录下
代码语言:javascript复制[root@cdh1 ~]# ll /opt/cloudera/csd/
7.完成上述操作后,执行如下命令重启CM服务
代码语言:javascript复制[root@cdh1 ~]# systemctl restart cloudera-scm-server
2.2硬件及OS要求
Workload Experience Manager安装必须与开发、测试和生产的workload集群分开部署,使用专用的集群安装部署Workload XM。此部署方式最大程度的减少对集群的影响,并避免了升级CDH集群以满足WXM部署的需求。因此建议使用独立的集群安装部署WMX,对于集群的硬件配置及OS版本要求如下:
2.3CDP和CM版本要求
Workload Experience Manager本地版本必须运行在CDP Data Center7.0.3和Cloudera Manager 7.0.3或更高版本。
支持分析以下CDH和CDP集群中的数据:
CDH 5.x Clusters:
- CDH version 5.8 and later
- Cloudera Manager version 5.15.1 and later
CDH 6.x Clusters:
- CDH version 6.1 and later
- Cloudera Manager version 6.1 and later
CDP 7.x Clusters:
- CDP 7.0.3
- CDP 7.1.1 (Hive on Tez is also supported)
注意:不支持CDH 6.0 和 Cloudera Manager 6.0版本
2.4服务要求
Workload XM Cluster必须安装如下服务:
- HBase
- HDFS
- Hive
- Hue – 可选服务,建议安装便于故障排除和数据提取
- Impala
- Phoenix
- Yarn
- Zookeeper
注意:为了优化性能,建议不要在Workload XM集群上安装任何其他服务。
2.5集群角色划分
对Workload XM集群的角色划分建议如下:
Service | Node 1(Master components of all services) | Node 2,3,4(Worker components of all services) | Node 5(Workload XM components) |
---|---|---|---|
HDFS | l Balancerl Gatewayl NameNodel NFS Gatewayl SecondaryNameNode | l DataNode | l Gateway |
YARN | l Gatewayl JobHistory Serverl ResourceManager | l NodeManager | |
HBase | l Gatewayl Masterl Thrift Server | l RegionServer | l Gateway |
Phoenix | Query Server | ||
Hive | l Gatewayl Metastore Serverl HiveServer2(Hive on Tez for CDP) | Gateway | |
Impala | l Catalog Serverl StateStore | l Impala Daemon | |
Hue | l Load Balancerl Hue Server | ||
Cloudera Management | l Alert Publisherl Event Serverl Host Monitorl Reports Managerl Service Monitor | ||
Workload XM | Console Server以下组件自动放置:Admin API ServerAnalytic Database ServerAPI ServerBaseline ServerDatabus API ServerDatabus ServerEntities ServerPipelines ServerSDX Server | ||
Zookeeper | Server |
- Query Server
Hivel Gateway l Metastore Server l HiveServer2(Hive on Tez for CDP)
- Gateway
Impalal Catalog Server l StateStorel Impala Daemon Huel Load Balancer l Hue Server Cloudera Managementl Alert Publisher l Event Server l Host Monitor l Reports Manager l Service Monitor Workload XM
- Console Server
以下组件自动放置: Admin API Server Analytic Database Server API Server Baseline Server Databus API Server Databus Server Entities Server Pipelines Server SDX ServerZookeeper
- Server
前置环境配置
在前面的章节介绍了Workload XM部署的先决条件,本章节是在CDP集群环境已准备就绪的前提下进行服务级别的配置,具体涉及到如下几个服务参数的调整。
3.1 HBase服务参数调整
1.登录Cloudera Manager进入HBase服务的配置界面
2.在搜索栏搜索“hbase-site.xml”并将筛选范围选择“HBase(服务范围)”
3.将如下配置添加到HBase服务高级配置代码段中
代码语言:javascript复制<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
<description>Set hbase.regionserver.wal.codec to enable custom Write Ahead Log ("WAL") edits to be written</description>
</property>
<property>
<name>hbase.region.server.rpc.scheduler.factory.class</name>
<value>org.apache.hadoop.hbase.ipc.PhoenixRpcSchedulerFactory</value>
<description>Factory to create the Phoenix RPC Scheduler that uses separate queues for index and metadata updates</description>
</property>
<property>
<name>hbase.rpc.controllerfactory.class</name>
<value>org.apache.hadoop.hbase.ipc.controller.ServerRpcControllerFactory</value>
<description>Factory to create the Phoenix RPC Scheduler that uses separate queues for index and metadata updates</description>
</property>
<property>
<name>phoenix.functions.allowUserDefinedFunctions</name>
<value>true</value>
<description>enable UDF functions</description>
</property>
<property>
<name>phoenix.queryserver.serialization</name>
<value>JSON</value>
<description>serialization format between client and query server</description>
</property>
<property>
<name>hbase.server.keyvalue.maxsize</name>
<value>52428800</value>
<description>limits max file size for blobs</description>
</property>
<property>
<name>phoenix.schema.isNamespaceMappingEnabled</name>
<value>true</value>
</property>
注意:必须确保phoenix.schema.isNamespaceMappingEnabled参数客户端与服务端一致。
4.搜索“hbase.regionserver.wal.codec”将值设置“org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec”
5.搜索“hbase.client.keyvalue.maxsize”将值设置为50MB
6.搜索“hbase-site.xml”,为HBase Gateway添加如下配置:
代码语言:javascript复制<property>
<name>phoenix.schema.isNamespaceMappingEnabled</name>
<value>true</value>
</property>
7.如果在Kerberos环境Workload XM需要将wxm用户添加到HBase的超级用户中(非安全环境则跳过此步)
上述调整记得点击“保存”,至此完成了HBase服务参数调整。
3.2Phoenix服务参数调整
1.回到CM主要进入Phoenix服务的配置界面
2.搜索“phoenix-site.xml”在配置项中添加如下高级配置
代码语言:javascript复制<property>
<name>phoenix.queryserver.serialization</name>
<value>JSON</value>
<description>serialization format between client and query server</description>
</property>
<property>
<name>phoenix.schema.isNamespaceMappingEnabled</name>
<value>true</value>
</property>
3.完成上述修改后保存配置,回到CM主页跟进提示重新部署客户端配置及重启HBase和Phoenix服务
Workload XM服务安装
在前面的章节已将Workload XM安装包部署到本地的httpd服务器,并且将csd文件部署到CM节点的/opt/cloudera/csd目录下,完成了CM服务的重启操作,接下来通过CM界面添加Workload XM服务。
1.进入parcel配置界面,配置本地Workload XM parcel访问地址
2.点击“下载、分配、激活”完成parcel包的分发
完成上述操作后,接下来主要是安装WXM服务。
3.回到CM主界面,点击添加服务按钮进入服务添加界面选择Workload XM
4.点击“继续”,进入角色分配界面,选择角色要安装的节点
5.点击“继续”,进入服务配置界面,填写Impala Daemon和Phoenix Query服务的host信息并根据提示修改服务的Heap大小
Fayson的环境其他关于安全的参数均为默认值
6.点击“继续”,完成Workload XM服务的初始化及启动
7.点击“继续”,完成WXM服务的安装
8.点击“完成”,至此已完成了Workload XM服务的安装
9.点击下图菜单进入Workload XM的Web界面
输入默认的账号密码(admin/admin)进入
集群接入WXM
在前面已经成功的安装了Workload XM服务,也能通过浏览器正常访问Web界面,新装的WXM里面是没有任何数据的,这里我们需要在被接入诊断分析的集群安装Telemetry Publisher服务,接下来Fayson已CDH6.3.3集群为例介绍如何安装TP服务并进行配置。
5.1修改接入集群名称
为了能够在Workload XM上方便的辨识出我们接入的集群,建议将我们接入的集群修改一个便于辨识的名称,修改集群名称操作如下:
点击 “重命名集群”
完成后显示如下
5.2添加hosts信息
在Telemetry Publisher服务所在节点需要将Workload XM集群的hosts信息添加到/etc/hosts文件中
5.3准备Altus账号并添加到CM
为了使用Workload XM,你需要有一个Altus账号。Altus账号是需要在Cloudera的官网进行申请设置的。
1.在浏览器打开www.wxm.cloudera.com,按照提示设置你的Altus Account
2.在Altus主页上,单击页面右上角的用户名,然后选择“My Account”
3.点击“Generate Access Key”,创建一个Altus Access Key ID和 Altus Private Key
4.登录需要接入WXM的集群,点击“管理”->“外部账户”
5.进入外部账户添加界面“Altus Credentials”添加Altus账号
名称随便定义,Altus Access Key ID值也可以随便定义,Altus Private Key值则是上面pkcs8.pem文件的内容,完成填写后点击“添加”即可。
6.完成Altus账号添加后,点击如下菜单
7.进入设置界面,搜索“Telemetry Altus Account”,选择我们添加的Altus账号
5.4添加Telemetry Publisher服务
1.进入Cloudera Management Service服务的实例列表界面
2.点击“添加角色实例”,进入角色分配界面,为Telemetry Publisher服务分配角色
3.点击“继续”,完成Telemetry Publisher服务的添加
4.在前面添加的Altus Account账号,这里添加完Telemetry Publisher服务后不要启动,先测试Altus Connection是否正常,操作如下
点击“Test Altus Connection”,只有测试通过Telemetry Publisher服务才能正常向WXM服务上报数据
5.为Telemetry Publisher服务添加高级配置
代码语言:javascript复制telemetry.upload.job.logs=true
telemetry.altus.url=http://192.168.0.207:12022
telemetry.wa.enabled=true
6.为了确保集群敏感数据不被未经授权的用户访问,需要为Telemetry Publisher和HDFS服务启用日志的查询编辑功能
为HDFS启用Redaction功能
注意:HDFS服务配置的调整需要重启HDFS服务。
7.完成上述操作后,启动Telemetry Publisher服务
到此为止就完成了集群接入WXM的所有工作,接下来就可以登录Workload XM平台查看对该集群的诊断分析。
Workload XM验证及功能使用
1.使用admin/admin账号登录Workload XM的Web界面
2.点击“yuf-cluster”进入集群诊断分析详细界面
3.查看Impala服务的负载情况
Impala慢SQL分析及建议
4.查看Spark作业的负载情况
5.查看Hive作业负载情况
6.查看Oozie作业工作负载情况
7.查看MapReduce作业工作负载情况
查看具体MR作业的信息
作业在每个阶段数据量及耗时情况
每个阶段的执行情况及作业详细日志
作业运行基线
8.根据自己对集群作业类型、资源池、用户及SLA关注的不同可以自定义Workload监控图表
总结
1.Workload XM安装必须与开发、测试和生产的workload集群分开部署,使用专用的集群安装部署Workload XM,减少对集群的影响
2.Workload XM服务必须运行在CDP Data Center7.0.3和Cloudera Manager 7.0.3或更高版本
3.在部署Workload XM服务的CDP集群中需要确保已安装了HBase、Phoenix、Hive、Impala、Yarn、Zookeeper、HDFS服务
4.Workload XM服务可以同时接入诊断分析多个CDH或CDP集群
5.需要接入Workload XM诊断分析的集群,必须需要在集群的Cloudera Manager中添加外部Altus账号,并添加Telemetry Publisher服务