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 ...
随机推荐
- clapack在android上移植
参考 https://www.cnblogs.com/hrlnw/p/4128217.html 如何在android上进行android库编译 https://blog.csdn.net/h3c4le ...
- 用python读取stata文件及写入and注意事项
读取: 由于stata没有专门模块,是从pandas里面调用,官方文档少之又少,故去查看源代码 #!/usr/bin/env python# -*- coding:utf-8 -*- from pan ...
- (笔记)Linux下system()函数的深度理解(整理)
注:从其它地方转的非常好的一篇文章,值得深究! 这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数 ...
- SpringMVC系列(十)<mvc:default-servlet-handler/>(处理静态资源)和<mvc:annotation-driven />
一.<mvc:default-servlet-handler/>处理静态资源 若将 DispatcherServlet 请求映射配置为 /,则 Spring MVC 将捕获WEB 容器的所 ...
- (转)android系统架构及源码目录结构
转自:http://blog.csdn.net/finewind/article/details/46324507 1. Android系统架构: android系统架构采用了分层架构的思想,如下图所 ...
- 在Eclipse中设置进行JNI的头文件编译方法(转 http://blog.csdn.net/mirkerson/article/details/17187109)
这两天在搞NDK开发,JNI的头文件进行编译的时候,要跑到对应的class文件路径下(通常是工程的bin目录),进行编译生成,很是不便,也容易出错,所以考虑在Eclipse中作为外部工具引入,所以便查 ...
- 转:关于VS2012连接MySql数据库时无法选择数据源
原文来自 http://www.cnblogs.com/sanduo8899/p/3698617.html 您的C#开发工具是用VS2012吗? No! return; 您的数据库用的 ...
- win10上跑 sqlserver 2000应用程序
将SQL Server 安装程序\X86\SYSTEM\SQLUNIRL.DLL 替换到Win10 的 C:\windows\system32\目录下,64位win10 还要复制到SYSWOW64目录 ...
- Intellij Idea反向生成Hibernate实体类
每次根据数据库的表反向生成实体类老不记得步骤...脑子不够用,这里特意记录一下.碰到的问题也及时更新到这里来. 1. 工程添加Hibernate支持 两种方式: 第一种:工程上右键选择 "A ...
- JSP九大内置对象与Servlet学习笔记[转]
我们常说的JSP有九大内置对象分别为:request.response.session.out.pagecontext.page.exception.application.config. 我们知道, ...