安装spark + 用命令运行scala相关项目 + crontab定时执行

一、准备工作:

1.需要的软件:java安装jre1.8    spark-2.2.0.tar.gz(已配置好)

2.运行工程需要的东西:maven工程打的jar包 --prodmge-mapreduce-0.0.1-SNAPSHOT.jar,运行工程需要的lib,xxx.sql

二、安装spark和配置spark的变量:主要是参考的linux下spark安装安装及环境配置_weixin_46995451的博客-CSDN博客

安装时需要注意spark版本需要跟项目中使用的版本一致,否则会出错。

修改环境变量:vim /etc/profile(项目中不需要修改,暂时忽略这一步)

添加完后,source /etc/profile 

运行完后只有当前窗口可直接在任何位置使用spark的命令,重启后才全部起作用。

三、使用命令运行工程

1.在spark-2.2.0/bin目录下执行 不带配置文件

./spark-submit  --driver-class-path /home/sy/spark/mysql-connector-java-5.1.6-bin.jar  --jars $(files=(/home/sy/single-node/3.docker-service-image-build/lib/*.jar); IFS=,; echo "${files[*]}")  --class com.XXX.ProdmgeDataStastics --master local  /home/sy/single-node/3.docker-service-image-build/test.jar

2.配置环境变量后,直接用spark-submit命令

spark-submit  --driver-class-path /home/sy/spark/mysql-connector-java-5.1.6-bin.jar  --jars $(files=(/home/sy/single-node/3.docker-service-image-build/lib/*.jar); IFS=,; echo "${files[*]}")  --class com.XXX.ProdmgeDataStastics --master local  /home/sy/single-node/3.docker-service-image-build/test.jar

四、将命令和配置写到shell脚本中

vim data.sh

添加如下内容到该脚本

#!/bin/bash

set mysql-host-mapreduce=192.168.1.242:3306

set mysql-database-XXX=XXX

set mysql-username=root

set mysql-passwd=xxxxx

cd /home/sy/spark/spark-2.2.0/bin && ./spark-submit  --driver-class-path /home/sy/spark/mysql-connector-java-5.1.6-bin.jar  --jars $(files=(/home/sy/single-node/3.docker-service-image-build/lib/*.jar); IFS=,; echo "${files[*]}")  --class com.bjtds.ProdmgeDataStastics --master local  /home/sy/single-node/3.docker-service-image-build/test.jar

 

chmod +x data.sh

五、使用shell脚本自动添加定时任务到crontab 

vim execCrontab.sh

添加内容:

#!/bin/sh

crontab -l > conf && echo  "* * * * * /bin/bash /home/sy/spark/test.sh>>/home/sy/spark/prodmgeDataStastics.log 2>&1 " >> conf && crontab conf && rm -f conf

chmod +x execCrontab.sh //设置权限

./execCrontab.sh //执行脚本

执行完后,查看

crontab -e //编辑查看crontab,原来的命令不删除,追加到后面。

六、出现过的问题总结

1.ip地址不对,项目中配置的ip跟运行中的ip不一致,出现这个错误。

最后找到原因是项目代码中配置的mysql-host,系统中mysql已经配置了ip,解决办法:改了项目代码中mysql-host为mysql-host-xxx。

2.命令中没有mysql驱动报错spark-submit    --jars $(files=(/home/sy/single-node/3.docker-service-image-build/lib/*.jar); IFS=,; echo "${files[*]}")  --class com.bjtds.ProdmgeDataStastics --files /home/sy/spark/prodmgeDataStastics.xml --master local  /home/sy/single-node/3.docker-service-image-build/test.jar

添加驱动后spark-submit  --driver-class-path /home/sy/spark/mysql-connector-java-5.1.6-bin.jar  --jars $(files=(/home/sy/single-node/3.docker-service-image-build/lib/*.jar); IFS=,; echo "${files[*]}")  --class com.bjtds.ProdmgeDataStastics --files /home/sy/spark/prodmgeDataStastics.xml --master local  /home/sy/single-node/3.docker-service-image-build/test.jar正确运行。

3、crontab定时执行

crontab -e 进入编辑状态,加入最后一行内容

service cron restart进行重启。

但是发现找不到spark-submit命令,spark已经配置了环境变量,仍然在crontab执行shell脚本时出现找不到问题,于是查找原因

改完为如下图命令,可正确运行。

先清空一下日志文件

日志文件也正常输出

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值