1、格式化的时候配置文件错
错误日志:
Caused by: org.xml.sax.SAXParseException; systemId: file:/home/hadoop/apps/hadoop-2.7.6/etc/hadoop/hdfs-site.xml; lineNumber: 44; columnNumber: 1; XML document structures must start and end within the same entity.
解决方案:到对应的配置文件中检查错误 修正错误 重新格式化
2、格式化问题
1)为什么成功的格式化只能做一次?
格式化的时候实质是对hdfs的namenode进行的格式化,生成namenode的数据文件目录
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/data/hadoopdata/name</value>
<description>namenode的相关数据存储目录</description>
</property>
在格式化的时生成/home/hadoop/data/hadoopdata/name/current,这个目录存放的就是namenode的核心数据。
格式化的过程中在这个目录下生成了一个核心文件,即集群标志文件——VERSION,记录的就是一系列的集群标识的id
#Thu Nov 08 00:18:41 CST 2018
namespaceID=1252741252
clusterID=CID-5f1d0a0e-f312-43bf-bbcc-7116e9288538 集群id 集群的同一标识 同一个集群的这个id一定是一样的
cTime=0 创建时间
storageType=NAME_NODE 存储类型
blockpoolID=BP-935116426-192.168.191.201-1541607521456 块池id
layoutVersion=-63
datanode的数据目录是在集群第一次启动的时候生成的 in_use.lock 锁文件 保证一个节点只启动一个对应的进程namenode、datanode........
在datanode的数据目录下 也会生成一个VERSION
#Thu Nov 08 00:29:06 CST 2018
storageID=DS-9bb69108-56bf-4f5b-8f2a-42877a86d1ad
clusterID=CID-5f1d0a0e-f312-43bf-bbcc-7116e9288538
cTime=0
datanodeUuid=08c6d988-8185-4fb9-a118-079f8ae123c2
storageType=DATA_NODE
layoutVersion=-56
这个文件中的clusterID和namenode的VERSION文件一样,才表明datanode和namenode是一个集群的。
如果我们格式化成功之后,重新格式化了?
Re-format filesystem in Storage Directory
/home/hadoop/data/hadoopdata/name ? (Y or N)
重新生成一个namenode的数据文件,重新生成VERSION文件,重新生成一个新的clusterId,就会造成datanode的clusterId和namenode的clusterId 不一致的,最终造成datanode无法启动。
2)如果想重新格式化,如何操作?
删除namenode和datanode的所有的数据文件,即清空所有节点的 /home/hadoop/data/hadoopdata 目录
在3个节点上分别执行: rm -rf /home/hadoop/data/hadoopdata
再在namenode节点执行格式化命令:hadoop namenode -format
3、集群再启动的过程中某一个进程启动失败,或者集群运行一段时间后,某一个进程死了?进程缺失
1)先去查看进程启动日志
日志文件目录:/home/hadoop/apps/hadoop-2.7.6/logs
日志文件命名:
hadoop-hadoop-datanode-hadoop01.log
yarn-hadoop-nodemanager-hadoop01.log
规则:模块名称-用户名-进程名-主机名.log
hadoop---->hadoop的hdfs的模块
yarn---->hadoop的yarn的模块
hadoop-hadoop-datanode-hadoop01.log代表的含义:hdfs模块datanode进程在hadoop01节点上的启动日志
进程在哪个节点,对应的日志就在该节点的本地。
查看命令: tail -100 日志文件
2)如果日志文件没有报错,则证明这个进程没有问题
但是进程没有启动原因:通信
解决方案:
1)暴力重启
关闭集群
stop-dfs.sh
stop-yarn.sh
重启集群:
start-dfs.sh
start-yarn.sh
2)缺哪一个进程 启动哪一个进程
进程单独启动命令:
hdfs的进程:
hadoop-daemon.sh start hdfs进程
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
hadoop-daemon.sh start secondarynamenode
yarn的进程:
yarn-daemon.sh start resourcemanager
yarn-daemon.sh start nodemanager
3)如果启动日志报错
java.io.IOException: Incompatible clusterIDs in /home/hadoop/data/hadoopdata/data: namenode clusterID = CID-db9fae78-3f54-4a46-adf9-0ae63a37b283; datanode clusterID = CID-8870bfb8-7567-432c-b720-8b3ee9fc101b
如果报错先修正,再启动
上面的错误 clusterid不一致造成的。解决方案:
1)删除所有namenode和datanode的数据文件 重新格式化
2)将datanode的clusterID改为namenode的clusterId 不是很安全
4、集群的环境变量的配置文件问题
/etc/profile 系统环境变量 全局的环境变量 所有用户
~/.bashrc 用户环境变量 只对当前用户有作用
~/.bash_profile 用户环境变量
加载顺序:/etc/profile---->~/.bashrc----->~/.bash_profile
生效:最后加载的最终生效
注意:环境变量修改哪一个文件,则生效哪一个文件
/etc/profile.d 这个目录也是系统环境变量