自动编译并运行mapreduce程序的脚本

本文介绍了一款用于简化MapReduce程序编译与运行流程的bash脚本工具。该脚本能够帮助用户轻松完成从代码放置到最终执行的全过程,并提供了详细的使用说明。
为了方便大家编写mapreduce程序,我特地编写了一个脚本,可以直接通过他编译并运行mapreduce程序,用bash awk编写的。
使用方法如下

1.cd hadoop/  到hadoop的目录下
2.如果是第一次使用脚本,需要新建playground目录,及子目录src。(详细步骤:mkdir playground/  mkdir  playground/src)
3.然后将代码复制到 playground/src/下
4.将如下代码保存到make.sh文件当中,并放到hadoop的根目录中。
5.如果是第一次使用,chmod +x make.sh
6.(如果写好的java文件名字叫做wordcount.java 那么通过在hadoop目录下打命令./make.sh wordcount ) 即可
注意事项:由于一般的mapreduce程序需要输入要处理的文件名,和处理后的结果的文件名,你就按照提示一步一步的输入就好了,要确保输出文件目录不存在,否则java会抛出异常,但是这一切的前提需要你运行start-all.sh脚本开启hadoop环境
./make.sh wordcount
Please input your input file's name
input
Please input your output file's name
ooo

如果你的版本不是hadoop-0.20.2 请在脚本中的javac -classpath hadoop-0.20.2-core.jar:lib/commons-cli-1.2.jar -d playground/classes playground/src/$1.java里做相应的修改
#!/bin/sh
if [ $# = 0 ]; then
    echo "Usage:./make.sh [file-name]"
    exit 1
fi

result=`grep package playground/src/$1.java`
if [ "$result" = "" ];then
    echo "ERROR:not include in package org.apache.hadoop.examples"
    exit 1
fi
check=`awk '$1=="public"&&$2=="class" {print $3}' playground/src/$1.java`
if [ $check==$1 ];then
    echo "check finished"
else
    echo "they are not same"
    echo "$1"
    echo "$check"
fi
javac -classpath hadoop-0.20.2-core.jar:lib/commons-cli-1.2.jar -d playground/classes playground/src/$1.java

jar -cvf playground/$1.jar -C playground/classes/ .
echo "Please input your input file's name"
read inputname
echo "Please input your output file's name"
read outputname
bin/hadoop jar playground/$1.jar org.apache.hadoop.examples.$1 $inputname $outputname
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值