集群安装中遇到的问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_1018944104/article/details/85062918

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 这个目录也是系统环境变量

猜你喜欢

转载自blog.csdn.net/qq_1018944104/article/details/85062918