You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

执行hdfs namenode -format后,ResourceManager等进程优先级设置错误无法消除

解决Hadoop启动时"Cannot set priority of ... process"错误

我之前部署Hadoop的时候也碰到过完全一样的问题,这几乎都是权限不足或者Hadoop进程优先级配置冲突导致的,给你几个实操性很强的解决步骤:

1. 检查并修复用户权限问题

Hadoop不建议用root用户运行,很容易触发系统权限限制:

  • 先切换到你专门创建的Hadoop运行用户(比如hadoop用户):
    su - hadoop
    
  • 检查Hadoop安装目录和数据存储目录的所有者,确保都是Hadoop用户:
    ls -ld $HADOOP_HOME $HADOOP_DATA_DIR
    
    如果所有者不对,用以下命令递归修改:
    sudo chown -R hadoop:hadoop $HADOOP_HOME $HADOOP_DATA_DIR
    

2. 修改Hadoop配置,禁用进程优先级设置

这是最直接解决该报错的方法,因为很多环境下普通用户没有修改进程优先级的权限:

  • 进入Hadoop配置目录:
    cd $HADOOP_HOME/etc/hadoop
    
  • 编辑yarn-site.xml,添加/修改以下配置项:
    <property>
        <name>yarn.nodemanager.priority-setting.disable</name>
        <value>true</value>
    </property>
    
  • 编辑hadoop-env.sh,添加一行禁用nice值设置:
    echo "export HADOOP_NICENESS=0" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh
    

3. 重新格式化NameNode并重启服务

注意:这会清空HDFS上的所有数据,如果你是测试环境或者刚部署可以放心操作:

  • 先停止所有Hadoop进程:
    stop-dfs.sh && stop-yarn.sh
    
  • 删除HDFS数据目录下的所有内容(替换成你的实际数据目录):
    rm -rf /data/hadoop/hdfs/*
    
  • 重新格式化NameNode:
    hdfs namenode -format
    
  • 重新启动Hadoop服务:
    start-dfs.sh && start-yarn.sh
    

4. (可选)调整系统进程优先级限制

如果你确实需要设置Hadoop进程的优先级,可以修改系统的用户权限限制:

  • 编辑/etc/security/limits.conf文件,添加以下内容(替换hadoop为你的运行用户):
    hadoop soft nice -20
    hadoop hard nice -20
    
  • 修改后退出当前用户重新登录,让配置生效

如果以上方法都没解决,建议去$HADOOP_HOME/logs目录下查看对应服务的日志文件(比如resourcemanager.logdatanode.log),里面会有更详细的错误细节,方便进一步排查。

内容的提问来源于stack exchange,提问作者Jitender Singh

火山引擎 最新活动