使用Crontab定时执行Spark任务【面试 工作】

本文的主要内容有:
- Linux下使用定时器crontab
- Linux下如何编写Perl脚本
- 在Java程序中调用Linux命令
- 实例:每天0点30分执行Spark任务
1. Linux下使用定时器crontab
1、安装

2、启停命令

3、查看所有定时器任务


这个定时器任务是每分钟用sh执行test.sh脚本
4、添加定时器任务


5、crontab的时间表达式
基本格式 :


6、常用实例

2. Linux下编写Perl脚本
1、首先安装Perl

2、写一个最简单的Perl脚本

内容如下:

第一个“#”表示是这一行是注释 第二个“!”表示这一行不是普通注释,而是解释器路径的声明行 后面的“/usr/bin/perl”是perl解释器的安装路径,也有可能是:“/usr/local/bin/perl”,如果那个不行,就换这个 use strict是严格检查语法
3、给该脚本添加可执行权限

Linux档案的基本权限有9个,分别是owner/group/other三种身份各有read/write/execute权限,而各权限的分数对照是r:4,w:2,x:1; 每种身份的权限都是需要累加的,比如当权限是[-rwxrwx—],则表明: owner:rwx=4 2 1=7 group:rwx=4 2 1=7 other:—=0 0 0=0 即该档案的权限数字就是770
4、然后执行该Perl文件即可


由于我们声明了解释器路径,所以不需要使用perl test.pl,而是直接 ./ 就可以执行了
技术图谱大赏
3. 在Java程序中调用Linux命令
主要用到两个类Process和Runtime,代码示例如下:

如果-c 选项存在,命令就从字符串中读取
4. 实例:每天0点30分执行Spark任务
1、首先编写执行Spark任务的Perl脚本:getappinfo.pl

2、添加定时器任务:每天的0点30分执行getappinfo.pl

添加以下内容:

3、脚本中的Spark程序如下:


这个程序首先从Hive中查询数据并展示出来,然后再调用Linux的shell执行另一个Perl脚本getappinfo_new.pl,我们可以在这个脚本中写入其他操作


