文档编写目的
本篇文章主要介绍如何在离线的环境下安装SMM。
1.Redhat7.2
2.采用root用户操作
3.CM和CDH版本为6.3.3
4.JDK1.8.0_181
5.集群已启用Kerberos
前置环境准备
2.1SMM安装包准备
1.下载SMM的试用安装包,并部署至本地HTTP服务
2.将下载的csd文件拷贝至/opt/cloudera/csd目录下,并重启cloudera-scm-server服务
cp STREAMS_MESSAGING_MANAGER-2.1.0.jar /opt/cloudera/csd
systemctl restart cloudera-scm-server
2.2创建SMM数据库与用户
在这里Streams Message Manager服务的元数据库我们选择使用MySQL,需要在数据库中为SMM服务创建相应的库和用户,使用root用户登录MySQL数据库执行如下SQL语句创建库和访问用户,操作如下:
CREATRE DATABASE streamsmsgmgr;
CREATE USER 'streamsmsgmgr'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON streamsmsgmgr.* TO 'streamsmsgmgr'@'%' WITH GRANT OPTION ;
commit;
2.3安装NPM和forever模块
在添加和配置SMM服务之前,必须先安装节点软件包管理器(node package manager,NPM),然后安装forever模块。
1.在Nodejs官网下载最新安装包http://nodejs.cn/download/
2.将下载下来的安装包解压至需要部署SMM服务节点的/user/local/node目录下
tar -xvf node-v14.3.0-linux-x64.tar.xz -C /usr/local/node
3.在/etc/profile配置文件的末尾增加nodejs环境变量
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH
执行source /etc/profile命令使配置的环境变量生效
4.在有网络的环境下获取forever模块的安装包
在一个有网络的环境下使用npm命令安装forever模块,具体步骤如下:
首先配置Nodejs使用国内镜像,加快模块的安装速度
npm config set registry http://registry.npm.taobao.org
npm config ls
执行如下命令安装forever模块
npm install forever -g
将安装到/usr/local/node/lib/node_modules目录下的forever目录打包压缩拷贝至离线环境
cd /usr/local/node/lib/node_modules
tar -czvf forever.tar.gz forever/
5.将第四步准备的forever.tar.gz压缩包拷贝至需要安装SMM的节点上,执行如下命令离线安装forever模块
tar -zxvf forever.tar.gz
npm install ./forever -g
2.4调优Cloudera Manager和Service Monitor
1.SMM服务会调用Service Monitor服务的API获取Kafka的指标数据,需要适当调整Service Monitor服务的heap大小
调整内存后需要重启CMS服务,具体调优方式可以参考官网建议,通过对GC及内存分配上进行优化调整:
https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_hardware_requirements.html#sizing_cm_smon
2.修改/etc/default/cloudera-scm-server文件,调整Cloudera Manager Server服务的内存大小
vim /etc/default/cloudera-scm-server
调整内存后需要重启Cloudera Manager Server服务,具体调优方式可以参考官网建议,地址如下:
https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_hardware_requirements.html#sizing_cm_server_storagereqs
2.5获取Kafka服务名称
1.进入Kafka服务界面,点击任意图表
2.进入图表生成界面找到Kafka服务的名称
注意:该服务的名称会在装SMM服务时用到。
2.6修改Kafka服务配置
1.启用Kafka Producer监控指标采集
2.修改配置后重启Kafka集群
注意:此处一定要开启Kafka Producer监控指标的采集,否则在SMM上看不到Producer的监控信息。
2.7修改Cloudera Manager Server服务配置
1.进入“主机”列表界面,点击“配置”
2.进入配置界面选择高级配置,添加如下配置
kafka_broker_topic_partition_metrics_for_smm_enabled=true
3.完成上述配置后登录CM主机上执行命令重启服务
systemctl restart cloudera-scm-server
注意:此处配置主要是为了能够采集到Kafka每个Topic的Partition指标。
安装SMM服务
1.配置SMM parcel库地址
保存配置后显示如下则表示parcel库地址配置成功且生效
2.点击下载、分配并激活Parcel包
3.回到CM主页添加SMM服务
4.点击“继续”,选择已做好前置环境准备的节点安装SMM服务
5.点击“继续”填写CM信息和数据信息
注意:截图中Kafka Client Security Protocol类型应选为SASL_PLAINTEXT,因为Kafka集群启用了Kerberos。
未截图部分均使用的默认配置
6.点击“继续”启动SMM服务
启动成功点击“完成”
到此已完成SMM服务的安装。
SMM服务验证
1.在浏览器输入http://{smm_hosts}:9091
2.在命令行启动一个Producer和Consumer
jass.conf配置文件内容:
KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true;
};
client.properties配置文件内容:
security.protocol=SASL_PLAINTEXT
sasl.kerberos.service.name=kafka
Consumer启动命令:
kinit cdhadmin
export KAFKA_OPTS="-Djava.security.auth.login.config=./jass.conf"
kafka-console-consumer --topic testTopic --from-beginning --bootstrap-server cdh1.hadoop.com:9092,cdh2.hadoop.com:9092,cdh3.hadoop.com:9092 --consumer.config client.properties
Producer启动命令:
export KAFKA_OPTS="-Djava.security.auth.login.config=./jass.conf"
kafka-console-producer --broker-list cdh1.hadoop.com:9092,cdh2.hadoop.com:9092,cdh3.hadoop.com:9092 --topic testTopic --producer.config client.properties
3.在SMM的监控界面可以看到上述生产和消费的监控信息
总结
1.由于SMM服务的监控指标依赖Cloudera Manager Server和Service Monitor服务,因此在安装前先对着两个服务的内存进行一定的调整优化
2.安装SMM服务节点需要先安装NPM和forever模块,否则会导致SMM服务启动失败
3.SMM服务采集Kafka指标时需要指定Kafka服务的Service Name
4.Kafka服务默认是没有启用producer.metrics.enable,需要手动的启用该指标,否则会采集不到Producer相关指标
5.CM默认没有启用Topic Partition的指标采集,需要手动的在CM Agent的高级配置项中添加kafka_broker_topic_partition_metrics_for_smm_enabled=true
6.SMM对CDH集群和Kafka的版本有一定的要求。