一、解读CDH
1、CM服务
(1)状态
(2)Cloudera Management Service实例: 5个进程
(3)配置
(4)单个服务的配置
服务: HDFS Kafka
角色/实例: 所属的服务的进程
以HDFS为例:
2、自定义监控图表
(1)查询图标库
选定一个服务,选择图表库
(2)打开图表
(3)复制查询语句
SELECT cpu_user_rate_across_datanodes WHERE entityName = "hdfs" AND category = SERVICE
(4)打开图表生成器
(5)输入语句,构建图表
(6)起名
(7)保存
二、如何停止、启动集群
Stop:
1.cm web http://139.198.188.104:7180
a.stop Cluster1
b.stop Cloudera Management Service
2.stop agent and server
[root@sh-datascienceresearch-01 ~]# service cloudera-scm-agent stop
[root@sh-datascienceresearch-02 ~]# service cloudera-scm-agent stop
[root@sh-datascienceresearch-03 ~]# service cloudera-scm-agent stop
[root@sh-datascienceresearch-04 ~]# service cloudera-scm-agent stop
[root@sh-datascienceresearch-05 ~]# service cloudera-scm-agent stop
[root@sh-datascienceresearch-01 ~]# service cloudera-scm-server stop
3.stop cm database
sh-datascienceresearch-01.telenav.cn:mysqladmin:/usr/local/mysql:>service mysql stop
Start:
1.start cm database
sh-datascienceresearch-01.telenav.cn:mysqladmin:/usr/local/mysql:>service mysql start
2.start server and agent
[root@sh-datascienceresearch-01 ~]# service cloudera-scm-server start
###wait 1min
[root@sh-datascienceresearch-01 ~]# service cloudera-scm-agent start
[root@sh-datascienceresearch-02 ~]# service cloudera-scm-agent start
[root@sh-datascienceresearch-03 ~]# service cloudera-scm-agent start
[root@sh-datascienceresearch-04 ~]# service cloudera-scm-agent start
[root@sh-datascienceresearch-05 ~]# service cloudera-scm-agent start
3.cm web http://172.16.102.63:7180/
a.start Cluster1
b.start Cloudera Management Service
###假如web界面出现,host等等图表信息读取错误,那么再手工重启 Cluster1 或者 Cloudera Management Service
###可以抑制就抑制,需要修改堆内存就修改堆内存
三、CM架构和配置文件
1、架构
总结:
页面请求服务到Server,Server从MySQL查询并存储新服务,再分配任务给Agent操作,更新配置以及执行命令,最终返回到页面。
2、配置文件存储的位置:
cm server /etc/cloudera-scm-server
cm agent /etc/cloudera-scm-agent
3、组件的配置文件
HDFS:
kafka: hadoop001 hadoop002
客户端:
/etc/kafka/conf
实例的当前服务端配置:
/var/run/cloudera-scm-agent/process/74-kafka-KAFKA_BROKER
总结:
修改配置还是通过界面修改
四、CDH 集群正确启动和停止顺序
1.Start
a. MySQL node: service mysql start
b. CM(server) node: service cloudera-scm-server start
c. Agent nodes: service cloudera-scm-agent start
d. Start Cloudera Management Services
e. Start Cluster1
###假如 web 界面出现,host 等等图表信息读取错误,
1.wait 1 小会
2.那么再手工重启 Cluster1 或者 Cloudera Management Service --夯住
3. 等待一会,刷新 web,假如还是这样,那么就移除下面两个文件夹(/var/lib/cloudera-host-monitor 、
/var/lib/cloudera-service-monitor),
然后通过 web 界面删除掉 对应的服务,
然后再重新添加,
最后重启 CM service 和刷新 web
2.Stop
a. Stop Cluster1
b. Stop Cloudera Management Services
c. Agent nodes: service cloudera-scm-agent stop
d. CM(server) node: service cloudera-scm-server stop
e. MySQL node: service mysql stop
3.个人理解总结
Web 界面修改------>数据库表 configs 表------->/etc/hadoop/*------->/var/run/cloudera-scmagent/process/*
1. web 界面修改参数,保存,到 configs 表
2. 重新部署客户端,到/etc/hadoop/的某个目录下,然后通过 alternatives 命令动态更新到 conf
文件夹;且会在/var/run/cloudera-scm-agent/process/目录下生成 deploy 文件夹
若泽数据 www.ruozedata.com Page 12
3. 重启集群或者重启单个服务,会在/var/run/cloudera-scm-agent/process/目录下生成各个组件
的运行的配置文件夹(是有序号标识的)
CDH 安装完成后,服务启动时,Hadoop 各组件配置文件会被放置于/var/run/cloudera-scm-agent/process/目录下。
例如:/var/run/cloudera-scm-agent/process/193-hdfs-NAMENODE/core-site.xml。这些配置文件是通过 Cloudera
Manager 启动相应服务(如 HDFS)时生成的,内容从数据库中获得(即通过界面配置的参数)。
在 CM 界面上更改配置是不会立即反映到配置文件中,这些信息会存储于数据库中,等下次重启服务时才会生成配
置文件。且每次启动时都会产生新的配置文件。
CM Server 主要数据库为 scm/cmf 中放置配置的数据表为 configs。里面包含了服务的配置信息
每一次配置的更改会把当前页面的所有配置内容添加到数据库中,以此保存配置修改历史
六. CDH 常规管理
1. 监控
a. 自带 Charts
b. 脚本
Python/Shell/Jmx/CDH Api
Access http://cm-host:7180/api/version to find out the highest supported version.
Reference: http://cloudera.github.io/cm_api/docs/quick-start/
Example:
CDH4.8.6 http://cloudera.github.io/cm_api/apidocs/v5/index.html
CDH5.4.8 http://cloudera.github.io/cm_api/apidocs/v10/index.html
假如 shell 脚本,datanode 进程是否存在,
若泽数据 www.ruozedata.com Page 13
Apache hadoop--> hadoop-daemon.sh start datanode
CDH --> hadoop-daemon.sh start datanode 能启动,但是有个问题,web 界面不会同步信息
CDH API-->推荐
curl -X GET -u "admin:admin" -i \
http://139.198.188.104:7180/api/version
curl -X GET -u "admin:admin" -i \
http://139.198.188.104:7180/api/v17/clusters/HBinz_Cluster
七、动态资源池
默认的
g1-pool 33%
g2-pool 33%
g3-pool 33% user job需求较大 用完了,可以去其他组资源借
放置规则:
子栋 group3 spark submit --queue group3
Placement Rule Actions
Use the pool Specified at run time,
only if the pool exists.
Use the pool root.default.
This rule is always satisfied. Subsequent rules are not used.
g1
g2
g3
--queue
hadoop001user g1
hadoop002user g2
hadoop001user: spark submit
所属的用户组g1
Use the pool root.[primary group], only if the pool exists.
七、配置预警邮箱
1. 开启 QQ 邮箱的 SMTP,获取授权码
1.1 这里使用了 QQ 邮箱的 SMTP,需要做以下配
2. 关闭SCM机器的 sendmail 服务,开启 postfix 服务
#sendmial
service sendmail stop
chkconfig sendmail off
#postfix
service postfix start
chkconfig postfix on
3. 创建证书文件
mkdir -p /root/.certs/
echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN
CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -L -d /root/.certs
cd /root/.certs
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt
cd
4. 在/etc/mail.rc 文件末尾添加以下
set from=1542293291@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=1542293291
#授权码
set smtp-auth-password=yfhxpycvqnfbjdbb
set smtp-auth=login
set smtp-use-starttls
set ssl-verify=ignore
set nss-config-dir=/root/.certs
5. 命令行验证邮件服务
echo hello word | mail -s " title" 1028344078@qq.com
# 1028344078@qq.com 会收到一封邮件
#当然实时查看 Linux 日志
tail –f /var/log/maillog
6. CDH 配置邮件,测试
6.1.先单击 Edit,输入 1542293291@qq,然后保存重启生效服务配置
6.2.再单击 Send Test Ale
#查看 Alert 服务的 log
[root@hadoop35 ~]# tail -F /var/log/cloudera-scm-alertpublisher/mgmt-cmf-mgmtALERTPUBLISHER-hadoop35.log.out