自动提交到hadoop系统,然后调用wordcount的任务,并下载输出的文件。

#!/bin/sh
#从给定的路径获取文件列表,提交到hadoop系统,使用wordcount的功能统计单词数量
#echo "$#"
if [ $# -ne ]; then
echo "请输入文件的路径"
exit
fi
#echo "$1"
filecount=$(ls $|wc -w)
#echo $filecount
#if [ $filecount -lt ]; then
#fi
submitcount=
wordsubmitlog=wordsubmitlog.log
hadoopdellog=hadoopdellog.log
for f in $ ;
do
if [ -f $wordsubmitlog ]; then
echo
else
#不存在文件的时候创建
touch $wordsubmitlog
fi
existsubmit=$(cat $wordsubmitlog|grep $f|wc -l)
if [ $existsubmit -lt ]; then
echo "$f"|cat>>$wordsubmitlog
hadoop fs -put $f /wz/wordcount/input/
#rm -f $f
let submitcount=submitcount+
fi
done
#有提交文件才执行
if [ $submitcount -ge ]; then
hadoop jar /usr/hadoop/hadoop-examples-1.2..jar wordcount /wz/wordcount/input /wz/wordcount/output
rm -f part-r-*
hadoop fs -get /wz/wordcount/output/part-r-* . #下载到当前目录
#重命名下载下来的文件,并移动到其他的文件夹

pcount=0
  newfilename=$(date +'%Y%m%d%H%M%S')
  #echo $newfilename
  for p in part-r-*;
  do
   if [ -f $p ]; then
     let pcount=pcount+1
     #newfilename=$(date +'%Y%m%d%H%M%S')
     newfilename=$(echo part-r-"$newfilename"_"$pcount".dat)
     echo $newfilename
     mv $p $newfilename
     mv $newfilename part/
    fi
  done

echo "`date +'%Y-%m-%d %H:%M:%S'`"|cat>>$hadoopdellog

hadoop fs -rmr /wz/wordcount/input/*|cat>>$hadoopdellog

hadoop fs -rmr /wz/wordcount/output|cat>>$hadoopdellog
echo "执行完成"
else
echo "没有提交的文件"
fi
-- 插入 -- 30,4-18 95%

如果用crontab设置自动运行的话,需要将上面的所有路径设置为绝对路径,包括hadoop

例如 hadoop的命令需要写成 /usr/hadoop/bin/hadoop jar ......

文件日志也要写错绝对路径

使用crontab添加任务是也要设置绝对路径

例如设置每隔5分钟执行一次:

*/5 * * * * /usr/hadoop/xxx.sh &> /dev/null //表示不用发送邮件告知,否则会收到很多邮件通知

另外,hadoop运行时如果日志不想显示出来,可以先重定向到0 然后再从2输出

例如 hadoop jar ......>0 2>>xxx.log

0表示 stderr 1表示stdin 2表示stdout

hadoop自动提交脚本的更多相关文章

  1. git自动提交脚本

    每次在linux都要重新一遍一遍敲着这些重复的代码,我想着能够优化一下,做个一键脚本,减少重复劳动. #!/bin/bash git status read -r -p "是否继续提交? [ ...

  2. hadoop自动安装脚本

    还不能实现完全自动安装,只能算半自动的. 进行交互主要障碍有两点: 1. ssh-keygen的时候需要点击回车. 2. passwd 需要设置密码  如果谁能解决以上两点,欢迎email给我. 另外 ...

  3. 【颓废篇】Py:从零开始的poj自动提交

    之前学习了一些python的爬虫技术... 已经可以通过python来水blog的阅读量了 你知道的太多了, 然而你看我这个blog惨不忍睹的访问量, 有人吗? 有人吗? 今天突然又双叒叕心血来潮想写 ...

  4. 自动提交Git branch代码评审到Review Board系统

    背景 敏捷软件开发中,越小的反馈环,意味着软件质量越容易得到保证. 作为组件团队,我们的开发任务中,往往存在一些特性涉及到几十个功能点,开发周期持续数周或数月的情况.如何在开发过程中保证软件质量,是个 ...

  5. 使用RBTool自动提交code review请求

    使用RBTool自动提交code review请求 前言 让我们回想一下手工提交review请求的过程: 首先得用 svn diff > filename.diff 生成diff文件. 然后输入 ...

  6. Hadoop的shell脚本分析

    你会发现hadoop-daemon.sh用于启动单独的本机节点 而hadoop-daemons.sh 会批量的ssh到别的机器启动 前记: 这些天一直学习hadoop,学习中也遇到了许多的问题,主要是 ...

  7. Hadoop作业提交之TaskTracker获取Task

    [Hadoop代码笔记]Hadoop作业提交之TaskTracker获取Task 一.概要描述 在上上一篇博文和上一篇博文中分别描述了jobTracker和其服务(功能)模块初始化完成后,接收JobC ...

  8. PHP PDO 事务与自动提交

    现在通过 PDO 连接上了,在开始进行查询前,必须先理解 PDO 是如何管理事务的. 事务支持四大特性(ACID): 原子性(Atomicity) 一致性(Consistency) 隔离性(Isola ...

  9. SQL Server镜像自动生成脚本

    SQL Server镜像自动生成脚本 镜像的搭建非常繁琐,花了一点时间写了这个脚本,方便大家搭建镜像 执行完这个镜像脚本之后,最好在每台机器都绑定一下hosts文件,不然的话,镜像可能会不work 1 ...

随机推荐

  1. qualcomm sdm450 tinymix mic record

    最近需要使用tinymix配置主MIC和副MIC进行录音,一般副MIC都是拿来降噪用的.记录一下副MIC录音的方法. 没有找到高通的音频通路图,只能通过logcat,查看audio_route,然后找 ...

  2. Eclipse初次java开发问题总结-4-Maven使用问题汇总

    Non-resolvable parent POM [INFO] Scanning for projects... [ERROR] The build could not read 1 project ...

  3. 转载:帮你提升 Python 的 27 种编程语言

    帮你提升 Python 的 27 种编程语言: 出处:http://www.oschina.net/translate/languages-to-improve-your-python

  4. CentOS7 从管理员组中 新增/删除用户

    $ sudo usermod -aG wheel usera #增加 $ sudo usermod -G usera usera # 删除

  5. 刚看完了一本关于javascript的书感觉受益匪浅,原来不懂的东西这么多,想问问怎么成为大神?求教!!!!!!

    刚看完了一本关于javascript的书感觉受益匪浅,原来不懂的东西这么多,想问问怎么成为大神?求教!!!!!!

  6. shell 下执行mysql 命令

    From: http://blog.csdn.net/beginning1126/article/details/8590014 方案1 mysql -uuser -ppasswd -e 优点:语句简 ...

  7. windows上開啟多個apache服務器

    1.安裝apache(這裡我用的是集成環境) 比較php版本 5.6  與 7.2 比較mysql版本 拓展: 注意:對個不同的版本的mysql,命令行進入,需要指明端口號,如:mysql -uroo ...

  8. 《C程序猿从校园到职场》带领大家从校园走向职场

    七夕节刚过.就有好消息传来:本人新书<C程序猿从校园到职场>正式出版并在各大电商平台上发售了! 以下.让我们一起来赞赏一下纸质书的"风採"吧. 本书文件夹 第1章 概述 ...

  9. 【WP8】Uri关联启动第三方App

    在WP8中支持启动第三方应用程序,比如在App1中可以打开App2,你可以在你的应用程序中直接打开QQ,也可以让其他开发者调用你的APP,例如:软件盒子 下面演示被调用方和调用方的使用方法,新建两个项 ...

  10. 到底什么时候才需要在ObjC的Block中使用weakSelf/strongSelf

    转载,原文: http://blog.lessfun.com/blog/2014/11/22/when-should-use-weakself-and-strongself-in-objc-block ...