1.CDH的启动关闭顺序
1.1启动顺序
- 第一步:先启动Mysql service mysql start
- 第二步hadoop001再启动Server:/opt/cloudera-manager/cm-5.16.2/etc/init.d/cloudera-scm-server start
- 第三步hadoop001-003再启动Agent:/opt/cloudera-manager/cm-5.16.2/etc/init.d/cloudera-scm-agent start
- 第四步在Web界面启动Cloudera Management Service(5个进程)
- 第五步在Web界面启动大数据集群服务
1.2关闭顺顺序
当我们机器要关闭时,这时我们就需将CDH相关软件关闭,关闭顺序和启动顺序相反
注意:
- 1.界面一定要是英文,需在google浏览器的语言中将英文调到首选项
- 2.若重新引导装CDH,应把数据库清空,以及删除所有的Agent的/cm_guid,位置在:opt/cloudera-manager/cm-5.12.0/lib/cloudera-scm-agent/cm_guid
- 3.Web界面上parcels包裹文件kafka、Spark等是需要重新部署
- 4.先启动managerment,然后再启动上面的服务,看canary金丝雀,是可以直接抑制的
2.CDH的架构
- CM-Server虽然是单点的,但是它的运行与否不会影响大数据其它组件的正常使用,官方也可以做HA,但是没有必要
- Cloudera-Manager Server(5个进程)是闭源的,Cloudera靠它吃饭
- 所有的但数据组件如HDFS、ZK等都是通过Agent来进行更新配置以及启动关闭,故集群节点就是多少agent
- CDH的部署必须是使用root用户或者是具有sudo root权限的用户
- 一个CM不建议管理多个集群。最好一对一
- server同agent之间通过RPC协议互通
3.实例配置查看和正确的修改方式
- 所有组件的服务端配置的修改,必须通过页面修改才能生效。
3.1实列进程信息查看
- su - 用户,切换到该进程用户
- ps -grep | 进程id ,可看到该进程的启动配置信息,注意后配置信息会覆盖前配置信息
/usr/java/jdk1.8.0_45/bin/java -Dproc_datanode -Xmx1000m
-Dhdfs.audit.logger=INFO,RFAAUDIT
-Dsecurity.audit.logger=INFO,RFAS
-Djava.net.preferIPv4Stack=true
-Dhadoop.log.dir=/var/log/hadoop-hdfs
-Dhadoop.log.file=hadoop-cmf-hdfs-DATANODE-hadoop001.log.out
-Dhadoop.home.dir=/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hadoop
-Dhadoop.id.str=hdfs
-Dhadoop.root.logger=INFO,RFA
-Djava.library.path=/opt/cloudera/parcels/CDH-5.16.1-1.cdh5.16.1.p0.3/lib/hadoop/lib/native -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true
-server -Xms211812352 -Xmx211812352 -XX:+UseParNewGC
-XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70
-XX:+CMSParallelRemarkEnabled -XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/tmp/hdfs_hdfs-DATANODE-8a61c8c443ac8a285145f0130e4f1988_pid1729.hprof
-XX:OnOutOfMemoryError=/opt/cloudera-manager/cm-5.16.1/lib64/cmf/service/common/killparent.sh
-Dhadoop.security.logger=INFO,RFAS
org.apache.hadoop.hdfs.server.datanode.DataNode
python2.7 版本是默认的,不要修改 /opt/cloudera-manager/cm-5.16.1/lib64/cmf/agent/build/env/bin/cmf-redactor /opt/cloudera-manager/cm-5.16.1/lib64/cmf/service/hdfs/hdfs.sh datanode
3.2实列的配置信息查看和修改
服务端配置:可以子在界面查看修改实例的配置,修改后会提示重启,踩坑,记住一定要勾选生效客客户端端的配置,配置在每个agent上的存储位置为:/opt//cloudera-manager/cm-5.12.0/rum/cloudera-scm-agent/process,在这个里修改配置是没有用的哈。因为只有界面修改配置重启后,才会将修改后的配置信息同步到相应的实列的agent生产新的序号的配置文件夹,实例运行的配置都是以最新序号的配置文件夹为准。
进程所属的配置,修改必须通过web界面:
[root@hadoop001 49-hdfs-DATANODE]# pwd
/opt/cloudera-manager/cm-5.16.1/run/cloudera-scm-agent/process/49-hdfs-DATANODE
客户端配置:该配置修改后并不会提示重启服务,只会提示重新部署客户端的配置,默认在 /etc/组件名称/conf下,外部的访问集群内的大数据组件必须要有该组件的相关客户端配置,有时是落地机、以及第三方开发,需要hadoop、hbase的相关配置。
- 若客户端在集群内的机器且不是hadoop的进程部署节点,若想访问hadoop,则必须给该节点添加gateway 实例(本质是个文件夹)。切记不要直接将配置文件拷贝,因为你web修改配置了,但是你拷贝的配置是修改不了的,
- 若客户端是集群外的机器,则需拷贝配置文件,客户端配置是要有hdfs yarn配置 hbase配置,部署gatwey,不需要拷文件,直接在CDH界面上实例中添加,gatwey部署专门是客户端用的,若客户端配置有冲突,集群外的配置项目代码中客户端配置>服务的客户端配置
客户端配置 假如节点没有这个目录 直接添加gatwey,任何进程修改配置重启生效 发送到你选中的那个节点上 其中一步就是要勾选 同时生效客户端
[root@hadoop001 49-hdfs-DATANODE]# ll /etc/hadoop/conf/
total 48
-rw-r--r-- 1 root root 21 May 11 13:04 __cloudera_generation__
-rw-r--r-- 1 root root 66 May 11 13:04 __cloudera_metadata__
-rw-r--r-- 1 root root 3852 May 11 13:04 core-site.xml
-rw-r--r-- 1 root root 617 May 11 13:04 hadoop-env.sh
-rw-r--r-- 1 root root 1709 May 11 13:04 hdfs-site.xml
-rw-r--r-- 1 root root 314 May 11 13:04 log4j.properties
-rw-r--r-- 1 root root 5086 May 11 13:04 mapred-site.xml
-rw-r--r-- 1 root root 315 May 11 13:04 ssl-client.xml
-rw-r--r-- 1 root hadoop 368 May 11 14:24 topology.map
-rwxr-xr-x 1 root hadoop 1594 May 11 14:24 topology.py
-rw-r--r-- 1 root root 3551 May 11 13:04 yarn-site.xml
[root@hadoop001 49-hdfs-DATANODE]#
- 还有更暴力的修改配置的方法,那就是修改cmf中的config表中的相关配置。然后重启对应的组件,慎用
一般直接修改mysql中信息,直接改元数据,在集群搬家,IP、网段发生变更时的场景才会用到,如下是解决步骤
1.agent 对server配置文件 hadoop001机器名称去指向
2.server链接mysql的配置文件 hadoop001
3.修改hosts文件为最新
4.mysql的hosts表修改 ,这个就需要到元数据库中去修改,这里需要修改为最新的
记录CDH安装的一个坑:could not contact scm server at localhost:7182, giving up
http://blog.itpub.net/30089851/viewspace-2137618/
4.日志配置以及查看
日志的查看在我们生产排查错误过程中至关重要,每个实例进程的日志都会分为两大类,一类是role日志,即进程内部打印的信息,一种是是CDH输出打印的,其实就是命令脚本输出的日志,分为stdout、stderror两小类。两者都非常的重要。
4.1 实例的日志查看
日志文件夹在机器上的目录:
日志查看,如hadoop003上的datanode进程的日志。
为了方便分析,我们可以子啊界面上直接下载该日志或根据浏览器提供的日志地址去机器上下载,有时日志很大,浏览器下载很慢。
4.2CM的日志查看
- server日志位置:opt/cloudera-manager/cm-5.12.0/log/cloudera-scm-server/XXX.log
- agent日志位置:opt/cloudera-manager/cm-5.12.0/log/cloudera-scm-agent/XXX.log
查看error出现的前后10行的命令: cat xx.log| grep -C 10 error
引申一个问题,若日志文件(一个文件-G)太多怎么办
方法一:在界面直接修改日志存储文件夹
方法二:
drwxrwxr-x 3 hdfs hadoop 4096 May 11 13:05 hadoop-hdfs
1.mv 移动到新的大磁盘目录,本身的路径就没有了
2.ln -s 指向以前的
3.校验 权限是否OK
高级:
我们看到的就像try catch 捕获到的日志 后缀.log Role Log
xxx.stdout
xxx.stderr
http://blog.itpub.net/30089851/viewspace-2136372/
5. 界面介绍
几个Host就有几个节点,一套CM 可以几套cluster,但是生产上还是建议一套CM一套cluster,主界面的Cluster Disk、CPU需要看
单机Host可以看有哪些机器,机器上上面的负载、磁盘空间、物理内存、swap (生产上swap最大放到16G,拿硬盘作为伪内存,其实还是慢的)
选中一台机器关闭stop,就可以把这台机器上面所有的进程都关了,就可以做一些下架或者维护,另外这台机器上面的agent再关了的话就可以宕机了,和我们上面说的关闭一样的
上面已经介绍的界面功能这里就跳过了,不做一一详解。以下讲解几个比较重要的操作
5.1host的管理
通过hosts我们可以,将某台机器上所有服务停止,然后移除再停止agent则彻底将此机器从集群中剔除了,同时也能添加机器。
通过配置,我们可以配置JAVA的运行环境,(很重要)
我们使用的是离线的包裹文件,有些是down的,当然网络环境要非常好
5.2Diagnostics(诊断)
这这里我们也可以查看一些日志以及事件,但是个人觉得并不方便,直接去机器上搜
5.3Administration(管理)
- Settings :一些CM的配置
- Users:用户管理,注意admin的用户密码要修改,若平台开发给别观摩权限,可添加一个只读的用户
- Security:登录安全认证,强烈建议不要开启,比较麻烦,会是的开发等变得复杂,且影响效率
6. 添加删除服务
- 添加服务
- 删除服务:很简单,略
服务 service role instance 进程,都是一个概念
7. 添加删除节点
在hosts tab页进行操作,上面有提到、略
8.监控
默认在主页是有4辐监控的图,生产上是不够的,点击每个服务都会有自己的一些监控。
8.1在首页添加服务中的监控图
8.2添加自定义的的监控
使用的tsquery语句,可查看官网。