使用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,我们可以在这个脚本中写入其他操作