# Hadoop 配置文件说明

> 来源：梦飞idc云平台 | 原文：https://www.mfisp.com/20808.html | 发布：2023-05-26 | 更新：2023-05-26 | 分类：建站教程

Hadoop的运行方式是由配置文件决定的（运行Hadoop时会读取配置文件），因此如果需要从伪分布式模式切换回非分布式模式，需要删除coresite.xml 中的配置项。 此外，伪分布式虽然只需要配置 fs.defaultFS 和 dfs.replication 就可以运行（官方教程如此），不过若没有配置 hadoop.tmp.dir 参数，则默认使 用的临时目录为 /tmp/hadoo-hadoop，而这个目录在重启时有可能被系统清 理掉，导致必须重新执行format才行。所以我们进行了设置，同时也指定dfs.namenode.name.dir和dfs.datanode.data.dir，否则在接下来的步骤 中可能会出错。

 

2、格式化 NameNode

 

./bin/hdfs namenode -format

 

成功的话，会看到类似如下信息（首次格式化会有警告，阅读后可以忽略）

 

如果提示：  
Error:JAVA_HOME is not set and could not be found  
可能是没有配置JAVA_HOME 环境变量

 

vim ~/.bashrc #打开hadoop用户的环境变量，把下边几行粘进去

 

Esc+ZZ保存退出

 

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_241  
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH

 

如果还是出现  
Error: JAVA_HOME is not set and could not be found.  
那么请hadoop的安装目录修改配置文件  
“/usr/local/hadoop/etc/hadoop/hadoop-env.sh”  
在里面找到“export JAVA_HOME=${JAVA_HOME}”这行，然后，把它修改成 JAVA 安装路径的具体地址，比如“export JAVA_HOME=/usr/lib/jvm/default-java”，然后，再次启动 Hadoop。  
3. 开启 2 个守护进程（NameNode 和 DataNode）

 

这一步常见错误：

 

（1）如果提示“public/private ……denied”的信息，表示“ssh 免密登录”设置失败，请重 新设置。  
 （2） 启动 Hadoop 时提示 Could not resolve hostname 。 如果启动Hadoop 时遇到输 出非常多“ssh:Could not resolve hostname xxx”的异常情况，这个并不是 ssh 的问题，可通过设置 Hadoop环境变量来解决。  
 首先按键盘的 ctrl + c 中断启动，然后在 ~/.bashrc 中， 增加如下两行内容（设置过程与 JAVA_HOME环境变量一样，其中 HADOOP_HOME 为 Hadoop 的安装目录）：  
export HADOOP_HOME=/usr/local/hadoop   
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

 

保存后，务必执行：

 

source ~/.bashrc #使变量生效  
 ./sbin/start-dfs.sh #启动Hadoop

 

判断是否成功启动  
启动完成后，可以通过命令jps来判断是否成功启动，若成功启动则会列出如下进程:  
“NameNode”、”DataNode”和“SecondaryNameNode”  
（如果SecondaryNameNode 没有启动，请运行 sbin/stop-dfs.sh 关闭进程，然后再次尝试启动尝试）。如果没有 NameNode 或 DataNode ，那就是配置不成功，请仔细检查之前步骤，或通过查看启动日志排查原因。  
Hadoop 无法正常启动的解决方法：  
一般可以查看启动日志来排查原因，注意几点：  
• 启动时会提示形如

 

> “DBLab-XMU: starting namenode, logging to  
> /usr/local/hadoop/logs/hadoop-hadoop-namenode-DBLab-XMU.out”

 

其中DBLab-XMU 对应你的机器名，但其实启动日志信息是记录在 /usr/local/hadoop/logs/hadoop-hadoop-namenode-DBLab-XMU.log  
所以应该查看这个后缀为 .log 的文件；

 

• 每一次的启动日志都是追加在日志文件之后，所以得拉到最后面看，对比下记录的时间就知道了。

 

• 一般出错的提示在最后面，通常是写着 Fatal、Error、Warning或者Java Exception 的地方。

 

• 可以在网上搜索一下出错信息，看能否找到一些相关的解决方法。  
此外，若是 DataNode 没有启动，可尝试如下的方法（注意这会删除 HDFS 中 原有的所有数据，如果原有的数据很重要请不要这样做）：

 

针对 DataNode 没法启动的解决方法

 

cd /usr/local/hadoop #切换目录  
./sbin/stop-dfs.sh # 关闭  
rm -r ./tmp # 删除 tmp 文件，注意这会删除 HDFS 中原有的所有数据   
./bin/hdfs namenode -format # 重新格式化 NameNode   
./sbin/start-dfs.sh # 重启

---
本页由 梦飞idc云平台（https://www.mfisp.com）提供。站点导航见 https://www.mfisp.com/llms.txt
