伪分布式(yarn)运行Hadoop案例(二)

本文详细介绍如何在YARN上配置并运行MapReduce程序,包括环境变量设置、XML配置文件调整及集群启动步骤,最后通过浏览器监控应用状态,确保MapReduce任务成功执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

YARN 上运行 MapReduce 程序

1  首先配置yarn-env.sh

export JAVA_HOME=/opt/module/jdk1.8.0_144

2 配置 yarn-site.xml
 

<!-- reducer 获取数据的方式 -->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<!-- 指定 YARN 的 ResourceManager 的地址 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop101</value>
</property>

3 配置 mapred-env.sh

export JAVA_HOME=/opt/module/jdk1.8.0_144

4  对 mapred-site.xml.template 重新命名为   mapred-site.xml 并配置如下:

<!-- 指定 mr 运行在 yarn 上 -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

5 启动集群

6 浏览器打开 http://192.168.43.101:8088/cluster/apps 

7 运行mapreduce程序

 

8  查看运行结果

 

注意: 该案例需要配合Namenode Datanode一起使用,Yarn只负责资源调度等。

 

<think>好的,我现在需要解决Hadoop伪分布式环境下YARN NodeManager无法启动的问题。首先,我应该回忆一下Hadoop的配置步骤和相关组件的作用。YARNHadoop的资源管理框架,NodeManager负责单个节点上的资源管理和任务监控。如果NodeManager无法启动,可能有多种原因,比如配置错误、端口冲突、权限问题或者资源不足。 根据用户提供的引用信息,特别是引用[4]提到的日志文件路径,我应该首先检查/usr/local/Hadoop/logs中的相关日志,比如hadoop-steven-nodemanager-master.log。查看日志中的错误信息是关键的第一步,因为日志通常会明确指出问题所在,比如类找不到、配置错误或者端口被占用。 接下来,引用[5]提到需要修改core-site.xml,这可能涉及到Hadoop的核心配置,比如文件系统路径或安全设置。同时,引用[3]中的环境变量配置是否正确也可能影响NodeManager的启动。例如,HADOOP_HOME是否设置正确,PATH是否包含Hadoop的bin和sbin目录。 另外,引用[2]提到解决类找不到的问题,可能需要检查mapreduce的类路径配置。如果NodeManager启动时找不到MRAppMaster类,可能需要确认hadoop-mapreduce-client-core的JAR包是否存在,或者在yarn-site.xml中是否正确配置了相关类路径。 还有,伪分布式模式下,Hadoop的配置文件如yarn-site.xml、core-site.xml、hdfs-site.xml需要正确设置。比如,yarn-site.xml中的资源管理地址、NodeManager的本地目录配置是否正确,内存分配是否合理。例如,yarn.nodemanager.resource.memory-mb和yarn.scheduler.minimum-allocation-mb是否设置得当,避免内存不足导致启动失败。 另外,用户权限问题也很重要,引用[3]中提到需要使用hadoop用户来安装和配置,并修改文件权限。如果日志显示权限被拒绝,可能需要检查Hadoop相关目录的所有者和权限,比如/usr/local/hadoop以及日志目录是否有写入权限。 还有可能是端口冲突,比如NodeManager使用的端口被其他进程占用,可以通过netstat命令检查端口使用情况,并在配置文件中更换端口。 总结下来,解决步骤大致是:检查日志确认错误类型;验证配置文件是否正确;检查环境变量和类路径;确保权限正确;排除端口冲突;调整资源分配设置。如果问题依然存在,可能需要重新安装或更新Hadoop版本,或者参考社区解决方案如引用[2]中的简书链接。</think>### Hadoop伪分布式环境下YARN NodeManager启动问题解决方案 #### 1. **查看日志定位问题** 首先检查NodeManager的日志文件,路径为:`/usr/local/hadoop/logs/hadoop-*-nodemanager-*.log`。根据引用[4],日志中可能包含以下典型错误: - **类加载失败**:如`ClassNotFoundException`,需检查MapReduce依赖包配置[^2] - **端口冲突**:如`BindException`,需修改`yarn-site.xml`中的端口配置 - **权限问题**:如`Permission denied`,需执行`sudo chown -R hadoop /usr/local/hadoop`[^3] #### 2. **验证核心配置** 修改以下配置文件(路径:`$HADOOP_HOME/etc/hadoop/`): - **yarn-site.xml** ```xml <!-- 资源管理器地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>localhost</value> </property> <!-- NodeManager可用内存 --> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>2048</value> <!-- 根据物理内存调整 --> </property> <!-- 添加MapReduce类路径 --> <property> <name>yarn.application.classpath</name> <value> $HADOOP_HOME/share/hadoop/mapreduce/*, $HADOOP_HOME/share/hadoop/mapreduce/lib/* </value> </property> ``` - **core-site.xml** ```xml <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> ``` #### 3. **环境检查步骤** 1. **权限验证**: ```bash sudo chown -R hadoop:hadoop /usr/local/hadoop ``` 2. **端口占用检查**: ```bash netstat -tuln | grep 8042 # NodeManager默认端口 ``` 3. **环境变量配置**: 在`~/.bashrc`中添加: ```bash export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` #### 4. **重启验证** ```bash # 停止服务 stop-yarn.sh stop-dfs.sh # 格式化文件系统(首次安装时) hdfs namenode -format # 启动服务 start-dfs.sh start-yarn.sh # 验证NodeManager状态 yarn node -list ``` #### 5. **典型错误处理案例 **案例1**:日志显示`No such file or directory for /tmp/hadoop-yarn` - 解决方案: ```bash mkdir -p /tmp/hadoop-yarn/staging chmod -R 755 /tmp/hadoop-yarn ``` **案例2**:`MRAppMaster类找不到` - 参考引用[2],需确认`hadoop-mapreduce-client-core-3.2.0.jar`存在于`$HADOOP_HOME/share/hadoop/mapreduce/`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值