Spark运行任务 文件 /etc/hadoop/conf.cloudera.yarn/topology.py 报错解决

在执行Spark任务时,因Python版本从默认的2.6意外更改为3.6,导致程序运行失败。通过调整Python版本回2.6,问题得以解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

执行Spark任务的时候,之前一直运行正常,突然就报错了。不知道原因,开始先从程序日志排查解决。

看日志在调用一个python脚本是发生了错误,

ExitCodeException exitCode=1:   File "/etc/hadoop/conf.cloudera.yarn/topology.py", line 43
    print default_rack

从错误上看感觉像是python版本错误导致。环境是CDH5.7,默认依赖python2. 于是看一下python版本。

[root@cdh188 etl-data-analysis]# python --version
Python 3.6.1 :: Anaconda 4.4.0 (64-bit)

果然版本不对了,猜测是哪位同学不小心把python运行环境更改了。影响到了程序的运行。

经验证,把python改回2.6后,程序即运行正常。

### 排查 Hadoop YARN 服务启动问题及配置文件优先级 #### 1. 检查 YARN 配置文件路径 Hadoop YARN 的配置文件主要存储在 `$HADOOP_CONF_DIR` 或者 `$HADOOP_HOME/etc/hadoop/` 目录下。常用的配置文件包括: - **core-site.xml**: 定义了 HDFS 默认名称节点地址。 - **yarn-site.xml**: 包含 YARN 特定的配置选项,例如 ResourceManager 地址和辅助服务定义。 - **mapred-site.xml**: MapReduce 应用程序的相关配置。 当 `start-yarn.sh` 执行后,如果 `jps` 显示缺少 ResourceManager 和 NodeManager 进程,可能是由于以下原因之一引起的[^1]。 #### 2. 处理多个配置文件路径的问题 如果运行 `yarn --list` 返回多个配置文件路径,表明存在多个可能的配置目录。此时需要明确指定使用的配置文件路径。可以通过设置环境变量 `$HADOOP_CONF_DIR` 来控制加载哪个配置文件夹下的内容。例如: ```bash export HADOOP_CONF_DIR=/path/to/config/directory ``` 此操作确保 Hadoop 使用特定的配置文件集而不是随机选择其中之一[^4]。 #### 3. 验证 YARN 组件的日志记录 对于未能正常启动的服务组件(如 ResourceManager 和 NodeManager),应该仔细阅读相应的日志文件以获取更多信息。日志通常保存在 `$HADOOP_LOG_DIR/yarn/` 下面。重点查找以下关键字: - **ResourceManager 日志**: ```plaintext java.lang.Exception: Failed to initialize Resource Manager. ``` - **NodeManager 日志**: ```plaintext org.apache.hadoop.yarn.exceptions.YarnRuntimeException: Java heap space ``` 这些异常提示可以帮助定位具体的原因,比如内存不足、依赖库丢失或者是网络连接失败等问题[^3]。 #### 4. 确认 YARN 配置文件优先级 Hadoop 支持多种方式读取配置数据,默认情况下遵循这样的顺序解析规则: 1. 内嵌默认值; 2. 用户自定义配置文件 (e.g., `yarn-site.xml`); 3. 命令行参数覆盖。 这意味着即使有多个同名配置项存在于不同地方,最终生效的那个取决于上述层次结构中最靠近顶端的部分[^5]。 #### 5. 测试单机模式下的 YARN 功能 为了简化调试过程,可以在本地机器上单独验证 YARN 是否能够独立工作而无需考虑整个集群的影响因素。停止现有实例后再手动触发如下指令序列: ```bash stop-dfs.sh && stop-yarn.sh rm -rf /tmp/hadoop-* # 清除临时文件以防干扰 mkdir -p ~/hadoop/tmp && chmod 777 ~/hadoop/tmp/ echo "localhost" > slaves sbin/start-dfs.sh ; sbin/start-yarn.sh ``` 这样有助于排除外部条件带来的不确定性影响。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值