hdfs namenode -format格式化成功但是里面报错哎呀yarn in-site.xml
时间: 2024-03-17 13:44:22 浏览: 72
这个错误提示可能是因为 Hadoop 配置文件中的 yarn-site.xml 配置有误。请检查 yarn-site.xml 文件中是否存在以下配置项:
```
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
```
如果不存在,则需要添加该配置项,并将 value 的值设置为您的 ResourceManager 主机名或 IP 地址。如果该配置项已存在,请检查其值是否正确。
此外,还需要确保该配置文件的路径被正确地添加到 CLASSPATH 环境变量中。可以使用以下命令检查:
```
echo $CLASSPATH
```
如果 yarn-site.xml 的路径没有被包含在其中,则需要手动将其添加到 CLASSPATH 中。
相关问题
Re-format filesystem in Storage Directory root= /export/data/hadoop-3.3.0/dfs/name; location= null ? (Y or N) Y
要重新格式化Hadoop HDFS(Hadoop Distributed File System)文件系统,你需要运行`hdfs namenode -format`命令。然而,在给出的上下文中,似乎遇到了权限问题和配置更改的要求。首先,解决权限问题:
1. 使用`sudo`调整Hadoop目录的权限,确保`hadoop`用户可以访问该目录[^1]:
```bash
sudo chown -hR hadoop /usr/local/hadoop
```
接着,确认`yarn-site.xml`和`start-dfs.sh`文件的编辑已完成,并按照需要设置了辅助服务`mapreduce_shuffle`[^2]。之后,你可以继续格式化HDFS,但提示可能是因为当前未在正确的环境中。通常,这会在Hadoop集群的管理节点上执行,如下所示(假设你是集群管理员):
2. 执行格式化命令(注意路径替换为实际的HDFS名称节点路径):
```shell
hdfs namenode -format -force -nonInteractive \
--rootdir /export/data/hadoop-3.3.0/dfs/name \
--ha
```
这里的`--ha`表示高可用性模式,如果不需要,可以省略。
hadoop集群搭建双namenode
Hadoop集群可以搭建双Namenode,达到高可用性和容错性。下面是搭建双Namenode的步骤:
1. 安装Hadoop集群,参考官方文档。
2. 在Hadoop的主配置文件hdfs-site.xml中,增加以下配置:
```
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/hadoop/dfs/name1,file:/hadoop/dfs/name2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mynamenode1</name>
<value>172.16.10.1:9000</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mynamenode2</name>
<value>172.16.10.2:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.mynamenode1</name>
<value>172.16.10.1:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.mynamenode2</name>
<value>172.16.10.2:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://mynamenode1:8485;mynamenode2:8485/mycluster</value>
</property>
```
其中,dfs.namenode.name.dir配置了两个Namenode的元数据存储路径;dfs.namenode.rpc-address和dfs.namenode.http-address分别配置了两个Namenode的RPC和HTTP地址;dfs.namenode.shared.edits.dir配置了两个Namenode的编辑日志存储路径。
3. 在每个Namenode节点上,创建元数据存储路径和编辑日志存储路径,并设置权限:
```
$ sudo mkdir -p /hadoop/dfs/name1 /hadoop/dfs/name2
$ sudo chown -R hdfs:hadoop /hadoop/dfs
```
4. 启动Hadoop集群,格式化HDFS和启动Zookeeper:
```
$ hdfs namenode -format
$ start-dfs.sh
$ start-yarn.sh
$ zkServer.sh start
```
5. 在一个Namenode节点上,启动JournalNode:
```
$ hadoop-daemon.sh start journalnode
```
6. 在另一个Namenode节点上,启动Active Namenode:
```
$ hdfs --daemon start namenode
```
7. 在第三个节点上,启动Standby Namenode:
```
$ hdfs namenode -bootstrapStandby
$ hdfs --daemon start namenode
```
8. 验证双Namenode是否正常工作:
```
$ hdfs haadmin -getServiceState mynamenode1
$ hdfs haadmin -getServiceState mynamenode2
```
如果输出为“active”,表示双Namenode正常工作。
以上就是搭建双Namenode的步骤。双Namenode可以提高Hadoop集群的可用性和容错性,但也增加了部署和维护的复杂度。因此,需要根据实际情况选择是否搭建双Namenode。
阅读全文