Ambari2.7.4+HDP3.1.4 ,CentOS7。
2运行wordcount程序程序的路径:/usr/hdp/3.1.4.0-315/hadoop-mapreduce/hadoop-mapreduce-examples-3.1.1.3.1.4.0-315.jar,不要用到下面的那个,像快捷方式,无法运行。截图来至我上篇文章的SSH远程登录软件,建议安装,十分方便。
图2.1 wordcount示例程序位置截图
在hdfs文件系统中创建输入文件夹以保存输出结果:
sudo -u hdfs hadoop fs -mkdir /output
图2.2 命令执行位置截图
这个命令就是在这里运行, 对命令做个简单的解释:sudo -u hdfs是使用hdfs账户创建这个文件夹,用CentOS的账户,也就是root是没有权限的,后面运行命令也是如此。
接下来运行程序。
sudo -u hdfs hadoop jar /usr/hdp/3.1.4.0-315/hadoop-mapreduce/hadoop-mapreduce-examples-3.1.1.3.1.4.0-315.jar wordcount /input/data1.txt /output/result
图2.3 运行成功截图
查看输出结果。
http://192.168.185.150:50070/explorer.html#/output/result,查看HDFS文件系统。
使用cat命令查看输出结果。
sudo -u hdfs hadoop fs -cat /output/result/part-r-00000
图2.4 输出结果图
3可能会遇到的问题图3.1 超出物理和虚拟内存限制截图
mapreduce.Job: Job job_1635405143694_0005 failed with state FAILED due to: Application application_1635405143694_0005 faimes due to AM Container for appattempt_1635405143694_0005_000002 exited with exitCode: -104
Failing this attempt.Diagnostics: [2021-10-28 15:48:44.286]Container [pid=99348,containerID=container_e14_1635405143694_0005_02_000001] is runn6848B beyond the 'PHYSICAL' memory limit. Current usage: 186.1 MB of 170 MB physical memory used; 2.0 GB of 357.0 MB virtual memory used. Killiiner.
这个问题网上给出的解决方法有很多,例如:hadoop - Container is running beyond memory limits - Stack Overflow
里面提到修改 mapred-site.xml和yarn-site.xml,我都做了,限制最大内存为1024M,但是不起作用。但是我按照自己的方法解决了,下面给出我的解决方法。
图3.2 修改方法图
至此圆满解决!



