
Hadoop Map/Reduce是一个使用简易的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错的方式并行处理上T级别的数据集。一个Map/Reduce 作业(job) 通常会把输入的数据集切分为若干独立的数据块,由 map任务(task)以完全并行的方式处理它们。框架会对map的输出先进行排序, 然后把结果输入给reduce任务。通常作业的输入和输出都会被存储在文件系统中。 整个框架负责任务的调度和监控,以及重新执行已经失败的任务。通常,Map/Reduce框架和分布式文件系统是运行在一组相同的节点上的,也就是说,计算节点和存储节点通常在一起。这种配置允许框架在那些已经存好数据的节点上高效地调度任务,这可以使整个集群的网络带宽被非常高效地利用。Map/Reduce框架由一个单独的master JobTracker 和每个集群节点一个slave TaskTracker共同组成。master负责调度构成一个作业的所有任务,这些任务分布在不同的slave上,master监控它们的执行,重新执行已经失败的任务。而slave仅负责执行由master指派的任务。hadoop-mapreduce-examples则是Hadoop安装完成后自带的程序包,包含计算PI、统计单词等计算程序。
二、hadoop-mapreduce-examples包含的程序列表2、单词统计实验 1)、创建源文件和结果存储目录[wuhs@s142 hadoop]$ ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar pi 10 10
2)、创建待计算的文本文件[wuhs@s142 hadoop]$ hadoop fs -mkdir -p /wordcount/input
[wuhs@s142 hadoop]$ hadoop fs -mkdir -p /wordcount/output
3)、将文件上传到Hadoop[wuhs@s142 hadoop]$ cat /tmp/input/1.txt
123
321
This a test
hello hadoop
hi hadoop
Hadoop
Hadoop
hi
123
321
123
test
Test
123
test
Test
4)、查看文件列表[wuhs@s142 hadoop]$ hadoop fs -put /tmp/input/1.txt /wordcount/input
5)、运行wordcount[wuhs@s142 hadoop]$ hadoop fs -ls /wordcount/input
Found 1 items
-rw-r–r-- 2 wuhs supergroup 74 2021-12-16 04:31 /wordcount/input/1.txt
6)、查看运行结果[wuhs@s142 hadoop]$ ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /wordcount/input/1.txt /wordcount/output/1
…
2021-12-16 04:40:33,396 INFO mapreduce.Job: map 0% reduce 0%
2021-12-16 04:40:38,562 INFO mapreduce.Job: map 100% reduce 0%
2021-12-16 04:40:43,655 INFO mapreduce.Job: map 100% reduce 100%
2021-12-16 04:40:44,676 INFO mapreduce.Job: Job job_1639642758452_0004 completed successfully
…
File Input Format Counters
Bytes Read=58
File Output Format Counters
Bytes Written=49
7)、文件夹的创建和文件上传也可以在浏览器 *** 作 四、QA 1、执行计算时报错/bin/bash: /bin/java: No such file or directory[wuhs@s142 hadoop]$ hadoop fs -cat /wordcount/output/1/part-r-00000
- 报错信息:
解决方案:
各节点执行ln -s /usr/local/java/bin/java /bin/java
- 报错信息
- 解决方案
修改yarn-site.xml 文件,如下,修改完成重启hadoop即可。
3、执行计算的时候Cannot create directory xxx Name node is in safe mode.yarn.nodemanager.aux-services mapreduce_shuffle
-
报错信息
-
解决方案
hdfs在启动开始时会进入安全模式,这时文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可。主动离开安全模式可以使用命令: $bin/hadoop dfsadmin -safemode leave
- 报错信息
- 解决方案
修改输出目录,输出目录需要为空目录,所以在后面加上1,则会在/wordcount/output 目录下创建目录1,如果是多次计算每次都需要指定不同的目录用于存储结果。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)