首先脚本文件:

  mapper.py:

  #!/usr/bin/env python
  import sys
  for line in sys.stdin:
  line = line.strip()
  words = line.split()
for word in words:
print(word,1)

  reducer.py: 

  #!/usr/bin/env python
  from operator import itemgetter
  import sys
 
  current_word = None
  word = None
  for line in sys.stdin:
line = line.strip()
# print(line)
words=line.split()
word=words[0]
count=int(words[1])
print(word,count)
try:
count = int(count)
except ValueError: #count如果不是数字的话,直接忽略掉
continue
if current_word == word:
current_count += count
else:
if current_word:
print(current_word, current_count)
current_count = count
current_word = word
  if word == current_word: #不要忘记最后的输出
  print(current_word, current_count)
测试map.py和reducer.py两个文件:
  echo "foo foo quux labs foo bar quux" | ./mapper.py  #测试mapper.py
  echo "foo foo quux labs foo bar quux" | ./mapper.py | sort -k1,1 | ./reducer.py  #测试reducer.py文件
在终端运行上述两个脚本文件:
  Hadoop命令不支持Streaming,故需要指定Streaming JAR文件流与JAR选项时指定。Streaming程序的选项指定了输入和输出路径以及map和reducer脚本,即
  hdc@XiaoXin:~$ hadoop jar /home/hdc/software/hadoop-2.9.1/share/hadoop/tools/lib/hadoop-streaming-*.jar  \    #"\"表示一行输入不行换行输入
  > -input /hdc/input_1/word \    #输入文件在hdfs位置
  > -output /program_output/WordCount_out \    #输出在hdfs文件位置
  > -mapper /home/hdc/anaconda3/envs/DL_test/code/WordCount/mapper.py \    #mapper.py在本地(客户端)的位置
  > -reducer /home/hdc/anaconda3/envs/DL_test/code/WordCount/reducer.py    #reducer.py在本地(客户端)的位置
  
 
 
 
 
 
 

python在mapreduce运行Wordcount程序的更多相关文章

  1. hadoop2.7.x运行wordcount程序卡住在INFO mapreduce.Job: Running job:job _1469603958907_0002

    一.抛出问题 Hadoop集群(全分布式)配置好后,运行wordcount程序测试,发现每次运行都会卡住在Running job处,然后程序就呈现出卡死的状态. wordcount运行命令:[hado ...

  2. 021_在Eclipse Indigo中安装插件hadoop-eclipse-plugin-1.2.1.jar,直接运行wordcount程序

    1.工具介绍 Eclipse Idigo.JDK1.7-32bit.hadoop1.2.1.hadoop-eclipse-plugin-1.2.1.jar(自己网上下载) 2.插件安装步骤 1)将ha ...

  3. (三)配置Hadoop1.2.1+eclipse(Juno版)开发环境,并运行WordCount程序

    配置Hadoop1.2.1+eclipse(Juno版)开发环境,并运行WordCount程序 一.   需求部分 在ubuntu上用Eclipse IDE进行hadoop相关的开发,需要在Eclip ...

  4. Eclipse环境搭建并且运行wordcount程序

    一.安装Hadoop插件 1. 所需环境  hadoop2.0伪分布式环境平台正常运行 所需压缩包:eclipse-jee-luna-SR2-linux-gtk-x86_64.tar.gz 在Linu ...

  5. 解决在windows的eclipse上面运行WordCount程序出现的一系列问题详解

    一.简介 要在Windows下的 Eclipse上调试Hadoop2代码,所以我们在windows下的Eclipse配置hadoop-eclipse-plugin- 2.6.0.jar插件,并在运行H ...

  6. spark运行wordcount程序

    首先提一下spark rdd的五大核心特性: 1.rdd由一系列的分片组成,比如说128m一片,类似于hadoop中的split2.每一个分区都有一个函数去迭代/运行/计算3.一系列的依赖,比如:rd ...

  7. 使用MapReduce运行WordCount案例

    @ 目录 一.准备数据 二.MR的编程规范 三.编程步骤 四.编写程序 Mapper程序解读 一.准备数据 注意:准备的数据的格式必须是文本,每个单词之间使用制表符分割.编码必须是utf-8无bom ...

  8. 在Spark上运行WordCount程序

    1.编写程序代码如下: Wordcount.scala package Wordcount import org.apache.spark.SparkConf import org.apache.sp ...

  9. IDEA配置Hadoop开发环境&编译运行WordCount程序

    有关hadoop及java安装配置请见:https://www.cnblogs.com/lxc1910/p/11734477.html 1.新建Java project: 选择合适的jdk,如图所示: ...

随机推荐

  1. 观察者模式使用WebForm实现的例子

    观察者模式是一种可以描述一对多对象依赖关系的行为模式.当一个对象状态发生变化时,依赖它的其它对象会自动被更新状态.下面这个图展示了观察者模式的层级: 举个例子吧,我们某个报表界面现在有个dashboa ...

  2. H700关闭Direct PD Mapping

    Attached Enclosure doesn't support in controller's Direct mapping modePlease contact your system sup ...

  3. 20180715-Java 数组

    double[] myList //首选方法 double myList[] //效果相同,但不是首选方法 该实例完整地展示了如何创建.初始化和操纵数组: public class TestArray ...

  4. C/C++ | 并查集:用于检查一个图上有没有环

     没有环的过程分析: #include<stdio.h> #include<stdlib.h> #include<iostream> #define VERTICE ...

  5. java 将MySql数据库中的数据(某一列)取出放入数组中 转

    转:http://blog.csdn.net/ewili/article/details/8605638 假设mysql中test数据库中有个表式score,有数据,我只取第一列的数据出来: publ ...

  6. 将原生JS和jquery里面的DOM操作进行了一下整理

    创建元素节点 1.原生: document.createElement("div") 2.jquery: $("<div></div>" ...

  7. Git008--远程仓库

    Git--远程仓库 本文来自于:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/ ...

  8. 10.jmeter jsr223 javascript 深度比对json object

    function sortJSON(data, key, way) { //log.info(" " + key + " ------------------- &quo ...

  9. vim-tabe多标签切换

    vim-tabe多标签切换 本文转载自https://www.cnblogs.com/liqiu/archive/2013/03/26/2981949.html 1.新建标签页 使用:tabe命令和文 ...

  10. mybatis学习笔记2

    1.获得插入语句执行之后的自增主键 <insert id="insertUser" parameterType="com.mybatis.po.User" ...