首页 > 编程知识 正文

简述mapreduce的编程模型(python mapreduce)

时间:2023-05-06 08:11:16 阅读:74604 作者:2498

另一方面,通过实验目的了解基本的MapReduce编程方法使用MapReduce,了解如何解决常见的数据处理问题,如数据集成、数据重新定位、数据排序和数据挖掘。 二、实验平台操作系统: Ubuntu 18.04 (或Ubuntu 16.04 ) Hadoop版本:3.2.2三、实验内容和要求1 .任务首先在当地完成两个文件:文件a和文件

对于两个输入文件,即文件a和文件b,请创建一个MapReduce程序,合并两个文件,去除重复项以获得新的输出文件c。 作为参考,以下是输入文件和输出文件的示例。

文件a的内容如下。

China is my motherlandI love China文件b的内容如下:

I am from China应该从合并输入文件a和b得到的程序中输出以下形式的结果。

i2i S1 China 3m y1 love 1am1from1motherland 12 .编写map处理逻辑并编写map的Python代码。 mapper.py :

vim mapper.py #!/usr/JD DHC/env python3# encoding=utf-8 importsysforlineinsys.stdin 3360 line=line.strip (words=line.split

编写sudochmod777mapper.py3.Reduce处理逻辑编写Reduce的Python代码时(reducer.py ) :

vim reducer.py #!/usr/JD DHC/env python3# encoding=utf-8 fromoperatorimportitemgetterimportsyscurrent _ word=none current _ count=0 exceptvalueerror 3360 continueifcurrent _ word==word : current _ count=count else 3360 if current _ word 3360 print (当前打印(current _ count=count current _ word=wordifword==current _ word 3360 print (%s (% ) (% s ) ) ) ) ) s )

sudo chmod 777 reducer.py 4.简单测试在本地简单测试,然后运行以下代码:

catab|python3mapper.py|python3reducer.py的输出如下:

最后,介绍如何将python APP应用程序应用于HDFS文件系统。

四.在HDFS上运行Python程序,首先启动Hadoop :

在CD/usr/local/hadoopsjdhc/start-DFS.sh上创建input文件夹以传输我们的数据文件。 请注意这里有你的a、b数据文件的地方。

JD DHC/HD fsdfs-mkdir/inputjdhc/HD fsdfs-copy from local/usr/local/Hadoop/MapReduce/python/a/inputjdhc/inion

使用JD DHC/HD fsdfs-RM-r/output Hadoop提供的Jar包为Python程序提供接口即可。 此处使用的Jar包通常位于此目录中。

找到名为ls/usr/local/Hadoop/share/Hadoop/tools/lib/Hadoop-streaming-x.x.jar的包:

Hadoop @ fzqs-laptop :/usr/local/Hadoop/MapReduce/sample3$ ls/usr/local/Hadoop/share/Hadoop/tols

.

hadoop-streaming-3.2.2.jar

.

调用这个包,把我们本地的Python文件作为参数传递就可以了。 现在注意我的流包是3.2.2,看看你自己的版本号)。

/usr/local/Hadoop/JD DHC/Hadoop jar/usr/local/Hadoop/share/Hadoop/tools/lib/Hadoop-streaming-3.2 -。 映射器. py-mapper/usr/local/Hadoop/MapReduce/sample1/mapper-file/usr/local/Hadoop/MapReduce/sample 1

jddhc/hdfs dfs -cat /output/*的输出正确,执行成功。

五.总结

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。