cloudera manager中部分nodemanager无法启动报错java.io.FileNotFoundException: /tmp/Jetty_0_0_0_0_43554_mapreduc

本文解决了一个在Hadoop集群中遇到的问题,即NodeManager所在机器的/tmp目录权限设置不当导致的FileNotFoundException。详细介绍了错误原因在于/tmp目录的权限为755而非777,并提供了解决方案:通过执行chmod命令将权限更改为777。

java.io.FileNotFoundException: /tmp/Jetty_0_0_0_0_43554_mapreduce____ljbmlg/webapp/webapps/mapreduce/.keep (No such file or directory)

原因是nodemanager所在机器的/tmp目录的权限是755,而不是777
执行如下命令即可:chmod -R 777 tmp/

### Java中因找不到 `redaction-rules.json` 文件导致的 `FileNotFoundException` 的解决方案 当遇到 `java.io.FileNotFoundException: redaction-rules.json` 错误时,通常是因为程序尝试加载指定路径下的文件失败。以下是可能的原因以及对应的解决办法: #### 1. **确认文件路径** 确保 `redaction-rules.json` 文件存在于预期的位置,并且其路径被正确设置到环境变量 `CMF_CONF_DIR` 中。如果未正确配置该目录,则可能导致文件无法找到。 可以通过以下方式验证路径是否有效: ```bash echo $CMF_CONF_DIR ls -l ${CMF_CONF_DIR}/redaction-rules.json ``` 如果文件不存在于指定位置,需将其复制至对应目录[^1]。 #### 2. **检查类加载器行为** Java 应用通过类加载器读取资源文件。对于位于 classpath 外部的文件,应使用绝对路径访问;而对于嵌套在 JAR 或其他包中的文件,则需要通过 `ClassLoader.getResourceAsStream()` 方法获取流对象。 示例代码如下: ```java // 使用 ClassLoader 加载资源文件 InputStream inputStream = getClass().getClassLoader() .getResourceAsStream("redaction-rules.json"); if (inputStream == null) { throw new FileNotFoundException("Resource file not found!"); } ``` 此方法适用于将 `redaction-rules.json` 放置在项目的 resources 目录下并打包成 JAR 文件的情况[^2]。 #### 3. **调整 CMF_CONF_DIR 配置** 如果运行环境中依赖特定环境变量来定位配置文件夹(如 CDH/Cloudera Manager),则需要确保这些变量已被正确定义。例如,在 CentOS 系统上可以编辑 `/etc/profile` 并追加相应声明: ```bash export CMF_CONF_DIR=/path/to/conf/directory source /etc/profile ``` 随后重启服务使更改生效[^3]。 #### 4. **排查权限问题** 即使文件存在目标地址处,也可能由于操作系统级别的权限不足而阻止应用程序对其进行操作。因此建议核查相关用户的访问许可情况。 执行命令查看当前用户是否有足够的权利打开这个 JSON 文档: ```bash stat -c "%a %n" ${CMF_CONF_DIR}/redaction-rules.json chmod u+rwx ${CMF_CONF_DIR}/redaction-rules.json ``` 以上步骤能够帮助诊断大多数由缺失或不可达引起的异常状况。 --- ### 总结 综上所述,针对 `java.io.FileNotFoundException: redaction-rules.json` 这一错误现象,可以从以下几个方面入手解决问题:一是核实实际存储地点与期望一致;二是依据实际情况选用合适的 API 来检索所需数据源;三是合理设定必要的全局参数以便支持整个流程顺利开展;四是注意潜在的安全隐患比如受限的操作特权等问题。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值