1.无法加载最新的supervisord
解决方案:ps -ef | grep supervisord kill -9 pid
2.cloudera-scm-agent dead but pid file exists
解决方案:ps -ef | grep cloudera-scm-agent,然后kill掉cloudera-scm-agent.pid,并删除/opt/cloudera-manager/cm-xxx/run/cloudera-scm-agent下的cloudera-scm-agent.pid文件,再重启cloudera-scm-agent
备注:cloudera-scm-agent经常挂掉,和节点的内存过小有关系,当节点上运行的任务很多而内存又比较小时,就会造成cloudera-scm-agent服务经常挂掉
3.调整句柄
ulimit -n
在.bashrc中添加了ulimit -HSn 65535
4.198.1.168.192.in-addr.arpa domain name pointer localhost
解决方案:sudo mv /usr/bin/host /usr/bin/host.bak
5.时间同步NTP,无法监测到主机健康运行状态(显示host health 异常,检查发现Clock Offset 问题)
解决方案:
#yum -y install ntp ---安装ntp
#ntpdate -u ntp1.aliyun.com ---配置阿里云时钟
#vim /etc/ntp.conf
server ntp1.aliyun.com prefer
#service ntpd start ---开启ntpd服务
#chkconfig ntpd on ---ntpd自启动
说明:如果只开启主服务器ntpd 服务,cdh依然会报告错误,因为cdh是通过ntpdc -c loopinfo 命令来获取每台机器的同步时间差。
可以在命令行直接执行 ntpdc -c loopinfo 验证是否在cdh 系统中正常。
6.Installation failed. Failed to receive heartbeat from agent
解决方案:关闭防火墙和SLINUX
7.uuid造成主机紊乱
rm /usr/local/appserver/cm-5.10.2/lib/cloudera-scm-agent/*
初始化化cm数据库:/usr/local/appserver/cm-5.10.2/share/cmf/schema/scm_prepare_database.sh mysql cm -hhadoop01 -uroot -proot --scm-host hadoop01 scm scm scm
8.无法加载DataNode数据存储目录,NN ClusterID与DN ClusterID不一致
将master中的clusterID的值替换slave机上的/dfs/data/下的current下的VERSION文件中的clusterID,再重新启动,注:一定要先关闭集群再重新启动集群,免得集群被玩坏了。
9.Operation category READ is not supported in state standby(HDFS HA场景下,启动时出现两个NN都为standby)
通过http://nn1:50070/dfshealth.html#tab-overview
http://nn2:50070/dfshealth.html#tab-overview
发现这两个namenode都是Standby.
在ZK中初始化HA状态,可通过CM界面操作,或者执行sudo -u hdfs hdfs zkfc -formatZK,然后重启HDFS即可。
10.NN格式化
11.使用mysql作为数据库,提示 JDBC driver cannot be found. Unable to find the JDBC database jar on host
手工拷贝 mysql-connector-java-5.1.6-bin.jar 到 mysql主机上的CM5 的目录
如下目录参考: /opt/cloudera/parcels/CDH-xxx/lib/hive/lib/
/usr/local/appserver/cm-5.10.2/share/cmf/lib (本人是使用这个目录)
12.初始化cm数据库后无权限
mysql -uroot -p
grant all privileges on *.* to 'scm'@'%' identified by 'scm' with grant option;
grant all privileges on *.* to 'scm'@'localhost' identified by 'scm' with grant option;
grant all privileges on *.* to 'scm'@'hadoop01' identified by 'scm' with grant option;
flush privileges;
exit;
13.日志分析
tail -200f /usr/local/appserver/cm-5.10.2/log/cloudera-scm-agent/cloudera-scm-agent.log
14.查看ZK日志,发现了警告“Too many connections from /192.168.*.* - max is 60”,其中IP正好是问题的RegionServer。在问题机器上执行“netstat -antp | grep 2181 | wc -l”,结果为180+,而正常机器上为20左右,看来确实这台机器上打开了过多的的ZK客户端,所以导致RegionServer不能连接ZK了
清除问题机器上过多的ZK客户端即可。我这里最终发现是问题机器上的HiveServer2服务占用了过多的ZK客户端,所以重启该服务即可。
15.ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet
出现上面问题应该是Hadoop处在安全模式,解决问题方式就是手动退出安全模式
hadoop dfsadmin -safemode leave
16.关于Hadoop数据块Miss在页面提示的问题
50070页面提示:WARNING : There are about 900 missing blocks. Please check the log or run fsck.
#检测已经坏了的数据块:hadoop fsck /
#hadoop fsck -delete 可以移除 missing block
#hadoop fsck -move 會把有錯誤的檔案移到 HDFS 的 /lost+found
#就要看那幾個 block 是否還有存在某幾台 DataNode 的 ${dfs.data.dir} 目錄中了
#检查损坏的hdfs文件列表 使用命令可以打印出损坏的文件列表: hadoop fsck
没有冗余备份,只能删除损坏的文件,使用命令: hadoop fsck --delete
17.在hbase shell中使用list命令报错:ERROR: Can't get master address from ZooKeeper; znode data == null原因及解决方法
hbase的HMaster没有启动,导致zookeeper和hbase连接不上
方法一:重启hbase(可能是zookeeper或hbase不稳定造成的 重启不一定起作用)
方法二:在hbase-site.xml指定一个运行hbase的用户有写入文件权限的目录作为zookeeper数据目录,如
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/zk_data</value>
</property>
方法三:格式化NameNode
18.HDFS重新创建/hbase目录,创建表显示存在
分析:因为之前的hbase已经写入zk,现在需要停止RegionServer,清除zk信息