hadoop自动提交脚本
自动提交到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自动提交脚本的更多相关文章
- git自动提交脚本
每次在linux都要重新一遍一遍敲着这些重复的代码,我想着能够优化一下,做个一键脚本,减少重复劳动. #!/bin/bash git status read -r -p "是否继续提交? [ ...
- hadoop自动安装脚本
还不能实现完全自动安装,只能算半自动的. 进行交互主要障碍有两点: 1. ssh-keygen的时候需要点击回车. 2. passwd 需要设置密码 如果谁能解决以上两点,欢迎email给我. 另外 ...
- 【颓废篇】Py:从零开始的poj自动提交
之前学习了一些python的爬虫技术... 已经可以通过python来水blog的阅读量了 你知道的太多了, 然而你看我这个blog惨不忍睹的访问量, 有人吗? 有人吗? 今天突然又双叒叕心血来潮想写 ...
- 自动提交Git branch代码评审到Review Board系统
背景 敏捷软件开发中,越小的反馈环,意味着软件质量越容易得到保证. 作为组件团队,我们的开发任务中,往往存在一些特性涉及到几十个功能点,开发周期持续数周或数月的情况.如何在开发过程中保证软件质量,是个 ...
- 使用RBTool自动提交code review请求
使用RBTool自动提交code review请求 前言 让我们回想一下手工提交review请求的过程: 首先得用 svn diff > filename.diff 生成diff文件. 然后输入 ...
- Hadoop的shell脚本分析
你会发现hadoop-daemon.sh用于启动单独的本机节点 而hadoop-daemons.sh 会批量的ssh到别的机器启动 前记: 这些天一直学习hadoop,学习中也遇到了许多的问题,主要是 ...
- Hadoop作业提交之TaskTracker获取Task
[Hadoop代码笔记]Hadoop作业提交之TaskTracker获取Task 一.概要描述 在上上一篇博文和上一篇博文中分别描述了jobTracker和其服务(功能)模块初始化完成后,接收JobC ...
- PHP PDO 事务与自动提交
现在通过 PDO 连接上了,在开始进行查询前,必须先理解 PDO 是如何管理事务的. 事务支持四大特性(ACID): 原子性(Atomicity) 一致性(Consistency) 隔离性(Isola ...
- SQL Server镜像自动生成脚本
SQL Server镜像自动生成脚本 镜像的搭建非常繁琐,花了一点时间写了这个脚本,方便大家搭建镜像 执行完这个镜像脚本之后,最好在每台机器都绑定一下hosts文件,不然的话,镜像可能会不work 1 ...
随机推荐
- Mac和Linux下pip更换源
cd ~mkdir .pip vim .pip/pip.conf 在pip.conf中写入 [global]timeout = 6000index-url = https://pypi.tuna.ts ...
- 【转】【Android】Android Drawable Shape 组合画田字格
使用layer-list组合多个Shap <?xml version="1.0" encoding="utf-8"?> <layer-list ...
- 转:用法总结:NSNumber、NSString、NSDate、NSCalendarDate、NSData(待续)
NSNumber + (NSNumber *)numberWithInt:(int)value; + (NSNumber *)numberWithDouble:(double)value; - (in ...
- Lucene系列五:Lucene索引详解(IndexWriter详解、Document详解、索引更新)
一.IndexWriter详解 问题1:索引创建过程完成什么事? 分词.存储到反向索引中 1. 回顾Lucene架构图: 介绍我们编写的应用程序要完成数据的收集,再将数据以document的形式用lu ...
- e823. 创建JSplitPane
A split pane divides its space between two components. The split pane contains a divider that allows ...
- windows 找不到文件'igfxHK.exe'
现象:开机时windows报:windows 找不到文件'igfxHK.exe' 解决办法:win+r 输入services.msc 进入服务管理, 找到服务名称为: Intel(R) HD Gr ...
- Fedora ssh服务,防火墙服务设置
Fedora26 ssh设置 ssh:connection to host 127,0.0.1 port22: Connection refused 首先安装openssh-server yu ...
- Java华氏转摄氏
package test; import java.util.Scanner; public class temperature { public static void main(String[] ...
- hdu 5086 Revenge of Segment Tree(BestCoder Round #16)
Revenge of Segment Tree Time Limit: 4000/20 ...
- categorys
//spark-shell --driver-class-path /home/hadoop/test/mysqljdbc.jarimport java.sql.DriverManager// --q ...