多次重新初始化hadoop namenode -format后,DataNode或NameNode没有启动

多次重新初始化hadoop namenode -format后,DataNode或NameNode没有启动

在搭建完hadoop集群后,需要对主节点进行初始化(格式化)

其本质是清理和做一些准备工作,因为此时的HDFS在物理上还是存在的。

而且主节点格式化操作只能进行一次。

当我们不小心多次初始化,会导致启动hadoop集群时,主节点DataNode或NameNode无法启动

[root@node01 hadoop]# jps
6628 SecondaryNameNode
7412 Jps
6901 ResourceManager
7066 NodeManager

解决方法如下:

在重新初始化(格式化)前,

  • 先在主节点上运行 stop-all.sh终止所有进程 (可以使用jps查看)

  • 删除配置文件core-site.xml 和hdfs-site.xml中指定目录下的文件

    查找方法:查看配置文件里面是如何写的

    image-20230405140150628

    示例:

    $hadoop_home = /opt/app/hadoop-2.7.7
    
    1. 首先找到指定目录

    查看hdfs-site.xml文件

    示例: $hadoop_home/etc/hadoop/hdfs-site.xml

<configuration> 
    .
    .
    .
  <property> 
    <name>dfs.namenode.dir</name>
    <value>file:/opt/app/hadoop-2.7.7/name</value>
  </property> 
    
  <property>
    <name>dfs.datanode.dir</name>
    <value>file:/opt/app/hadoop-2.7.7/data</value>
  </property> 
    .
    .
    .

</configuration>

查看core–site.xml

示例:$hadoop_home/etc/hadoop/core–site.xml

<configuration> 
    .
    .
    .
    
  <property>
    <name>dfs.tmp.dir</name>
    <value>file:/opt/app/hadoop-2.7.7/tmp</value>
  </property> 
    .
    .
    .

</configuration>
  1. cd /opt/app/hadoop-2.7.7去看有哪些内容

20230401180327

  1. 删除 dfs.namenode.dir和dfs.datanode.dir所指目录里的文件
  • rm -rf name

  • rm -rf data

  1. 删除logs日志文件和tmp缓存文件
  • rm -rf logs
  • rm -rf tmp
  1. 最后重新初始化(格式化) hadoop namenode - format

!!!注意:每个结点上都需要删除相应文件

### 启动Hadoop集群的NameNodeDataNode 为了启动Hadoop集群中的NameNodeDataNode,并确保日志路径配置无误,可以按照如下方法操作。 #### 配置文件设置 进入Hadoop配置目录,编辑`core-site.xml`, `hdfs-site.xml` 和 `yarn-site.xml` 文件来指定日志存储位置和其他必要参数。对于日志路径,在`log4j.properties` 中定义具体的日志输出路径[^3]。 ```bash cd /opt/module/hadoop-2.7.2/etc/hadoop/ vi log4j.properties ``` 在该文件中找到添加如下属性: ```properties hadoop.root.logger=INFO,console,RFA log4j.appender.RFA.File=${hadoop.log.dir}/hadoop-${user.name}-${hadoop.id.str}.log ``` 这会使得所有的日志被写入到`${hadoop.log.dir}`变量所指向的位置下相应的日志文件里。 #### 启动NameNode 如果之前有备份过的检查点,则可以通过命令导入检查点以恢复元数据状态[^2]: ```bash [zaz01@hadoop102 hadoop-2.7.2]$ bin/hdfs namenode -importCheckpoint ``` 如果没有可用的检查点者不需要从检查点恢复,可以直接格式化新的名称节点(注意此操作将会删除现有数据),之后再正常启动: ```bash bin/hdfs namenode -format start-dfs.sh ``` #### 启动DataNodes 一旦NameNode成功启动后,通过执行脚本批量启动所有配置好的DataNodes实例[^1]: ```bash /opt/module/hadoop-2.7.2/sbin/start-dfs.sh ``` 此时应该能够观察到两个Datanodes (即slave1和slave2) 已经处于运行状态。 #### 日志验证 最后,可通过查看相应服务的日志文件确认各组件是否已正确启动以及是否有任何错误发生。默认情况下,这些日志位于`/opt/module/hadoop-2.7.2/logs/` 目录下的不同子文件夹中.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Oraer_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值