Hadoop伪分布下实现MapReduce单词计算

这篇文章是基于上一篇Hadoop-3.1.2伪分布下进行的

Hadoop伪分布下实现MapReduce单词计算

一、启动Hadoop

进入路径
cd /service/hadoop-3.1.2/sbin

./start-all.sh

二、单词计算

1.找到WordCount程序

进入路径
cd /service/hadoop-3.1.2/share/hadoop/mapreduce
可以看到下面Jar包

 hadoop-mapreduce-examples-3.1.2.jar
2.创建HDFS数据目录,保存MapReduce的输入、输入文件

进入路径
cd /service/hadoop-3.1.2

以下命令全在cd /service/hadoop-3.1.2路径下执行

  • 创建输入文件
./bin/hadoop fs -mkdir -p /data/wordcount
  • 创建输出文件
./bin/hadoop fs -mkdir /output
  • 查看刚才创建的文件
./bin/hadoop fs -ls /

在http://192.168.18.130:50070/dfshealth.html#tab-overview也能看到文件

2.创建单词文本并上传到DFS
  • 创建一个单词文本
vi words

写入单词
hello zhangsan
hello lisi
hello wangwu
保存文件
  • 上传这个文件到HDFS中
./bin/hadoop fs -put words /data/wordcount
  • 看是否上传成功并列出文档内容
 ./bin/hadoop fs -ls /data/wordcount
 ./bin/hadoop fs -cat /data/wordcount/words
3.运行 WordCount 程序
./bin/hadoop jar /service/hadoop-3.1.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.2.jar wordcount /data/wordcount /output/wordcount
4.查看统计结果
查看存放结果的 output 文件下有哪些文件
./bin/hadoop fs -ls /output/wordcount/

查看结果
./bin/hadoop fs -cat /output/wordcount/part-r-00000

在http://192.168.18.130:50070/dfshealth.html#tab-overview路径下也能查看

三、遇到问题解决方案

1.解决运行 Hadoop MapReduce 任务时错误: 找不到或无法加载主类

在配置文件mapred-site.xml添加如下命令

	<property>
	    <name>mapreduce.application.classpath</name>
	   	<value>/service/hadoop-3.1.2/share/hadoop/mapreduce/*, /service/hadoop-3.1.2/share/hadoop/mapreduce/lib/*</value>
    </property>
2.DFS中存有文件
删除文件   bin/hdfs dfs -rm output/*
删除文件夹   bin/hdfs dfs -rm -r output
3.java.net.ConnectException: Your endpoint configuration is wrong; For more details see: http://wiki…
重新启动dfs
./start-dfs.sh
4.Container [pid=8794,containerID=container_1552484587522_0002_01_000005] is running 431118848B beyond the ‘VIRTUAL’ memory limit. Current usage: 51.4 MB of 1 GB physical memory used; 2.5 GB of 2.1 GB virtual memory used. Killing container. …
Container killed on request. Exit code is 143
Container exited with a non-zero exit code 143

1.将yarn.nodemanager.vmem-check-enabled的值改为false,即不检查VM的值;
2.将yarn.scheduler.minimum-allocation-mb的值调高一些,默认是1024mb,或者修改yarn.nodemanager.vmem-pmem-ratio的值,默认为2.1,将该值改得更大。

我选择第一个,配置文件Yarn-site.xml 添加下面命令
	<property>
	    <name>yarn.nodemanager.vmem-check-enabled</name>
	    <value>false</value>
 	</property>

参考文档
https://blog.csdn.net/weixin_43207025/article/details/100525447
https://blog.csdn.net/weixin_43207025/article/details/100527859
https://blog.csdn.net/u012365843/article/details/88562869

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值