1、CM和CDH在安装的时候遇到的问题:
- 通过Cloudera WEB界面安装Hadoop过程中,在安装Parcel步骤时,一个节点分配激活失败,报错信息显示”主机运行状况不良”,如下图所示。
解决方法:删除agent目录下面的cm_guid文件,并重启失败节点的agent服务恢复。那一台服务器的状况不良,在哪一台中执行。
cd /var/lib/cloudera-scm-agent/
rm -rf cm_guid
service cloudera-scm-agent restart
再次去新建集群的时候,会出现CDH 主机准备就绪,无法继续问题。
这个时候需要在CM的主页面删除主机中的管理的几台服务器。然后再去添加集群,在集群搜索的旁边有管理的机器。
2、Hadoop之——format格式化失败:
原因:Namenode和DataNode的曾今留下来的信息未删除。
它的目录信息在hdfs-site.xml中。
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/hdsf/data</value>
</property>
将 dfs.name.dir所指定的目录删除、dfs.data.dir所指定的目录删除,及我们需要删除hdfs-site.xml中配置的存储信息路径。
3、HDFS-副本不足的块,报错信息:
测试 HDFS 是否具有过多副本不足块。
不良 : 群集中有 8 个 副本不足的块 块。群集中共有 11 个块。百分比 副本不足的块: 72.73%。 临界阈值:40.00%。
操作
为此服务更改“副本不足的块监控阈值”。
建议
这是 HDFS 服务级运行状况测试,用于检查副本不足的块数是否未超过群集块总数的某一百分比。
该运行状况测试失败可能表示 DataNode 丢失。使用 HDFS fsck 命令可确定哪些文件含有副本不足的块。
可使用 副本不足的块监控阈值 HDFS 服务范围内的监控设置配置该测试。
原因:设置的副本备份数与DataNode的个数不同。
dfs.replication的默认是3,也就是说副本数--块的备份数默认为3份。
但是我这只有两个DataNode。所以导致了达不到目标,副本备份不足。
解决方案:
- 设置目标备份数为2
- 通过命令修改当前备份数
点击集群-HDFS-配置,搜索dfs.replication,设置为2后保存更改。
dfs.replication这个参数其实只在文件被写入dfs时起作用,虽然更改了配置文件,但是不会改变之前写入的文件的备份数。
所以我们还需要步骤2,在cm0中通过命令更改备份数:
这里的-R 2的数字2就对应我们的DataNode个数。
su hdfs
hadoop fs -setrep -R 2 /
4、如果你不想使用CM自带的内置数据库,可以使用Mysql和Oracle和postgresql。
sh /usr/share/cmf/schema/scm_prepare_database.sh [postgresql|mysql|oracle] -h hostname -P port database username password
sh /usr/share/cmf/schema/scm_prepare_database.sh oracle -h 12.99.106.111 orcl mjj 123456
postgresql和mysq和oracle都会在/etc/cloudera-scm-server/目录下生成新的db.properties配置文件,但是其中posrtgresql还会自动生成数据库,而mysql和oracle不会。有些版本的mysql会,但还是保险的创建为好。
5、在安装CM的时候又遇到了一个坑。发现在集群安装的第一步中,Parcel设置好了地址却无法保存。然后看了一下控制台,发现可能是mysql的编码的问题,导致数据无法保存。
解决方案:把mysql中的cm数据库删除,然后重新创建并同时设置好了编码格式为utf8。然后重新连接cm,生成表。