shell脚本实现mapreduce任务流

本文介绍了如何利用shell脚本将多个MapReduce任务组织成一个工作流,确保任务按顺序正确执行。首先删除HDFS上的临时文件,然后使用distcp复制源文件,接着对数据进行排序,最后将结果输出到目标目录。每个任务完成后,通过检查返回状态来确定是否继续执行下一个任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

  • 作用
  • 示例
作用
  • 把几个任务组织成一个工作流
示例
  • task1 task2 task3  现在 task1 正确完成后执行 task2,task2 正确完成后执行 task3
  • 其脚本对应如下
  • #!/bin/bash
    function check
    {
            echo $chkid
            if [ $chkid -ne 0 ];then
                    exit
            fi
    }
    ############################################# main ###############################################
    
    # Delete temporary files which are already exits on hdfs that comed form last distcp
    # Parameter:<delete_file_location>
    hadoop fs -rmr /user/hadoop/calculate/demo/*
    chkid=`echo $?`
    check $chkid
    # copy source files form 156 to 130 using distcp command and store this source file on /user/hadoop/calculate/demo/
    # Parameter:<configuration_file_location><soure_file_location><destination_file_location>
    hadoop --config ~/app/conf/ distcp hdfs://xxx:9000/compute/DemographicsInternal /user/hadoop/calculate/demo/
    chkid=`echo $?`
    check $chkid
    # Sort all data based on it's keyword
    hadoop --config ~/app/conf/ jar ~/app/codes/demographics.ranking-0.0.1-SNAPSHOT-jar-with-dependencies.jar com.adsame.demo.revising.drive.GenerateHistograms /user/hadoop/calculate/demo/DemographicsInternal /user/hadoop/calculate/demo/histograms
    chkid=`echo $?`
    check $chkid
    # Direct Output Demographics Data to old demographics dir,but here we should first mv old data to another dir
    hadoop fs -mv /AdsameData/compute/DemographicsOld /user/hadoop/calculate/demo/DemographicsOld
    chkid=`echo $?`
    check $chkid
    


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值