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 ...
随机推荐
- Android <meta-data>
在AndroidManifest.xml中,<meta-data>元素可以作为子元素,被包含在<activity>.<application>.<servic ...
- 嵌入式开发之uart---rs232 和rs485 和rj45和usb简介
(1) profilebus和can(control控制器局域网)和hub(集线器) (uart)通用异步传输 rs232: ibm 提出的,两根线,按位bit传输,是端到端的单信号电平模式,理论上有 ...
- (原创)关于FFmpeg的一些有关的初始化默认值的问题
最近手头上要做一个媒体格式分析库,能解析文件,流的视频格式,编码格式等一些重要的视频参数能进行尽量多的提取.当我们做媒体相关方面的东西,自然而然就会想到FFmpeg这个强大的开源媒体库,所以我们肯定会 ...
- nodejs基础 -- 路由
我们要为路由提供请求的URL和其他需要的GET/POST参数,随后路由需要根据这些数据(URL.GET/POST参数)来执行相应的代码. 因此,需要查看HTTP请求,从中提取出请求的URL及GET/P ...
- winfrom 使用NPOI导入导出Excel(xls/xlsx)数据到DataTable中
1.通过NUGET管理器下载nopi,在引入命令空间 using System; using System.Collections.Generic; using System.Text; using ...
- Lemon OA第4篇:常用功能
OA,Office Automation的简写,中文意思办公自动化,不同的人有不同的见解,可以简单的理解为网络化办公,高效.协同是其显著的特点,如今正在朝着智能的方向发展 平时不擅长文字,写出来几句话 ...
- R绘图系统中的坐标系
在R语言中,对于图中的点来说,有很多种坐标系来进行定位 举个例子: par(omi = c(1, 1, 1, 1), mai = c(1, 1, 1, 1), mfrow = c(1, 2)) plo ...
- Linux下seq的使用
seq - print a sequence of numbers [root@gechong ~]# man seq 主要有一下三个参数 -f:用来格式化输出 -s:用来指定分隔符号,默认是回车 - ...
- 正则split
string content = "第1行导入失败,失败原因为: <加班原因>字段必填"; string[] resultString = Regex.Split(co ...
- 【转】Spring Boot干货系列:(二)配置文件解析
转自:Spring Boot干货系列:(二)配置文件解析 前言 上一篇介绍了Spring Boot的入门,知道了Spring Boot使用"习惯优于配置"(项目中存在大量的配置,此 ...