首先脚本文件:

  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. Jquery取得Iframe中的元素

    DOM方法: 父窗口操作IFRAME:window.frames["iframeSon"].documentIFRAME操作父窗口: window.parent.document ...

  2. (转)Centos7 yum 源安装nginx

    转:https://www.cnblogs.com/fuhai0815/p/8522868.html 一.建立nginx源 vim /etc/yum.repos.d/nginx.repo [nginx ...

  3. 提取的js,要先部署在远程,再引入

    var meet = { _w: document.documentElement.clientWidth, _h: document.documentElement.clientWidth, ini ...

  4. form submission

    https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms This module provides a series of articles ...

  5. 理解JavaScript中的回调函数

    理解回调函数,首先要知道在JavaScript中,函数也是对象,它可以赋值给变量,也可以作为参数传递给另一个函数.比如: var add=function(a,b){ console.log(a+b) ...

  6. IsAjaxRequest

    具体来说,IsAjaxRequest代码可以分解为以下功能: public static bool IsAjaxRequest(this HttpRequestBase request) { if ( ...

  7. 跨域资源共享(CORS)-漏洞整理

    绕过方法整理 绕过 - 仅对域名校验 #POC #"Access-Control-Allow-Origin: https://xx.co & Access-Control-Allow ...

  8. 回调-> 观察者模式->反应堆模式

    关于回调: 回调是观察者模式以及反应堆模式的基础 一句话,回调就是一种双向调用模式,什么意思呢,就是说,被调用方在被调用时也会调用对方,这就叫回调.“If you call me, i will ca ...

  9. .apk的MIME类型

    1.扩展名: .apk      MIME类型: application/vnd.android 2.Internet 服务管理器添加.apk:打开IIS --->找到MIME类型,双击之 -- ...

  10. HTML表格<tr>行距调整

    CSS文件中: .myTable tr{     display:block; /*将tr设置为块体元素*/     margin-bottom:5px;}