1. 使用kitchen.sh 编写shell脚本 用作pdi 任务(脚本名为:/opt/webex/spark_metrics.job)
#!/bin/sh
export JAVA_HOME=/usr/java
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JRE_HOME=$JAVA_HOME/jre
cd /opt/webex/pentaho_data_integration
./kitchen.sh \
-file $PWD/resources/pdi/spark_metrics/Spark_Metrics_Job.kjb \
-param:"du_etl_hostname=ip" \
-param:"spark_metrics_api=http://ip/du/api/v1.0/checks/redisSparkMetrics" \
>>/opt/webex/pentaho_data_integration/logs/ten_min_`date +%Y%m%d%H%M`.log
注意点:
(1) 必须在shell中加入export 来配置java环境变量,否则会出现spoo.sh command line not found的问题
(2) 输出日志放在最后, 可以使用shell的date命令格式%Y%m%d%H%M可以输出为201711101026.log
2. 编写cronJob
10,30 * * * * /opt/webex/spark_metrics.sh
代表:每个小时的10,30分触发该shell脚本
注意:crontab 一般格式为 :
10,30 * * * * opt/webex/spark_metrics.sh >dev/null 2>&1
第一个>dev/null : 正常日志流输出到null也就是不输出
第二个2>&1 : 错误日志流等同正常流输出