打jar包至服务器上运行

来源:7-11 Hive DDL之数据库操作

酱汁怪兽

2021-08-24

老师,您好!
关于写完的shell脚本,是否可以通过什么方式,进行自动定时运行,并得出相应结果呢?

我尝试了crontab方法:
(1)在root下,创建goldShopEtl.sh

#!/bin/bash
hadoop jar /home/hadoop/lib/hadoop-goldtest-v1-1.0-SNAPSHOT.jar shopLogsServer.EtlStart hdfs://hadoop000:8020/project/input/raw/shopLogs/ hdfs://hadoop000:8020/project/output/goldtest/serverShopEtl/

(2)然后执行命令:每5分钟执行一次
[root@hadoop000 ~]# vim /etc/crontab

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
 */5 * * * * root /root/goldShopEtl.sh >> /root/goldShopEtl

图片描述

(3)输出的结果,放置于/root/goldShopEtl
目前结果出不来。

现在确定的是:
crontab正常运行,
在/home/hadoop/lib/hadoop-goldtest-v1-1.0-SNAPSHOT.jar路径下,手动运行jar包也是正常出结果。

我现在是否需要将jar包重新拷贝到crontab的相关路径,才能使用crontab?
或者是您这有什么定时运行Hadoop上shell的方法?

写回答

1回答

Michael_PK

2021-08-26

定时执行脚本,直接配置在crontab -e 这个里面就可以呢

/etc/crontab这个我没有使用过。


在/home/hadoop/lib/hadoop-goldtest-v1-1.0-SNAPSHOT.jar路径下,手动运行jar包也是正常出结果。

定时就不行,这个感觉是你的环境变量不对,你在脚本中设置HOME=/ 是做什么用?是不是这里引发的路径不对了

0
3
酱汁怪兽
回复
Michael_PK
老师,您好! 问题已解决,使用了azkaban。
2021-09-07
共3条回复

Hadoop 系统入门+核心精讲

从Hadoop核心技术入手,掌握数据处理中ETL应用,轻松进军大数据

2397 学习 · 902 问题

查看课程