文档编写目的
Cloudera在2019年9月18日正式对外宣布发布Cloudera Stream Processing(CSP)2.0,参考《Cloudera Streams Management正式GA》。Cloudera Stream Processing (CSP)提供了高级消息传递,流处理和流分析功能,这些功能由Apache Kafka作为核心流处理引擎提供支持。它同时为Kafka添加了两个流管理功能,Kafka监控和Kafka数据复制。Streams Messaging Manager(SMM)为Kafka集群提供了一个监控仪表板。Streams Replication Manager(SRM)为企业提供了实现跨集群Kafka topic复制的能力。
CSP现在可以提供企业级的平台服务,通过与Cloudera Manager的集成实现集群管理和监控,与Apache Sentry集成实现基于角色的授权,同时集成一个新的Schema Registry服务以实现数据治理和schema管理能力。
CSP包含以下组件和服务:
1.由Streams Messaging Manager(SMM)提供Kafka的监控,可以通过Parcel在CM中安装。
2.由Streams Replication Manager(SRM)提供Kafka的数据复制,可以通过Parcel在CM中安装。
3.由Schema Registry提供Kafka和NiFi的schema的统一管理,可以通过Parcel在CM中安装。
4.支持CDH6.3中的Apache Kafka 2.2.0或者CDK4.1
注意:强烈推荐使用CDH6.3或更高版本,默认包含Apache Kafka。如果你使用的是CDH5.13,你需要使用CDK4.1或更高版本。CDK是Cloudera Distribution of Apache Kafka的简称,最新的CDK4.1基于Apache Kafka2.2.1。
5.支持Kafka Streams
6.使用Cloudera Manger实现集群管理和监控。
7.使用Apache Sentry实现Kafka的访问控制。
CSP2.0以模块化形式设计,为用户提供了灵活性,使其可以选择在CM托管集群上安装哪些服务。CSP2.0提供了两组功能:流处理和流管理。每一组都包含相应的parcel:
本文Fayson主要介绍如何在CDH6.3中安装SMM,其余部分会在后续的文章中进行介绍,在安装前需要了解SMM的安装前置:
1.Cloudera Manager必须升级到6.3或更高版本。
2.CDH5.13或更高版本,CDH6.3或更高版本。
3.集群必须已经安装Kafka服务CDK4.1或更高版本。
1.CM和CDH版本为6.3
2.Redhat7.4
3.JDK1.8.0_181
4.集群未启用Kerberos
5.root用户安装
前置准备
2.1 下载SMM的试用安装包
1.访问试用下载链接,注意你需要注册cloudera.com的账号。
https://www.cloudera.com/downloads/cdf/csm-trial.html
2.下载SMM的csd文件
注意:该试用会在60天后过期。
3.点击Submit下载csd文件,并放置到Cloudera Manager Server的/opt/cloudera/csd目录。然后重启Cloudera Manager Server服务。
[root@ip-172-31-13-38 ~]# cd /opt/cloudera/csd
[root@ip-172-31-13-38 csd]# ll
total 28
-rw-r--r-- 1 root root 24630 Sep 4 20:02 STREAMS_MESSAGING_MANAGER-2.1.0.jar
[root@ip-172-31-13-38 csd]# systemctl restart cloudera-scm-server
4.CM重启完成以后,添加服务页面可以看到有SMM服务。
5.下载SMM的Parcel,并放置/var/www/html目录
[root@ip-172-31-13-38 ~]# cd /var/www/html/smm/
[root@ip-172-31-13-38 smm]# ll
total 126360
-rw-r--r-- 1 root root 6625 Sep 4 19:56 manifest.json
-rw-r--r-- 1 root root 129378640 Sep 4 19:57 STREAMS_MESSAGING_MANAGER-2.1.0.2.0.0.0-135-el7.parcel
-rw-r--r-- 1 root root 41 Sep 4 20:04 STREAMS_MESSAGING_MANAGER-2.1.0.2.0.0.0-135-el7.parcel.sha
6.通过Hosts > Parcels进入Cloudera Manager的Parcel页面,输入SMM Parcel的http地址,下载->分配->激活。
2.2 在MySQL中创建数据库与用户
1.登录到MySQL并创建SMM的数据库与用户。
create database streamsmsgmgr default character set utf8;
CREATE USER 'streamsmsgmgr'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON streamsmsgmgr. * TO 'streamsmsgmgr'@'%';
FLUSH PRIVILEGES;
2.3 在SMM节点上安装NPM
在添加和配置SMM服务之前,必须先安装节点软件包管理器(node package manager,NPM),然后安装forever模块。
1.安装gcc-c++编译器
[root@ip-172-31-13-38 ~]# yum install -y gcc-c++ make
2.安装nodejs和npm
[root@ip-172-31-13-38 ~]# curl -sL https://rpm.nodesource.com/setup_10.x | sudo -E bash -
[root@ip-172-31-13-38 yum.repos.d]# yum install nodejs -y
注意该步骤需要主机能上网才能够执行,如果主机不能上网需要离线安装nodejs和npm,可自行百度。
3.检查nodejs和npm的版本
[root@ip-172-31-13-38 yum.repos.d]# node -v
v10.17.0
[root@ip-172-31-13-38 yum.repos.d]# npm -v
6.11.3
注意nodejs版本需大于10,这里是10.17.0。
4.使用npm安装forever。
[root@ip-172-31-13-38 yum.repos.d]# npm install forever -g
2.4 获取集群Kafka的服务名
1.从CM主页进入Kafka服务。
2.随便选择右边“图表”,选择在“图表生成器中打开”
一般默认服务名都为kafka,记下这个名字在后面安装过程中会用到。
安装SMM
1.进入CM主页点击“添加服务”。
2.选择添加SMM服务,点击继续。
3.选择已经安装了npm和nodejs的节点,点击继续
4.配置以下必填配置,点击继续。
配置项 | 配置值 | 备注 |
---|---|---|
cm.metrics.host | ip-172-31-13-38.ap-southeast-1.compute.internal | CM主机的hostname |
cm.metrics.password | admin | CM的admin账号密码 |
cm.metrics.service.name | kafka | Kafka服务的名称 |
streams.messaging.manager.storage.connector.connectURI | jdbc:mysql://ip-172-31-13-38.ap-southeast-1.compute.internal:3306/streamsmsgmgr | MySQL地址 |
streams.messaging.manager.storage.connector.user | streamsmsgmgr | 连接MySQL的用户名 |
streams.messaging.manager.storage.connector.password | password | 连接MySQL的用户密码 |
5.等待SMM服务启动
6.点击继续,回到CM主页。
7.访问Streams Messaging Manager Web UI
8.访问Streams Messaging Manager Rest Swagger UI
至此SMM安装完毕。
总结
1.CSP2.0包含Kafka,Kafka Streams,Schema Registry ,Streams Messaging Manager(SMM)和Streams Replication Manager(SRM),本文档主要是介绍如何安装SMM,安装SMM需要集群已经安装了Kafka服务。
2.SMM的Parcel包下载需要到cloudera.com的试用页面进行下载,默认试用60天。
3.下载好SMM的csd文件,除了重启Cloudera Manager Server服务外,还需要重启Cloudera Management Service,否则安装SMM服务成功后,通过CM进入SMM服务后,右边的图表显示将会报错。
4.SMM需要在MySQL中创建相应的数据库与用户。
5.SMM服务所在节点需要安装nodejs和npm,还需要安装forever模块,主要nodejs版本需大于10。本文使用的是直接访问外网的方式,如果想离线安装nodejs和npm,需要另外准备相应的依赖包。
6.安装SMM服务前还需要通过CM获取Kafka服务的服务名,如何获取参考本文的前置准备章节。注意服务名一般是小写的kafka,这里会区分大小写。
7.SMM的安装只支持Cloudera Manager6.3或更高版本,这是因为CM6.3才增加对SMM服务的相关监控,如果CM版本较低,即使导入csd文件,CM的添加服务也不会有SMM服务显示。
8.SMM的安装支持CDH6.3或更高版本,CDH5.13或更高版本,但是必须安装CDK4.1以上版本的Kafka,CDK是Cloudera Distribution of Apache Kafka的简称,最新的CDK4.1基于Apache Kafka2.2.1。