本地机器Hadoop Standalone Mode启动失败,权限问题求助
从你提供的启动日志来看,当前最紧急的问题是本地SSH连接权限验证失败,导致Hadoop无法启动各个守护进程。另外你提到的沙箱内存不足问题,我也会给出对应的调整方案。
一、解决SSH权限拒绝问题
SSH无密码登录是Hadoop伪分布式/分布式模式运行的基础,以下是具体排查和解决步骤:
步骤1:生成并配置SSH密钥对
首先检查是否已有SSH密钥对,在终端执行:ls ~/.ssh/如果没有看到
id_rsa(私钥)和id_rsa.pub(公钥)文件,执行以下命令生成密钥对(一路回车采用默认配置即可):ssh-keygen -t rsa接着将公钥添加到本地授权列表,确保SSH能无密码登录:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 修改权限保证安全性,否则SSH可能拒绝使用密钥 chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh/步骤2:测试本地SSH连接
执行以下命令测试是否能无密码登录localhost:ssh localhost如果仍然失败,先检查Mac的远程登录是否开启:打开「系统设置」→「共享」,勾选「远程登录」选项。还可以查看SSH日志排查具体错误:
log show --predicate 'process == "sshd"' --info步骤3:检查Hadoop相关配置
打开$HADOOP_HOME/etc/hadoop/workers(旧版本可能叫slaves)文件,确认里面只有一行localhost,没有错误的主机名。
另外可以检查系统SSH配置文件/etc/ssh/ssh_config,确保包含以下配置:PubkeyAuthentication yes
二、调整沙箱内存配置
如果后续运行Hadoop任务时遇到内存不足的问题,需要调整各个守护进程的内存参数:
修改Hadoop环境变量
编辑$HADOOP_HOME/etc/hadoop/hadoop-env.sh,添加或修改以下参数(根据你的机器内存调整数值,比如2G内存可以设置为-Xms2g -Xmx2g):export HADOOP_NAMENODE_OPTS="-Xms2g -Xmx2g $HADOOP_NAMENODE_OPTS" export HADOOP_DATANODE_OPTS="-Xms1g -Xmx1g $HADOOP_DATANODE_OPTS" export HADOOP_RESOURCEMANAGER_OPTS="-Xms1g -Xmx1g $HADOOP_RESOURCEMANAGER_OPTS"调整YARN资源配置
编辑$HADOOP_HOME/etc/hadoop/yarn-site.xml,添加以下配置(数值根据机器总内存调整,比如8G内存可以设置为6144MB):<property> <name>yarn.nodemanager.resource.memory-mb</name> <value>6144</value> </property> <property> <name>yarn.scheduler.maximum-allocation-mb</name> <value>6144</value> </property>
完成以上配置后,重新尝试启动Hadoop:
hstart
内容的提问来源于stack exchange,提问作者Aditya Verma

