恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

CentOS 7搭建Hadoop伪分布式环境的系统级校验指南

  • 首页
  • 资讯中心
  • /
  • CentOS 7搭建Hadoop伪分布式环境的系统级校验指南

相关资讯

如何5分钟装好Skyrim Community Shaders:从Nexus下载Address Library到进入游戏设置菜单的完整指南 2026/10/15 15:56:23
STM32入门:用STM32CubeMX和HAL库点亮第一颗LED 2026/10/15 15:56:23
Blender-Dark Engine资源转换工具链详解 2026/10/15 15:56:23

最新资讯

Spring Boot中Thymeleaf配置与实战:从语法到静态资源及常见坑
51单片机UART串口通信详解:从硬件原理到调试实践
awesome-roadmaps 贡献指南:为软件开发路线图精选列表提交高质量条目
WorkBuddy 是什么?哪个公司出品、如何搭建、强在哪里
MATLAB骨架端点提取实战:从原理到批处理参数调优
MFC二维图形绘制课设拆解:从CDC设备上下文到多态架构

今日推荐

AI视频生成的时间一致性难题与时空建模演进
基于bbox的PDF文档解析:多栏重排与水印过滤实战
探矿数据进RAG前的清洗全攻略:TXT、Word、PDF、网页四类文档处理实践

本周热门

UE动画修改实战:从资产编辑到重定向与蒙太奇驱动
统计随机数生成器攻击下的KLJN安全密钥交换协议Matlab仿真
政务API安全治理:资产测绘、低代码编排与行标对标实践

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

CentOS 7搭建Hadoop伪分布式环境的系统级校验指南

发布时间:2026/10/15 16:01:23
CentOS 7搭建Hadoop伪分布式环境的系统级校验指南 1. 为什么在CentOS 7上搭Hadoop不是“装个软件”那么简单很多人看到“Linux基础环境搭建CentOS7- 安装Hadoop”这个标题第一反应是不就是下载、解压、改配置、启动服务我试过三次每次都在start-dfs.sh执行后卡在localhost: Permission denied (publickey)或者namenode日志里反复刷出java.net.UnknownHostException: localhost.localdomain。后来才明白这不是一个安装流程而是一次对Linux系统底层运行逻辑的系统性校验——它像一张精密的体检报告会把你的主机名解析、SSH信任链、Java环境隔离、用户权限模型、SELinux策略、防火墙规则、甚至临时文件目录的挂载方式全部摊开检查一遍。Hadoop不是单体应用它是一套分布式协同框架的最小可运行切片。哪怕你只打算在单机伪分布式模式下跑通WordCount它内部依然会模拟NameNode与DataNode的网络通信、JournalNode的日志同步、YARN ResourceManager与NodeManager的资源心跳。这些组件默认绑定localhost或0.0.0.0但CentOS 7的默认配置里/etc/hosts往往只有一行127.0.0.1 localhost而Hadoop要求localhost必须能被反向解析为一个非127.0.0.1的、可路由的IP地址SSH默认禁用root登录而Hadoop脚本又习惯性调用ssh localhostJava版本稍有偏差比如用了OpenJDK 1.8.0_292但缺少javafx模块某些旧版Hadoop编译时依赖就会在hadoop version命令里报NoClassDefFoundError。这些都不是bug而是设计契约——Hadoop在诞生之初就假设你运行在一个经过严格治理的类Unix服务器环境中。所以这篇内容不叫“Hadoop安装教程”它是一份CentOS 7系统健康度诊断手册。我会带你从hostname -f命令的输出开始一层层剥开系统表皮直到确认每个环节都符合Hadoop的隐式契约。过程中不会跳过任何“看起来很基础”的步骤比如/etc/hosts里加一行192.168.56.101 hadoop01很多人觉得多此一举但恰恰是这行配置决定了后续所有组件能否完成DNS反向解析握手。你不需要记住所有参数但需要理解每一个配置项背后都是Hadoop进程在尝试建立某种确定性的通信预期。当预期落空它不会温柔提示只会沉默崩溃。关键词自然嵌入CentOS 7、Hadoop、伪分布式、SSH免密、Java环境、hostname、hosts文件、防火墙、SELinux、用户权限。这些词不是标签而是你排查问题时真正要敲的命令、要查的文件、要改的开关。接下来每一节都对应一个真实踩坑现场的复盘。2. 系统级契约校验从hostname到SELinux的七道关卡Hadoop对CentOS 7的系统环境有七项硬性契约缺一不可。它们不像软件包依赖那样能被yum install自动解决而是需要你手动确认、干预、验证。我把它称为“七道关卡”每一道卡住都会导致后续流程在不同阶段静默失败。下面按执行顺序逐条拆解附带验证命令和失败现象。2.1 主机名hostname必须可完全限定且可解析Hadoop要求hostname -f返回一个FQDNFully Qualified Domain Name例如hadoop01.cluster.local而不是简单的hadoop01或localhost。这是因为HDFS的NameNode在格式化时会将该FQDN写入fsimage元数据后续DataNode注册、客户端连接都依赖这个名称做服务发现。操作步骤查看当前主机名hostname返回hadoop01查看完全限定名hostname -f若返回hadoop01或报错Unknown host即失败临时设置sudo hostnamectl set-hostname hadoop01.cluster.local永久生效需修改/etc/hostname写入hadoop01.cluster.local关键陷阱仅改/etc/hostname不够你还必须确保/etc/hosts中存在对应解析# /etc/hosts 必须包含这一行IP为你本机实际IP非127.0.0.1 192.168.56.101 hadoop01.cluster.local hadoop01提示192.168.56.101是VirtualBox虚拟机常用网段物理机请用ip a | grep inet | grep -v 127.0.0.1查真实IP。若用127.0.0.1hostname -f虽能返回但Hadoop启动后DataNode无法向NameNode注册因为127.0.0.1在集群视角下是“本机环回”不具备网络可达性。2.2 SSH免密登录必须覆盖localhost与FQDN双路径Hadoop启动脚本如start-dfs.sh内部会循环调用ssh host来远程启动各节点进程。即使单机伪分布式它也会执行ssh localhost和ssh hadoop01.cluster.local。CentOS 7默认禁用root的SSH密码登录且sshd_config中PermitRootLogin默认为no。操作步骤确保已安装openssh-serversudo yum install -y openssh-server启动并开机自启sudo systemctl start sshd sudo systemctl enable sshd切换到hadoop用户强烈建议不要用root运行Hadoopsudo useradd -m hadoop sudo passwd hadoop sudo usermod -aG wheel hadoop # 赋予sudo权限调试用 su - hadoop生成密钥对一路回车ssh-keygen -t rsa -P -f ~/.ssh/id_rsa将公钥注入本地authorized_keyscat ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys双重验证缺一不可ssh localhost # 必须无密码 ssh hadoop01.cluster.local # 必须无密码注意很多教程只做ssh localhost但Hadoop 3.x源码中HdfsServerConstants.java明确使用InetAddress.getLocalHost().getCanonicalHostName()获取主机名该方法返回的就是hostname -f结果。若ssh hadoop01.cluster.local失败start-dfs.sh会在启动DataNode时卡住日志无明显错误只在/var/log/hadoop/hadoop-hadoop-datanode-hadoop01.cluster.local.log末尾看到Connection refused。2.3 Java环境必须精确匹配Hadoop版本要求Hadoop 3.3.6官方文档明确要求Java 8u191或Java 11。CentOS 7默认java -version可能返回OpenJDK 1.8.0_131太旧或OpenJDK 11部分老版Hadoop不兼容。更隐蔽的问题是JAVA_HOME环境变量未正确设置或指向了JRE而非JDK。操作步骤查看已安装Javasudo yum list installed | grep java推荐安装Oracle JDK 8u202稳定兼容# 下载jdk-8u202-linux-x64.rpm需Oracle账号可用OpenJDK替代 sudo yum install -y java-1.8.0-openjdk-devel # 安装JDK含javac验证JDK完整java -version和javac -version输出版本号应一致设置全局JAVA_HOME编辑/etc/profile.d/java.shexport JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b09-1.el7_9.x86_64 export PATH$JAVA_HOME/bin:$PATH提示/usr/lib/jvm/下路径需用ls /usr/lib/jvm/确认不同OpenJDK版本路径不同。java -XshowSettings:properties -version 21 | grep java.home可快速定位。2.4 用户权限模型hadoop用户必须拥有完全控制权Hadoop进程默认以当前用户身份运行。若用root安装后续所有数据目录/usr/local/hadoop/data属主为root普通用户无法读写若用普通用户安装但未赋予足够权限hdfs namenode -format会因无法创建/usr/local/hadoop/data/namenode/current而失败。操作步骤创建专用用户sudo useradd -m -d /home/hadoop -s /bin/bash hadoop将Hadoop安装目录所有权移交sudo chown -R hadoop:hadoop /usr/local/hadoop sudo chmod -R 755 /usr/local/hadoop验证ls -ld /usr/local/hadoop应显示drwxr-xr-x. 11 hadoop hadoop ...2.5 SELinux必须设为permissive或disabledCentOS 7默认启用SELinux其安全策略会阻止Hadoop进程访问非标准路径如/usr/local/hadoop或绑定特定端口如NameNode的9870。现象是start-dfs.sh看似成功但jps看不到NameNode进程netstat -tuln | grep 9870无监听。操作步骤查看状态sestatus若为enforcing即触发拦截临时设为宽容模式推荐先试sudo setenforce 0永久生效编辑/etc/selinux/configSELINUXpermissive # 或 SELINUXdisabled重启生效sudo reboot注意setenforce 0后需重新执行start-dfs.sh否则旧进程仍受限制。permissive模式下SELinux只记录告警不阻止便于后续用ausearch -m avc -ts recent分析具体拦截点。2.6 防火墙必须放行Hadoop核心端口Hadoop各组件监听端口众多但伪分布式模式下只需开放以下5个NameNode Web UI: 9870NameNode RPC: 9000DataNode Web UI: 9864DataNode RPC: 9866SecondaryNameNode Web UI: 9868操作步骤sudo firewall-cmd --permanent --add-port9870/tcp sudo firewall-cmd --permanent --add-port9000/tcp sudo firewall-cmd --permanent --add-port9864/tcp sudo firewall-cmd --permanent --add-port9866/tcp sudo firewall-cmd --permanent --add-port9868/tcp sudo firewall-cmd --reload验证sudo firewall-cmd --list-ports应包含上述端口。2.7 临时文件目录/tmp必须可执行且空间充足Hadoop在格式化、启动时会在/tmp下创建临时jar包、pid文件、socket文件。若/tmp挂载为noexec某些安全加固策略或磁盘空间1GBhdfs namenode -format会报Permission denied或No space left on device。操作步骤查看挂载选项mount | grep /tmp 确认无noexec若有临时移除sudo mount -o remount,exec /tmp检查空间df -h /tmp确保2GB可选指定Hadoop临时目录在hadoop-env.sh中添加export HADOOP_TMP_DIR/home/hadoop/hadoop-tmp这七道关卡每一道都对应一个真实的、曾让我耗费数小时的故障点。它们不是孤立的而是环环相扣hostname -f失败 → SSH免密失败 →start-dfs.sh卡住 → 误以为Java问题 → 反复重装JDK → 忽略SELinux → 最终在日志深处发现avc: denied。所以务必按顺序逐一验证用echo $?确认每条命令返回0再进入下一步。3. Hadoop核心配置文件的语义解析与精准修改通过七道系统关卡后真正的Hadoop配置才开始。很多人把core-site.xml、hdfs-site.xml等文件当成参数列表复制粘贴完就运行却不知每个property标签背后都定义了一个运行时契约。下面我以Hadoop 3.3.6伪分布式模式为例逐文件解析其语义、修改逻辑、常见误配及验证方法。3.1 core-site.xml定义整个Hadoop生态的“根命名空间”该文件是Hadoop的全局配置中枢所有组件HDFS、YARN、MapReduce都继承其设置。核心是fs.defaultFS它指定了默认文件系统的URI相当于给整个Hadoop世界设定了“国家代码”。标准配置configuration property namefs.defaultFS/name valuehdfs://hadoop01.cluster.local:9000/value descriptionDefault filesystem URI/description /property /configuration语义解析hdfs://是协议标识告诉客户端“这是HDFS文件系统”hadoop01.cluster.local必须与hostname -f输出完全一致且能被ping通:9000是NameNode的RPC端口非Web UI端口9870Hadoop客户端通过此端口与NameNode通信致命误配写成hdfs://localhost:9000NameNode启动后DataNode注册时会尝试连接localhost但localhost在DataNode进程内解析为127.0.0.1而NameNode实际监听在hadoop01.cluster.local对应的真实IP导致连接拒绝。写成hdfs://192.168.56.101:9000虽能连通但NameNode日志会警告Invalid URI: hdfs://192.168.56.101:9000. Expected authority: hadoop01.cluster.local因Hadoop要求URI中的主机名必须与hostname -f一致用于安全校验。验证方法# 在hadoop用户下执行 hadoop fs -ls / # 应返回ls: .: No such file or directory说明连接成功但根目录为空 # 若报Call From hadoop01.cluster.local to localhost:9000 failed即URI主机名不匹配3.2 hdfs-site.xmlHDFS存储行为的“宪法条款”该文件定义HDFS的副本策略、数据目录、NameNode高可用等。伪分布式模式下最关键的三个属性是dfs.replication、dfs.namenode.name.dir、dfs.datanode.data.dir。标准配置configuration property namedfs.replication/name value1/value descriptionReplication factor for HDFS blocks/description /property property namedfs.namenode.name.dir/name valuefile:///usr/local/hadoop/data/namenode/value /property property namedfs.datanode.data.dir/name valuefile:///usr/local/hadoop/data/datanode/value /property /configuration语义解析dfs.replication1伪分布式模式下每个数据块只存1份生产环境通常为3。设为1可避免因单机无法满足副本数而拒绝写入。dfs.namenode.name.dirNameNode存储元数据fsimage、edits log的本地路径。必须是绝对路径且前缀file://不能省略。若写成/usr/local/hadoop/data/namenodeHadoop会误认为是HDFS路径尝试连接NameNode导致格式化失败。dfs.datanode.data.dirDataNode存储实际数据块的路径。同样需file://前缀。实操心得我曾将namenode.name.dir设为/home/hadoop/hadoop-data/namenode启动后jps能看到NameNode但hdfs dfsadmin -report显示Live datanodes: 0。排查发现/home/hadoop目录属主为hadoop但/home/hadoop/hadoop-data的父目录/home/hadoop权限为700DataNode进程以hadoop用户运行无法遍历该路径。解决方案chmod 755 /home/hadoop或直接将数据目录设在/usr/local/hadoop/data属主已为hadoop。3.3 yarn-site.xmlYARN资源调度的“交通管制图”YARN负责集群资源管理和任务调度。伪分布式模式下需让ResourceManager和NodeManager在同一节点运行并指定它们的通信端口。标准配置configuration property nameyarn.resourcemanager.hostname/name valuehadoop01.cluster.local/value /property property nameyarn.nodemanager.aux-services/name valuemapreduce_shuffle/value /property property nameyarn.nodemanager.env-whitelist/name valueJAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME/value /property /configuration语义解析yarn.resourcemanager.hostnameResourceManager的主机名必须与hostname -f一致。这是YARN客户端连接的入口。yarn.nodemanager.aux-servicesmapreduce_shuffle启用MapReduce Shuffle服务使Map任务输出能被Reduce任务拉取。若遗漏运行WordCount会报ClassNotFoundException: org.apache.hadoop.mapred.YarnChild。yarn.nodemanager.env-whitelistNodeManager向Container传递的环境变量白名单。必须包含JAVA_HOME否则Container内Java命令不可用MapReduce任务启动即失败。避坑验证启动YARN后执行yarn node -list # 应返回Total Nodes:1及NodeManager状态 yarn application -list # 应返回空列表无任务时若yarn node -list报Connection refused检查yarn.resourcemanager.hostname是否拼写错误或/etc/hosts中该主机名是否解析正确。3.4 mapred-site.xmlMapReduce计算框架的“引擎参数”该文件配置MapReduce运行时行为。Hadoop 3.x默认提供mapred-site.xml.template需重命名为mapred-site.xml并修改。标准配置configuration property namemapreduce.framework.name/name valueyarn/value /property /configuration语义解析mapreduce.framework.nameyarn指定MapReduce作业运行在YARN之上。若设为local则作业在单JVM内运行不走YARN无法测试分布式能力若遗漏此配置hadoop jar ...会报Cannot initialize Cluster. Please check your configuration for mapreduce.framework.name and the correspond server addresses.。关键细节mapred-site.xml必须放在$HADOOP_HOME/etc/hadoop/目录下且文件名不能带.template后缀。我曾因文件名为mapred-site.xml.templatehadoop version命令正常但hadoop jar始终报错耗时2小时才发现是文件名问题。3.5 hadoop-env.shJVM与系统级参数的“总控开关”这是唯一一个Shell脚本格式的配置文件用于设置Java路径、JVM堆内存、日志目录等。必须修改项export JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b09-1.el7_9.x86_64 export HADOOP_LOG_DIR/usr/local/hadoop/logs export HADOOP_PID_DIR/usr/local/hadoop/pids # 可选增大NameNode堆内存避免大数据量下OOM export HDFS_NAMENODE_OPTS-Xmx2g -Xms2g实操注意JAVA_HOME路径必须与java -XshowSettings:properties -version输出的java.home完全一致包括大小写和版本号。HADOOP_LOG_DIR和HADOOP_PID_DIR目录需提前创建并赋权sudo mkdir -p /usr/local/hadoop/logs /usr/local/hadoop/pids sudo chown -R hadoop:hadoop /usr/local/hadoop/logs /usr/local/hadoop/pids配置文件修改完毕后不要急于启动。先执行hadoop checknative -a验证本地库如snappy压缩是否可用再用hadoop classpath确认所有JAR包路径正确。这些前置检查能避免90%的启动失败。4. 启动、验证与故障排查的完整闭环配置完成后启动Hadoop不是一键执行start-all.sh就结束而是一个分阶段、可验证、可回溯的闭环过程。我将其拆解为四个阶段预检、启动、功能验证、压力验证。每个阶段都有明确的成功标志和失败线索。4.1 预检阶段用5条命令锁定90%潜在问题在执行任何start-*.sh之前必须完成以下5项检查。它们耗时不到1分钟却能避免后续数小时的无效调试。主机名与解析检查hostname -f # 必须返回hadoop01.cluster.local ping -c 1 hadoop01.cluster.local # 必须通 nslookup hadoop01.cluster.local # 必须返回正确IPSSH免密检查ssh -o ConnectTimeout5 hadoop01.cluster.local echo ok # 返回ok ssh -o ConnectTimeout5 localhost echo ok # 返回okJava环境检查java -version # OpenJDK 1.8.0_xxx echo $JAVA_HOME # 必须非空且路径存在 hadoop version # 必须输出Hadoop版本号无异常配置文件语法检查xmllint --noout $HADOOP_HOME/etc/hadoop/core-site.xml # 返回空行即合法 xmllint --noout $HADOOP_HOME/etc/hadoop/hdfs-site.xml # 若报error: Extra content at the end of the document说明XML标签未闭合目录权限检查ls -ld $HADOOP_HOME/data/namenode $HADOOP_HOME/data/datanode # 必须显示属主为hadoop且有rwx权限提示将以上5条命令写成precheck.sh脚本每次部署新环境前运行可节省大量时间。4.2 启动阶段分步启动逐个击破Hadoop 3.x已弃用start-all.sh推荐分步启动便于定位问题组件。标准流程# 1. 格式化NameNode仅首次运行 hdfs namenode -format # 2. 启动HDFSNameNode DataNode start-dfs.sh # 3. 启动YARNResourceManager NodeManager start-yarn.sh # 4. 可选启动HistoryServer用于查看MapReduce历史作业 mapred --daemon start historyserver关键观察点执行start-dfs.sh后立即运行jps应看到NameNode、DataNode、SecondaryNameNode三个进程。若只有NameNode说明DataNode启动失败查$HADOOP_HOME/logs/hadoop-hadoop-datanode-*.log。执行start-yarn.sh后jps应新增ResourceManager、NodeManager。若无NodeManager大概率是yarn-site.xml中yarn.nodemanager.aux-services未设为mapreduce_shuffle。所有进程日志均位于$HADOOP_HOME/logs/日志文件名包含进程名和主机名如hadoop-hadoop-namenode-hadoop01.cluster.local.log这是定位问题的第一线索。4.3 功能验证阶段用3个命令确认核心能力启动成功不等于功能正常。需用以下3个命令验证HDFS读写、YARN调度、MapReduce计算三大能力。HDFS读写验证# 创建目录 hdfs dfs -mkdir -p /user/hadoop/input # 上传本地文件 echo hello world /tmp/input.txt hdfs dfs -put /tmp/input.txt /user/hadoop/input/ # 查看文件 hdfs dfs -cat /user/hadoop/input/input.txt # 应输出hello worldYARN资源验证yarn node -list # 应显示1个Active NodeManager yarn application -list # 应返回空列表无任务时MapReduce计算验证WordCount# 运行Hadoop自带的WordCount示例 hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /user/hadoop/input /user/hadoop/output # 查看输出 hdfs dfs -cat /user/hadoop/output/part-r-00000失败现象与速查hdfs dfs -ls /报Connection refused检查core-site.xml中fs.defaultFS主机名是否匹配hostname -f。yarn node -list报Connection refused检查yarn-site.xml中yarn.resourcemanager.hostname及防火墙端口9870/8088。WordCount卡在Running job检查mapred-site.xml中mapreduce.framework.name是否为yarn以及yarn-site.xml中yarn.nodemanager.aux-services是否为mapreduce_shuffle。4.4 压力验证阶段用1个脚本暴露隐藏瓶颈功能验证通过后需进行轻量级压力测试暴露配置缺陷。我编写了一个stress-test.sh脚本模拟10个并发写入#!/bin/bash for i in {1..10}; do echo test_data_$i /tmp/test_$i.txt hdfs dfs -put /tmp/test_$i.txt /user/hadoop/stress/$i.txt done wait hdfs dfs -ls /user/hadoop/stress | wc -l # 应返回11含目录本身典型瓶颈与修复若脚本执行缓慢或超时检查/etc/security/limits.conf为hadoop用户增加打开文件数限制hadoop soft nofile 65536 hadoop hard nofile 65536若hdfs dfs -ls返回Too many open files同上需重启shell或ulimit -n 65536。若DataNode频繁掉线检查hdfs-site.xml中dfs.datanode.max.transfer.threads默认4096在单机环境下可降至1024以降低内存压力。这个闭环验证过程是我从某高校实验室部署Hadoop集群时总结的。他们曾因跳过预检直接运行start-all.sh在WordCount失败后花了3天排查最终发现是/etc/hosts中127.0.0.1行被注释掉了。而预检中的ping hadoop01.cluster.local一步就能暴露此问题。5. 日常运维与高频问题的“秒级响应指南”Hadoop伪分布式环境上线后日常运维中最常遇到的不是大故障而是那些让你抓耳挠腮、反复出现的小问题。我把它们归为三类启动类、运行类、日志类并给出“秒级响应”的排查路径和修复命令。这些不是教科书答案而是我在某跨平台数据分析项目中每天处理数十次同类问题后提炼的肌肉记忆。5.1 启动类问题5种场景3条通用命令场景1start-dfs.sh执行后jps看不到DataNode秒级响应# 1. 查DataNode日志末尾 tail -20 $HADOOP_HOME/logs/hadoop-*-datanode-*.log # 2. 若看到Failed to connect to namenode立即检查 hdfs getconf -namenodes # 应返回hadoop01.cluster.local # 3. 若返回localhost说明core-site.xml中fs.defaultFS写错了场景2start-yarn.sh后yarn node -list返回0个节点秒级响应# 1. 查NodeManager日志 tail -20 $HADOOP_HOME/logs/yarn-*-nodemanager-*.log # 2. 若看到ShuffleHandler not started检查 grep mapreduce_shuffle $HADOOP_HOME/etc/hadoop/yarn-site.xml # 3. 若无输出补上yarn.nodemanager.aux-services配置场景3hadoop fs -ls /报Operation category READ is not supported in state standby秒级响应# 这是HA模式下NameNode处于standby状态的提示但伪分布式不应启用HA # 立即检查hdfs-site.xml中是否误配了dfs.ha.namenodes grep dfs.ha.namenodes $HADOOP_HOME/etc/hadoop/hdfs-site.xml # 若存在删除整段HA相关配置场景4hdfs namenode -format报Directory ... is not empty秒级响应# 不要删整个data目录只需清空子目录 rm -rf $HADOOP_HOME/data/namenode/current/* rm -rf $HADOOP_HOME/data/datanode/current/* # 然后重试format场景5Web UIhttp://hadoop01.cluster.local:9870打不开秒级响应# 1. 检查NameNode进程是否存在 jps | grep NameNode # 2. 若存在检查端口监听 netstat -tuln | grep 9870 # 3. 若无监听检查防火墙 sudo firewall-cmd --list-ports | grep 98705.2 运行类问题3个命令定位80%性能瓶颈问题WordCount执行极慢10MB文件耗时超过5分钟秒级响应# 1. 查看NameNode Web UIhttp://hadoop01.cluster.local:9870的Live Nodes页 # 观察DataNode的Capacity和Used若Used接近100%说明磁盘满 # 2. 终端快速验证 df -h $HADOOP_HOME/data/datanode # 查磁盘使用率 # 3. 若90%清理HDFS hdfs dfs -du -h / # 查看各目录大小 hdfs dfs -rm -r /user/hadoop/output # 删除旧输出问题MapReduce任务卡在ACCEPTED状态不进入RUNNING秒级响应# 1. 查YARN ResourceManager UIhttp://hadoop01.cluster.local:8088 # 在Scheduler页看Available Memory是否为0 # 2. 终端验证

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号