`

Hadoop Streaming 之 awk实现Map/Reduce

阅读更多

//TODO 说明

 

 

 

 

 

[xxuser@xxhost ~]$ hadoop jar $HADOOP_STREAMING_JAR \
> -input /test/ylb/mock_data/cv-pt-demo.txt \
> -output /test/ylb/mock_data/output/cv-pt-demo-10 \
> -mapper "awk '\$1~/1/ {printf(\"%s\t%s\n\",\$1,\$2)}'" \
> -reducer "awk 'BEGIN{pt[\"test_key\"]=0;} {key=\$2/10;pt[key]+=1;} END{ for(k in pt){printf(\"%d\t%d\n\",k,pt[k]);} }'"
 

 

 

1. -mapper " awk '  '  "    , 这种写法的话, ' ' 里面的脚本中有三种字符(shell特殊字符)需要转义,分别是  " ' $ 

  这种写法的好处是可以方便的引用外部shell变量

 

    -mapper '  awk " "  '    这种写法则不需要转义

 

第一种写法比较容易出错,所有必须要理解 unix shell 的   双引号  单引号 的区别

摘自 http://hi.baidu.com/liangkejia_jaja/blog/item/189438f03ef74709b17ec5bf.html

 

1)"" -> 双引号(不保留完整内容,比如遇到$, 反引号, \ 等就会执行相应的shell)
# echo "Today is `date`"   -> Today is Wed Aug  3 05:50:34 GMT 2011
    
2)'' -> 单引号(完整保留内容)
# echo "Today is `date`"   -> Today is `date`
    
3)`` -> 反引号 (反引号内的shell会执行)
# echo `date`   -> Wed Aug 3 05:59:19 GMT 2011
 

 

 

分享到:
评论

相关推荐

    Windows平台下Hadoop的Map/Reduce开发

    在Windows平台上进行Hadoop的Map/Reduce开发可能会比在Linux环境下多一些挑战,但通过详细的步骤和理解Map/Reduce的工作机制,开发者可以有效地克服这些困难。以下是对标题和描述中涉及知识点的详细说明: **Hadoop...

    hadoop中map/reduce

    在大数据处理领域,Hadoop是不可或缺的核心框架,其核心组件MapReduce则是分布式计算的重要实现方式。MapReduce的设计理念源于Google的同名论文,它通过将大规模数据处理任务分解为两个阶段:Map(映射)和Reduce...

    远程调用执行Hadoop Map/Reduce

    本篇文章将深入探讨“远程调用执行Hadoop Map/Reduce”的概念、原理及其实现过程,同时结合标签“源码”和“工具”,我们将涉及到如何通过编程接口与Hadoop集群进行交互。 Hadoop MapReduce是一种编程模型,用于大...

    基于Map/Reduce的分布式搜索引擎研究

    本文将基于Map/Reduce算法,探讨如何利用开源框架Hadoop来设计和实现一种高容错、高性能的分布式搜索引擎。 #### 2. Map/Reduce算法 ##### 2.1 Map/Reduce算法概述 Map/Reduce是一种用于处理大规模数据集的编程...

    Hadoop Streaming 官方中文文档

    在文档的部分内容中,我们看到一系列的段落和代码示例,这些示例主要涵盖了Hadoop Streaming的基本使用方法,包括如何设置环境、编写map和reduce脚本、提交作业以及一些高级用法和优化技巧。 #### 环境配置 文档中...

    hadoop教程

    作业配置是 Map/Reduce 框架中的一个重要概念,负责配置作业的执行参数,包括输入和输出的位置、Mapper 和 Reduce 函数的实现、作业的优先级等。 Hadoop 的 JobTracker 是 Map/Reduce 框架中的一个核心组件,负责...

    hadoop-streaming-2.8.0_jar_2.8.0_hadoop_streaming_

    4. **HadoopStreaming.class**: 这个类是 Hadoop Streaming 的核心,它实现了 MapReduce 框架,使得用户可以使用非Java语言编写 Map 和 Reduce 部分。 Hadoop Streaming 的标签 "jar 2.8.0 hadoop streaming" 强调...

    在solr文献检索中用map/reduce

    标题中的“在solr文献检索中用map/reduce”指的是使用Apache Solr,一个流行的开源搜索引擎,结合Hadoop的MapReduce框架来处理大规模的分布式搜索任务。MapReduce是一种编程模型,用于处理和生成大型数据集,它将...

    map/reduce template

    标题中的“map/reduce template”指的是MapReduce编程模型的一个模板或框架,它是Apache Hadoop项目的核心部分,用于处理和生成大数据集。MapReduce的工作原理分为两个主要阶段:Map阶段和Reduce阶段,它允许程序员...

    hadoop权威指南part2

    hadoop权威指南,hadoop map/reduce 分布式计算

    Hadoop - Hadoop Streaming

    Hadoop Streaming 是一种允许用户利用任何可执行脚本或程序(如 Python、Perl 或其他脚本语言)作为 Map 和 Reduce 进程的技术。它通过提供一个框架来实现这一目标,该框架可以读取来自标准输入的数据,并将结果写入...

    hadoop权威指南.part1

    hadoop权威指南,hadoop map/reduce 分布式计算

    Hadoop Streaming程序实例

    Hadoop Streaming是一个强大的工具,它允许用户使用任何可执行文件(如Python脚本、Perl或Bash shell命令)作为MapReduce任务的Mapper和Reducer。这个技术使得非Java开发者也能利用Hadoop的大数据处理能力。在本文中...

    Hadoop教程.pdf

    12. Hadoop Pipes是一个与SWIG兼容的C++ API(没有基于JNITM技术),它也可用于实现Map/Reduce应用程序。 13. Map/Reduce框架运转在, value>键值对上,也就是说,框架把作业的输入看为是一组, value>键值对,同样也...

    Hadoop Streaming 编程

    - `-D`:设置作业属性,如 map 和 reduce 任务的数量,以及字段分隔符等。 **Hadoop Streaming 编程** 编程时,开发者需要考虑如何处理输入和输出格式,以及如何在 mapper 和 reducer 中实现业务逻辑。例如,实现...

    ( Hadoop Streaming编程实战(C++、PHP、Python).pdf )

    hadoop jar /usr/java/hadoop/share/hadoop/tools/lib/hadoop-streaming-2.2.0.jar \ -D mapred.reduce.tasks=2 \ -mapper "./mapper" \ -reducer "./reducer" \ -file mapper -file reducer \ -input /dajiangtai/...

    基于Eclipse的Hadoop应用开发环境配置

    复制 Hadoop 安装目录/src/example/org/apache/hadoop/example/WordCount.java 到刚才新建的项目下面。 7. 上传模拟数据文件夹 新建 word.txt 文件,通过 Hadoop 的命令在 HDFS 上创建/tmp/wordcount 目录,然后 ...

    基于Map_Reduce的分布式搜索引擎研究

    在对Map/Reduce算法进行分析的基础上,利用开源Hadoop软件设计出高容错高性能的分布式搜索引擎,以面对搜索引擎对海量数据的处理和存储问题

Global site tag (gtag.js) - Google Analytics