【场景】:

需要定期运行Hadoop的MapReduce

【解决办法】:

编写一个运行MapReduce的Shell脚本。然后使用crontab配置定时任务。

【Shell脚本】

#!/usr/bin/env bash
source /etc/profile
echo "TimeLimitDrawn Start"
hadoop jar $HADOOP_HOME/package/mr_post-1.0-SNAPSHOT-jar-with-dependencies.jar com.hdyh.mapreduce.TimeLimitDrawn >> /home/hadmin/hadoop/shell/mr.log
echo "TimeLimitDrawn End"

【定时任务】

*  *  */1  *  *  sh /home/hadmin/hadoop/package/TimeLimitDraw.sh

【crontab使用说明】

crontab –u    //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab –l     //列出某个用户cron服务的详细内容
crontab –r    //删除某个用户的cron服务
crontab –e    //编辑某个用户的cron服务

crontab 文件中的行由6个字段组成,不同字段间用空格或tab键分隔。前5个字段指定命令要运行的时间
①分钟(0-59)
②小时(0-23)
③日期(1-31)
④月份(1-12)
⑤星期几(0-6,其中0代表星期日,好像7也代表星期日)
⑥一个要在适当时间执行的字符串。

例子:
#MIN      HOUR     DAY       MONTH  DAYOFWEEK       COMMAND
#每天早上6点10分
10    6     *     *     *     date

#每两个小时
0     */2   *     *     *     date

#晚上11点到早上8点之间每两个小时,早上8点
0     23-7/2,8      *     *     *     date

#每个月的4号和每个礼拜一到礼拜三的早上11点
0     11    4     *     1-3  date

#1月1日早上4点
0     4     1     1       *  date

让配置文件生效:如果让配置文件生效,还得重新启动cron,切记,既然每个用户下的cron配置文件修改后,也要重新启动cron服务器。

注意:如果要定期执行某个Shell命令的时候,一定要注意以下两点:

①、shell脚本要有-x(可执行)的权限

②、shell脚本可以被正确执行,但是hadoop命令无法运行时,多数情况都是因为环境变量的原因,可以在Shell脚本中使用source /etc/profile来使环境变量生效。

③、如果设置的是整点运行,按照下面错误的写法,会在7点开始执行很多次命令。

错误的写法:*  7  *  *  *  sh /home/hadmin/hadoop/package/TimeLimitDraw.sh

正确的写法:0  7  *  *  *  sh /home/hadmin/hadoop/package/TimeLimitDraw.sh

④、有时因为找不到文件或者权限问题无法正确执行时,系统会生成一个文件【/var/spool/mail/[用户名]】、 如:/var/spool/mail/root

在这个文件中有时可以找到一些有用的线索。

--end--

crontab定期执行shell脚本的更多相关文章

  1. linux crontab定时执行shell脚本

    linux下使用crontab命令被用来提交和管理用户的需要周期性执行的任务,示例如下:crontab -e 编辑周期任务30 21 * * * /etc/init.d/smb restart 每晚的 ...

  2. crontab定时执行shell脚本失败的原因

    有一段时间不用crontab定时执行任务了,这次趁着项目实施的机会来进一步分析一下crontab定时任务设置时遇到的一些棘手的问题. crontab -l 查看目前已经设置的crontab信息 cro ...

  3. linux下crontab定时执行shell脚本调用oracle 存储过程

    问题:脚本内调用存储过程,脚本直接执行没问题,使用crontab 执行脚本存储过程未执行 原因:缺少oracle环境变量 解决:在shell脚本里添加oracle的环境变量 #!/bin/sh PAT ...

  4. 在crontab中执行shell脚本的问题

    crontab中记录的编写比较简单,下面是一个示例: * * * /app/tpssapp/ftpsrc/tools/statTables/statTables.sh > /app/tpssap ...

  5. crontab定时执行shell脚本

    步骤一    首先我们先看一下是否安装了crontab.一般情况下linux系统会自带crontab及crond.如果没有安装,请使用以下指令安装:yum install vixie-cron     ...

  6. 解决命令行执行shell脚本成功,但crontab执行失败

    实际生产案例 生产机房自建PPTP客户端通过拨号连接到生产机房,但是一旦客户端网络是意外断线再重新拨号 会产生IP冲突,于是写了一个脚本监控PPTP的IP是否有多个(一般冲突以后会生成2个IP) #! ...

  7. mac上使用crontab周期性执行python脚本

    这个月买了本书<Linux系统命令及Shell脚本实践指南>, 看到了一个周期性执行任务cron.顿时产生一个想法: mac上有这种机制么? 加上自己也在15年下半年也学了点python脚 ...

  8. Linux中执行shell脚本的4种方法总结

    bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在 ...

  9. Linux中执行shell脚本的4种方法

    bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在 ...

随机推荐

  1. TCP/IP网络编程系列之三(初级)

    TCP/IP网络编程系列之三-地址族与数据序列 分配给套接字的IP地址和端口 IP是Internet Protocol (网络协议)的简写,是为首发网络数据而分配给计算机的值.端口号并非赋予计算机值, ...

  2. Eclipse中创建新的Spring Boot项目

    本文转载自:http://blog.csdn.net/clementad/article/details/51334064 简单几步,在Eclipse中创建一个新的spring Boot项目: 1.E ...

  3. thinkphp如果表名有下划线需要用Model

    模型命名规范 ThinkPHP 对数据库的表名和模型类的命名遵循一定的规范.首先数据库的表名和字段全部采用小写形式,模型类的命名规则是除去表前缀的数据表名称,并且首字母大写,然后加上模型类的后缀定义. ...

  4. 利用JAVA操作Redis---demo

    package com.js.ai.modules.pointwall.interfac; import java.util.HashMap; import java.util.Iterator; i ...

  5. View.findViewById()和Activity.findViewById()区别

    在网上看见View.findViewById() 和 Activity.findViewById()执行效率不一样 使用Activity.findViewById()如: TextView tv_in ...

  6. PHP根据问题追踪代码技巧一

    1.问题描述: 2.E:\html\pim\php_aspire-mcloud\module\pim\controller\Configure.class.php public function po ...

  7. 恒大威武!关于SQL的一些基础知识整理回顾

    首先的首先,恒大威武! 开始正题. 关系代数: 目前主流的关系型数据库,是建立在关系代数的基础上的,即他的数学支撑是关系代数. 关系代数主要包括如下几个二目运算:并运算union.交运算interse ...

  8. 「小程序JAVA实战」小程序我的个人信息-注销功能(42)

    转自:https://idig8.com/2018/09/06/xiaochengxujavashizhanxiaochengxuwodegerenxinxi-zhuxiaogongneng40/ 注 ...

  9. maven-resources-plugin使用

    命令行中带参数指定${}变量值 <build> <resources> <resource> <directory>src/main/resources ...

  10. Windows Nginx 基本操作

    Nginx 下载 下载路径:Nginx下载 下载后解压如下图 常用命令 在nginx目录下打开命令行工具(可能需要管理员权限). start nginx : 启动nginxnginx -t 测试ngi ...