zoukankan      html  css  js  c++  java
  • mapreduce 多路输出

    Streaming支持多路输出(SuffixMultipleTextOutputFormat)

    如下示例:

    hadoop streaming

    -input /home/mr/data/test_tab/

    -output /home/mr/output/tab_test/out19

    -outputformatorg.apache.hadoop.mapred.lib.SuffixMultipleTextOutputFormat   # 指定outputformatorg.apache.hadoop.mapred.lib.SuffixMultipleTextOutputFormat

    -jobconf suffix.multiple.outputformat.filesuffix=a,c,f,abc,cde              # 指定输出文件名的前缀,所有需要输出的文件名必须通过该参数配置,否则job会失败

    -jobconf suffix.multiple.outputformat.separator="#"                        # 设置value与文件名的分割符,默认为“#”,如果value本身含有“#”,则可以通过该参数设置其他的分隔符

    -mapper "cat"

    -reducer "sh reduce.sh"

    -file reduce.sh

    注:标记为红色的参数必须设置,参数说明请见注释

    Map或者reduce里需要在每个记录的reduce追加“#+文件名”

    #!/bin/bash

    while read line

    do

        key=$(echo $line | awk -F' ' '{print $1}')

        value=$(echo $line | awk -F' ' '{print $2}')

        if [ "$key" == "a" ]

        then

            echo"$key       $value#a"

        fi

        if [ "$key" == "c" ]

            then

               echo "$key    $value#c"

           fi

           if [ "$key" =="f" ]

           then

               echo "$key    $value#f"

           fi

           if [ "$key" =="abc" ]

           then

               echo "$key    $value#abc"

           fi

           if [ "$key" =="cde" ]

           then

               echo "$key    $value#cde"

           fi

    done

  • 相关阅读:
    将ASCII字符串转换为UNICODE字符串
    GetLastError()返回值大全
    C++构造函数的调用
    DOM – 7.动态创建DOM + 8.innerText innerHTML value
    DOM
    DOM – 4.doucument属性
    用jquery操作xml文件
    請推薦有關網路的書
    Linux命令全称
    轻松架设时时监控工具Cacti
  • 原文地址:https://www.cnblogs.com/i80386/p/4324902.html
Copyright © 2011-2022 走看看