hadoop异常之Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out.

本文介绍了一个集群扩容过程中遇到的问题:reduce任务执行缓慢且偶尔出现ShuffleError。问题的根源在于新加入的节点未正确配置hosts文件,通过更新hosts文件解决了此问题。

最近集群扩充,发现新添加节点后,有两个异常


1、reduce变得很慢,速度显示为百M但进度不变


2、reduce偶尔失败,抛出Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out.



异常分析,由于datanode没有修改hosts文件导致的,修改以后将新加机器添加到hosts,恢复正常




你遇到的错误信息如下: ``` /opt/hadoop-3.4.0/libexec/hadoop-functions.sh: line 283: hadoop_build_custom_subcmd_var: command not found ERROR: Attempting to operate on hdfs namenode as root ERROR: but there is no defined. Aborting operation. ``` --- ### 🔍 错误原因分析 1. **`hadoop_build_custom_subcmd_var` 函数未找到** - 这个函数定义在 Hadoop 的 `hadoop-functions.sh` 文件中。 - 如果脚本加载失败、路径错误或文件损坏,会导致该函数无法调用。 2. **Hadoop 尝试以 root 用户运行服务组件(如 NameNode、DataNode 等)** - Hadoop 不推荐使用 root 用户直接启动服务。 - 它期望你配置一个专用的 Hadoop 用户(如 `hadoop` 用户)来运行这些服务。 3. **环境变量或权限配置问题** - 可能是 `HADOOP_HOME` 或 `PATH` 设置不正确。 - 或者某些脚本没有执行权限。 --- ### ✅ 解决方法 #### ✅ 方法 1:不要以 `root` 用户启动 Hadoop Hadoop 默认禁止使用 `root` 用户运行服务。你需要: 1. 创建一个专用用户(如 `hadoop`): ```bash useradd hadoop passwd hadoop ``` 2. 切换到该用户并重新运行 Hadoop: ```bash su - hadoop start-dfs.sh start-yarn.sh ``` #### ✅ 方法 2:检查 `hadoop-functions.sh` 是否损坏或缺失函数 确保 `/opt/hadoop-3.4.0/libexec/hadoop-functions.sh` 文件中包含 `hadoop_build_custom_subcmd_var` 函数。 你可以用以下命令查找该函数: ```bash grep -A 10 "hadoop_build_custom_subcmd_var" /opt/hadoop-3.4.0/libexec/hadoop-functions.sh ``` 如果没有定义,可能是文件损坏,建议重新下载或替换 Hadoop 安装包。 #### ✅ 方法 3:检查 Hadoop 环境变量配置 确保 `HADOOP_HOME` 和 `PATH` 设置正确: ```bash export HADOOP_HOME=/opt/hadoop-3.4.0 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` #### ✅ 方法 4:检查脚本执行权限 为 Hadoop 目录下的脚本添加执行权限: ```bash chmod +x /opt/hadoop-3.4.0/sbin/*.sh chmod +x /opt/hadoop-3.4.0/libexec/*.sh ``` #### ✅ 方法 5:查看 Hadoop 文档或社区反馈 这个错误在某些 Hadoop 3.x 版本中可能出现,建议查看: - [Hadoop GitHub Issues](https://github.com/apache/hadoop/issues) - 或升级到更新的版本(如 Hadoop 3.6.x) --- ### ✅ 小结 | 问题 | 解决方法 | |------|-----------| | `hadoop_build_custom_subcmd_var` 未找到 | 检查 `hadoop-functions.sh` 文件是否完整 | | Hadoop 服务启动失败 | 不要使用 root 用户启动,创建专用用户 | | 环境变量配置错误 | 正确设置 `HADOOP_HOME` 和 `PATH` | | 脚本权限问题 | 添加执行权限 `chmod +x` | | Hadoop 版本缺陷 | 升级到更新版本或查看社区修复方案 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值