hadoop遇到的问题

问题1:dataNode或者nameNode 没有启动

解决:

可以删除hadoop临时目录, 

重新格式化hadoop :hdfs namenode -format   

重启hadoop


问题2:

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable

在/etc/profile中,添加下面配置:

export  HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export  HADOOP_HOME=/root/training/hadoop-2.4.1
export  HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
  • 1
  • 2
  • 3

最后记得使配置生效:source /etc/profile

并把相同配置添加到hadoop-env.sh文件末尾。

输入如下命令,没有报warn,说明修改成功。

这里写图片描述

参考博客 :  http://blog.youkuaiyun.com/young_kim1/article/details/50324345

问题3: 进行 wordcount计算时 提示无法连接服务器


解决: yarn-site.xml 添加如下信息

<property>
<name>yarn.resourcemanager.address</name>
<value>127.0.0.1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>127.0.0.1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>127.0.0.1:8031</value>
</property>





### Hadoop 实验常见问题及解决方案 #### 1. 数据节点无法启动,`/home/hadoop/hadoopData` 被其他进程锁定 当 `/home/hadoop/hadoopData` 文件夹被其他进程占用时,Datanode 进程将无法正常工作。此情况通常发生在 `dfs.name.dir` 和 `dfs.data.dir` 都指向同一目录的情况下。 为了避免这一冲突,应当分别为 NameNode 和 DataNode 设置不同的存储路径: - 将 `dfs.name.dir` 设定为 `/home/hadoop/hadoopName` - 将 `dfs.data.dir` 设定为 `/home/hadoop/hadoopData` 通过这种方式可以有效防止两个组件争夺同一个资源位置[^1]。 ```xml <property> <name>dfs.name.dir</name> <value>/home/hadoop/hadoopName</value> </property> <property> <name>dfs.data.dir</name> <value>/home/hadoop/hadoopData</value> </property> ``` #### 2. 主机名配置不当引起的问题 如果主机名为某些特定字符串(如 "hadoop", "hadoop000"),可能会引发未知错误。因此,在设置主机名时应遵循常规命名规则,并确保在 `/etc/hosts` 中正确映射 IP 地址到主机名,例如添加如下条目: ```plaintext 192.168.10.102 hadoop102 ``` 这样做的目的是让集群内的各个节点能够互相识别并通信顺畅[^2]。 #### 3. 启动后缺少 NameNode 或者 SecondaryNameNode 进程 这种情况可能是由于频繁格式化导致元数据损坏所致。处理措施包括但不限于: - 使用命令 `stop-all.sh` 终止所有正在运行的服务; - 清理旧的数据文件夹 (`rm -rf $HADOOP_HOME/logs/*`); - 执行一次完整的格式化操作:`hadoop namenode -format`; - 最后再次尝试重启整个集群。 以上步骤有助于恢复系统的初始状态,从而排除因多次重置带来的潜在风险[^4]。 #### 4. 初始化过程中产生的集群 ID 不匹配 每当重新初始化 HDFS 时都会生成一个新的集群 ID。然而,现存的数据节点可能仍保留着之前的标识符,造成二者间的差异进而阻止 Datanodes 的加入。针对这个问题有两种主要修复手段: - **方法一** 修改现有版本控制文件中的 ClusterID 字段使其与新环境相吻合。不过这种方法并不推荐因为即使更改成功也可能存在隐藏的风险。 - **方法二** 更加彻底的做法就是完全清除掉所有的历史残留——即删除 `$HADOOP_HOME/data` 及其子项以及全部的日志档案(`$HADOOP_HOME/logs`). 接下来按照标准流程再次构建全新的分布式文件系统实例即可解决问题[^5]. #### 5. SSH 免密码登录失败 对于多台机器组成的 Hadoop 集群来说实现无交互式的远程执行至关重要。若遇到 Permission Denied 错误,则需确认以下几个方面: - 用户账户具有足够的权限来进行公钥认证; - `.ssh/id_rsa.pub` 已经追加到了目标服务器上的 `~/.ssh/authorized_keys` 文件里; - 目录和文件的读写属性已被适当调整以允许必要的访问行为。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

郝文龙

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

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

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

打赏作者

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

抵扣说明:

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

余额充值