You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS Ventura下安装Hadoop遇getSubject错误求助

macOS Ventura 下 Hadoop 安装失败问题

在macOS Ventura系统上安装Hadoop多次失败,试过3.4.0和3.3.6两个版本,均未解决。当前使用Java版本为java 23。

执行hdfs namenode -format时出现错误:

退出状态1: java.lang.UnsupportedOperationException: getSubject is supported only if a security manager is allowed

执行start-all.sh时的错误输出:

Starting namenodes
Starting namenodes on [Sumans-MacBook-Pro.local]
Starting datanodes
localhost: ERROR: Cannot set priority of datanode process 3556
2024-09-23 16:10:29,438 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Exception in thread "main" java.lang.UnsupportedOperationException: getSubject is supported only if a security manager is allowed
    at java.base/javax.security.auth.Subject.getSubject(Subject.java:347)
    at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:577)
    at org.apache.hadoop.hdfs.tools.GetConf.run(GetConf.java:344)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:82)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:97)
    at org.apache.hadoop.hdfs.tools.GetConf.main(GetConf.java:361)
Starting resourcemanagers on []
Starting nodemanagers
localhost: ERROR: Cannot set priority of nodemanager process 3966

当前使用的配置文件如下:

core-site.xml

<configuration>
  <property>
      <name>hadoop.tmp.dir</name>
      <value>/Users/sumanbhattarai/hdfs/tmp/</value>
  </property>
  <property>
      <name>fs.default.name</name>
      <value>hdfs://127.0.0.1:9000</value>
  </property>
</configuration>

hdfs-site.xml

<configuration>
  <property>
      <name>dfs.data.dir</name>
      <value>/Users/sumanbhattarai/hdfs/namenode</value>
  </property>
  <property>
      <name>dfs.data.dir</name>
      <value>/Users/sumanbhattarai/hdfs/datanode</value>
  </property>
  <property>
      <name>dfs.replication</name>
      <value>1</value>
  </property>
</configuration>

mapred-site.xml

<configuration> 
  <property> 
    <name>mapreduce.framework.name</name> 
    <value>yarn</value> 
  </property> 
</configuration>

yarn-site.xml

<configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>127.0.0.1</value>
  </property>
  <property>
    <name>yarn.acl.enable</name>
    <value>0</value>
  </property>
  <property>
    <name>yarn.nodemanager.env-whitelist</name>   
    <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PERPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
  </property>
</configuration>

解决方法

1. 降级Java版本

Java 23移除了安全管理器相关API,而Hadoop 3.3.x/3.4.x版本依赖这些API,必须降级到Java 8或Java 11(官方推荐的兼容版本)。

2. 修正hdfs-site.xml配置错误

你的hdfs-site.xml中重复定义了dfs.data.dir属性,导致namenode路径被覆盖,正确配置需区分namenode和datanode目录:

<configuration>
  <property>
      <name>dfs.namenode.name.dir</name>
      <value>/Users/sumanbhattarai/hdfs/namenode</value>
  </property>
  <property>
      <name>dfs.datanode.data.dir</name>
      <value>/Users/sumanbhattarai/hdfs/datanode</value>
  </property>
  <property>
      <name>dfs.replication</name>
      <value>1</value>
  </property>
</configuration>

3. 修复权限问题

macOS下启动Hadoop时出现的Cannot set priority of datanode process错误,可通过以下两种方式解决:

  • 执行命令修改目录权限:
sudo chown -R $USER:$USER /Users/sumanbhattarai/hdfs
  • 修改$HADOOP_HOME/etc/hadoop/hadoop-env.sh,添加配置:
export HADOOP_OPTS="-Djava.security.manager=allow"

(注:此配置仅在降级Java后生效,Java 23下无法使用)

4. 重新格式化namenode

完成上述修改后,先清理旧数据:

rm -rf /Users/sumanbhattarai/hdfs/tmp/*
rm -rf /Users/sumanbhattarai/hdfs/namenode/*
rm -rf /Users/sumanbhattarai/hdfs/datanode/*

再执行格式化命令:

hdfs namenode -format

5. 使用官方推荐的启动方式

start-all.sh是过时脚本,建议分组件启动:

start-dfs.sh
start-yarn.sh

内容的提问来源于stack exchange,提问作者Suman Bhattarai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 23:43:13