大家好,我是脚丫先生 (o^^o)
目前自己在运维方面,主要管理着CDH平台和HDP平台,同时负责着以docker的形式进行产品的交付。
文章目录
0、CDH集群配置、日志、jar包以及安装目录和常用命令汇总0.1 关键目录(1)开启应用目录:默认可以直接敲命令行(2)日志目录(3)配置文件目录(4) 安装各个组件目录(5)jar包目录(6) CDH 加载的环境变量1、namenode出现missing blocks2、Spark on Yarn 查看任务日志及状态3、安装hive报错:4、CDH初始化scm_prepare_database.sh数据库遇到的问题5、CM定期报"查询 Service Monitor 时发生内部错误"解决办法6 文件系统检查点已有 1 天,14 小时,36 分钟。占配置检查点期限 1 小时的 3,860.33%。 临界阈值:400.00%。 自上个文件系统检查点以来已发生 14,632 个事务。7 cdh6 存在隐患 : 主机网络接口似乎以全速运行8 当安装agent的时候出现信号不法响应9 CDH 集群,出现 Entropy 不良问题,原因是系统熵值低于 CDH 检测的阀值引起的。9 FileNotFoundException: ...3.0.0-cdh6.0.0-mr-framework.tar.gz(hive执行聚合函数出现的问题)10 cdh6.2中datanode无法启动问题11 启动spark时,有可能提示Log directory specified does not exist:12、安装失败。 无法接收 Agent 发出的检测信号。&& Dependency failed for Cloudera Manager Agent Service.13、CDH集群的hive采用local模式测试14、CDH集群的Cloudera Manager 节点 ,迁移Cloudera Scm Server端15、CDH hive 中文注释乱码解决方法16 CDH中将hive计算引擎调整为spark及hive引擎设置相关命令0、CDH集群配置、日志、jar包以及安装目录和常用命令汇总
0.1 关键目录
(1)开启应用目录:默认可以直接敲命令行
/opt/cloudera/parcels/CDH/bin查询# lsavro-toolskite-dataset sqoop-create-hive-tablebeeline kudu sqoop-evalbigtop-detect-javahome llamasqoop-exportcatalogd llamaadminsqoop-helpcli_mtload_gen sqoop-importcli_stmahout sqoop-import-all-tablesflume-ng mapred sqoop-jobhadoopooziesqoop-list-databaseshadoop-0.20oozie-setup sqoop-list-tableshadoop-fuse-dfs parquet-tools sqoop-mergehadoop-fuse-dfs.origpig sqoop-metastorehbase pyspark sqoop-versionhbase-indexer sentry statestoredhbase-indexer-sentrysolrctl whirrhcat spark-shell yarnhdfs spark-submit zookeeper-clienthive sqoopzookeeper-serverhiveserver2sqoop2 zookeeper-server-cleanupimpala-collect-minidumps sqoop2-server zookeeper-server-initializeimpalad sqoop2-toolimpala-shell sqoop-codegen
(2)日志目录
/var/log/下面有对应节点所开启服务的日志其中cloudera-scm-agent CDH客户端日志cloudera-scm-server CDH服务端日志hadoop-hdfs hadoop日志目录hadoop-mapreducehadoop-yarnhbase hbase日志目录hive hive日志目录zookeeper zookeeper日志目录
(3)配置文件目录
各个部件配置/etc/cloudera-scm-agent/config.ini cm agent的配置目录/etc/cloudera-scm-server/ cm server的配置目录/etc/hadoop/conf Hadoop各个组件的配置/etc/hive/conf hive配置文件目录/etc/hbase/conf hbase配置文件目录/opt/cloudera/parcels/CDH/etc是hadoop集群以及组件的配置文件文件夹
服务运行时所有组件的配置文件目录
/var/run/cloudera-scm-agent/process/查看内容# ls244-hdfs-NAMENODE245-hdfs-SECONDARYNAMENODE246-hdfs-NAMENODE-nnRpcWait247-zookeeper-server250-yarn-RESOURCEMANAGER254-yarn-JOBHISTORY255-hive-HIVESERVER2256-hive-HIVEMETASTORE260-hbase-MASTER280-collect-host-statistics283-host-inspector291-cluster-host-inspector296-cluster-host-inspector302-hdfs-NAMENODE303-hdfs-SECONDARYNAMENODE304-hdfs-NAMENODE-nnRpcWait305-hive-HIVEMETASTORE308-collect-host-statistics311-host-inspector320-collect-host-statistics323-host-inspector333-collect-host-statistics336-host-inspector343-yarn-RESOURCEMANAGER347-yarn-JOBHISTORY348-hive-HIVESERVER2349-hive-HIVEMETASTORE359-yarn-RESOURCEMANAGER363-yarn-JOBHISTORY364-hive-HIVESERVER2365-hive-HIVEMETASTORE377-collect-host-statistics380-host-inspector391-collect-host-statistics394-host-inspector403-collect-host-statistics406-host-inspector415-solr-SOLR_SERVERccdeploy_hadoop-conf_etchadoopconf.cloudera.hdfs_2394207936436282336ccdeploy_hadoop-conf_etchadoopconf.cloudera.yarn_-5589955826917190240ccdeploy_hadoop-conf_etchadoopconf.cloudera.yarn_-5844902762347635403ccdeploy_hbase-conf_etchbaseconf.cloudera.hbase_107827303849382ccdeploy_hive-conf_etchiveconf.cloudera.hive_-2148401581528977976ccdeploy_hive-conf_etchiveconf.cloudera.hive_-9144129025529935636ccdeploy_solr-conf_etcsolrconf.cloudera.solr_4855637747225843610ccdeploy_spark2-conf_etcspark2conf.cloudera.spark2_on_yarn_-5389810983416787264ccdeploy_spark2-conf_etcspark2conf.cloudera.spark2_on_yarn_-8416474417781205702
(4) 安装各个组件目录
/opt/cloudera/parcels/CDH
(5)jar包目录
所有jar包所在目录/opt/cloudera/parcels/CDH/jars
各个服务组件对应的jar包
例如sqoop:/opt/cloudera/parcels/CDH/lib/sqoop/libParcels包目录
/opt/cloudera/parcel-repo/
(6) CDH 加载的环境变量
HADOOP_HOME /opt/cloudera/parcels/CDH/lib/hadoop HADOOP_CONF_DIR /etc/hadoop/confHADOOP_COMMON_HOME /opt/cloudera/parcels/CDH/lib/hadoop HADOOP_HDFS_HOME /opt/cloudera/parcels/CDH/lib/hadoop-hdfs HIVE_HOME /opt/cloudera/parcels/CDH/lib/hiveHBASE_HOME /opt/cloudera/parcels/CDH/lib/hbaseYARN_HOME /opt/cloudera/parcels/CDH/lib/hadoop-yarn HADOOP_MAPRED_HOME /opt/cloudera/parcels/CDH/lib/hadoop-mapreduceZOOKEEPER_HOME /opt/cloudera/parcels/CDH/lib/zookeeper
1、namenode出现missing blocks
日常巡检CDH集群和HDP集群发现有些namenode下有很多missing blocks ,hadoop数据存储单位为块。一块64M,这些Missing大多因为元数据丢失而毁坏,很难恢复。就行硬盘故障一样,需要fsck并且delete。
CDH集群 :Cloudera manager的dashboard----HDFS----NameNode Web UI 如图:
清理Missing blocks步骤:登录到console中控机,su hdfs 切换至hadoop集群管理用户
hdfs fsck /blocks-path/ 查看文件系统cluster,如:
hdfs fsck -fs hdfs://dc(n) /block-path/ 指定集群
hdfs fsck -fs hdfs://dc /block-path/ -delete 如果上步元数据已损坏,则直接清理。
例: hdfs fsck /app-logs/mapred/mbbi/logs/application_1525315338835_219860/10.11.12.161
hdfs fsck -fs hdfs://dc1 /app-logs/mapred/mbbi/logs/application_1525315338835_219860/10.11.12.161hdfs fsck -fs hdfs://dc1 /app-logs/mapred/mbbi/logs/application_1525315338835_219860/10.11.12.161 -delete
2、Spark on Yarn 查看任务日志及状态
1、根据application ID查看某个job的日志
yarn logs -applicationId application_1525315338835_7483
2、查看某个job的状态
yarn application -status application_1525315338835_7483
3、kill掉某个job(完全停止该job的执行,如果直接在Web上kill实际还会继续运行)
yarn application -kill application_1525315338835_7483
也可以通过 http://ip:8088/cluster/scheduler/ 查看,在此Web界面可通过applicationId查看任务状态和日志。
3、安装hive报错:
org.apache.hadoop.hive.metastore.HiveMetaException: Failed to retrieve schema tables from Hive Metastore DB,Not supported
解决:
jdbc版本不对,要求使用5.1.26以上版本的jdbc驱动
4、CDH初始化scm_prepare_database.sh数据库遇到的问题
5、CM定期报"查询 Service Monitor 时发生内部错误"解决办法
本机通过CM搭建CDH成功后,web界面经常报"查询 Service Monitor 时发生内部错误"无法正常显示包括cloudera-scm-server和cloudera-scm-server后台日志也经常报连接拒绝。
思路:
出现此问题,应该是Cloudera Management Service的内存不足所致,Service Monitor 和 Host Monitor服务JVM内存配置太低以至于垃圾回收增多,导致服务进程当掉,扩大相关服务内存即可
解决:
6 文件系统检查点已有 1 天,14 小时,36 分钟。占配置检查点期限 1 小时的 3,860.33%。 临界阈值:400.00%。 自上个文件系统检查点以来已发生 14,632 个事务。
思路:
1.namenode的Cluster ID 与 secondnamenode的Cluster ID 不一致
2. 修改之后还出现这个状况,查看secondnamenode 日志,报ERROR: Exception in doCheckpoint java.io.IOException: Inconsistent checkpoint field
解决:
1、 namenode的Cluster ID 与 secondnamenode的Cluster ID 不一致,对比/dfs/nn/current/VERSION 和/dfs/snn/current/VERSION中的Cluster ID 来确认,如果不一致改成一致后重启应该可以解决。
2、 这个错误,直接删除 /dfs/snn/current/下所有文件,重启snn节点
7 cdh6 存在隐患 : 主机网络接口似乎以全速运行
思路
cloudera后台,显示,存在隐患 : 以下网络接口似乎未以全速运行:enp4s0。1 主机网络接口似乎以全速运行。cloudera cdh6的测试机,硬件达不到要求,才会有上面的问题。然后不影响系统的使用,但是看着不舒服。
解决:
降低cdh,对带宽的要求
8 当安装agent的时候出现信号不法响应
思路
查看supervisor进程,或者查看journalctl -xe打印系统日志。
9 CDH 集群,出现 Entropy 不良问题,原因是系统熵值低于 CDH 检测的阀值引起的。
思路:
需要调大系统熵值
9 FileNotFoundException: …3.0.0-cdh6.0.0-mr-framework.tar.gz(hive执行聚合函数出现的问题)
进行如下图的操作:
上述操作完成后,问题就可以解决了。
10 cdh6.2中datanode无法启动问题
报错:关键信息 java.io.IOException: Incompatible clusterIDs in /dfs/dn: namenode clusterID = cluster74; datanode clusterID = cluster14
关键信息,namenode的 clusterID和datanode的不一致。
解决:
如果是新建的集群,则直接主机目录 /dfs/dn (cdh->hdfs->配置-> dfs.datanode.data.dir )下的current目录下的文件删除 rm -rf /dfs/dn/current/*如果集群内有数据,则只改 /dfs/dn/current/VERSION 中的 clusterID=clusterXX XX为正确的namenode的clusterID重启datanode即可
11 启动spark时,有可能提示Log directory specified does not exist:
解决:
手动在hdfs上添加/user/spark/applicationHistory目录,主要目录的owner需要是spark用户,可以先用hdfs用户新建此目录,然后使用命令:hdfs dfs –chown –R spark:spark /user/spark/applicationHistory,将拥有者转换成spark即可。
12、安装失败。 无法接收 Agent 发出的检测信号。&& Dependency failed for Cloudera Manager Agent Service.
Cloudera Manager 6.1.0 在集群中添加一个节点,安装过程中遇到:安装失败。 无法接收 Agent 发出的检测信号。
通过去该节点看程序状态:systemctl status cloudera-manager-agent 发现错误:Dependency failed for Cloudera Manager Agent Service.
解决:
1.登录该节点:使用yum卸载 cloudera-manager-agent 和 cloudera-manager-daemons
yum remove cloudera-manager-agentyum remove cloudera-manager-daemons
2.重新使用Cloudera Manager安装向导,将该节点添加到集群。
注:网上很多说的是开启Auto-TLS造成的,我没有开启Auto-TLS,所以不是这个原因。
13、CDH集群的hive采用local模式测试
采用的CDH大数据平台,由于hive会走yarn平台造成测试很慢,因此设置local模式
14、CDH集群的Cloudera Manager 节点 ,迁移Cloudera Scm Server端
原有的 Cloudera Manager 节点 服务器不稳定,需要迁移至新的服务器
原有: http://192.168.1.212:7180
迁移后: http://192.168.1.44:7180
停止原有的server端与所有agent端
1、在新的服务器里安装好所需要的依赖包(完全离线环境,新环境需要装各种依赖)
文件夹:
2、在旧的 Cloudera Manager 节点压缩文件
scm server 存储目录:/var/lib/cloudera-scm-server
(可以把其他3个重要角色目录也压缩)
3、在新服务器安装 server端(注意:这里是对新服务器已经配置了本地源、免密登录)
cloudera manager server
yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
4、修改 cloudera-scm-server 配置文件
vim /etc/cloudera-scm-server/db.propertiescom.cloudera.cmf.db.type=mysqlcom.cloudera.cmf.db.host=192.168.1.44com.cloudera.cmf.db.name=cmcom.cloudera.cmf.db.user=rootcom.cloudera.cmf.db.setupType=EXTERNALcom.cloudera.cmf.db.password=*****
5、解压恢复备份数据到新服务器指定配置的目录中
新服务器安装完server端,要讲server端目录删除掉,然后进行替换,
默认 : /var/lib/cloudera-scm-server
6、修改所有agent节点的配置文件内容
> vim /etc/cloudera-scm-agent/config.iniserver_host= 新的clouderaManager服务器ip
7、启动新服务器的server端以及agent端
8、登陆新的ClouderaManager地址
15、CDH hive 中文注释乱码解决方法
一、问题描述
环境 cdh5.12.1 + hive 1.1.0。 hive 元数据库用的是mysql
创建hive表后,用desc查看表信息,中文注释出现乱码,如下
二、解决方法
1、进入mysql执行:show create database hive; 发现默认是utf8类型
mysql> show create database hive;
±---------±--------------------------------------------------------------+
| Database | Create Database |
±---------±--------------------------------------------------------------+
| hive | CREATE DATABASEhive
/*!40100 DEFAULT CHARACTER SET utf8 */ |
±---------±--------------------------------------------------------------+
2、更改默认编码为latin1
mysql> alter database hive default character set latin1;
3、在mysql中修改hive元数据属性
mysql> use hive;mysql> alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;mysql> alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;mysql> alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;mysql> alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;mysql> alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
4、重新建表,再desc查看,此时中文注释显示正常。(show create table显示也是正常的)
注:须重新建表(也可通过alter更改注释内容),否则以前的表还是乱码。
16 CDH中将hive计算引擎调整为spark及hive引擎设置相关命令
CDH中将hive计算引擎调整为spark
1.在CDH的hive中搜索配置参数:hive.execution.engine
2.第一步仅仅是修改的jdbc,也就是beeline远程连接时候计算引擎修改为hive,还需修改hive-site.xml中的hive.execution.engine配置文件为spark
<!--Hive执行引擎--><property><name>hive.execution.engine</name><value>spark</value></property>
3.hive on spark依赖