现象:当停止Hadoop的时候发现no datanode to stop的信息。
原因1:每次namenode format会重新创建一个namenodeId,而tmp/dfs/data下包含了上次format下的id,namenode format清空了namenode下的数据,但是没有清空datanode下的数据,导致启动时失败,所要做的就是每次fotmat前,清空tmp一下的所有目录。
这里有两种解决方案:
1)删除“/usr/hadoop/tmp”里面的内容
rm -rf /usr/hadoop/tmp/*
2)删除“/tmp”下以“hadoop”开头的文件
rm -rf /tmp/hadoop*
3)重新格式化hadoop
hadoop namenode -format
4)启动hadoop
start-all.sh
这种方案的缺点是原来集群上的重要数据全没有了。因此推荐第二种方案:
1)修改每个Slave的namespaceID,使其与Master的namespaceID一致。
或者
2)修改Master的namespaceID使其与Slave的namespaceID一致。
Master的“namespaceID”位于“/usr/hadoop/tmp/dfs/name/current/VERSION”文件里面,Slave的“namespaceID”位于“/usr/hadoop/tmp/dfs/data/current/VERSION”文件里面。
原因2:问题的原因是hadoop在stop的时候依据的是datanode上的mapred和dfs进程号。而默认的进程号保存在/tmp下,linux 默认会每隔一段时间(一般是一个月或者7天左右)去删除这个目录下的文件。因此删掉hadoop-hadoop-jobtracker.pid和hadoop-hadoop-namenode.pid两个文件后,namenode自然就找不到datanode上的这两个进程了。
在配置文件hadoop_env.sh中配置export HADOOP_PID_DIR可以解决这个问题。
在配置文件中,HADOOP_PID_DIR的默认路径是“/var/hadoop/pids”,我们手动在“/var”目录下创建一个“hadoop”文件夹,若已存在就不用创建,记得用chown将权限分配给hadoop用户。然后在出错的Slave上杀死Datanode和Tasktracker的进程(kill -9 进程号),再重新start-all.sh,stop-all.sh时发现没有“no datanode to stop”出现,说明问题已经解决。
相关推荐
- 如果你是通过Hadoop的服务管理工具(如`start-dfs.sh`、`stop-dfs.sh`等)启动和停止服务,确保使用相同的方式停止服务。直接使用`kill`命令可能不会正确地清理资源,导致问题。 6. **配置文件问题**: - 检查...
java.net.NoRouteToHostException: No route to host 是 Hadoop 中的常见问题,主要是由于网络连接问题。解决方法是停止 iptables 服务,例如使用 `sudo /etc/init.d/iptables stop` 命令。 更改 namenode 后,在 ...
相信对于大部分的大数据初学者来说,一定遇见过hadoop集群无法正常关闭的情况。...slave2: no datanode to stop slave1: no datanode to stop … 最开始的时候,我也是看了一个头两个大,这都是啥
在CentOS 7环境下配置Hadoop分布式环境是一项涉及操作系统配置、网络设置、密钥管理等多个方面的技术任务。以下是根据提供的文件内容所整理的详细知识点: ### CentOS 7系统配置 #### 1. 修改主机名 - **CentOS 7...
在Hadoop分布式文件系统(HDFS)的运行过程中,可能会遇到一个常见的错误,即"ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation. Starting datanodes"。这个错误通常意味着系统在尝试启动...
通过上述步骤,您可以成功地在Windows环境下使用VirtualBox和CentOS 6.3构建出一个包含一台namenode和两台datanode的Hadoop集群,并且已经完成了基本的网络配置和SSH配置。这是搭建Hadoop集群的基础步骤,后续还需要...
sbin/hadoop-daemon.sh start datanode sbin/yarn-daemon.sh start resourcemanager sbin/yarn-daemon.sh start nodemanager ``` 至此,Hadoop 3.1.2的伪分布式环境就已经搭建完成了。接下来可以根据项目需求进一步...
# hdfs --daemon stop datanode # hdfs --daemon stop namenode # yarn --daemon stop nodemanager # yarn --daemon stop resourcemanager # zkServer.sh stop ``` 以上步骤详细介绍了如何搭建一个完整的...
$ systemctl stop firewalld ``` - 临时关闭SELinux(无需重启): ```bash $ setenforce 0 ``` - 修改配置文件以永久禁用SELinux: ```bash $ cat /etc/selinux/config SELINUX=disabled ``` 3. **网络...