转载:linux下大数据人工智能自动化脚本定时任务模板

简介:


转自:

https://mp.weixin.qq.com/s/mXXJmDqtv7PyqglN9ekvNQ



本文针对有初级sql及python人工智能开发基础,需要执行定时任务的初学人员。


       假设在工作中,要执行一个任务,大致要求如下:

       一、每月执行一次定时任务;

       二、用hive处理数据,并下载;

       三、用python读取数据,送入机器学习算法训练,预测结果,保存结果;

       四、读取预测结果,上传到数据库指定位置,并按月分区


       (一)、关于定时任务crontab,命令网上可以搜到很多用法。在这里有一个坑需要注意,就是直接执行shell脚本时用到的python环境路径,可能与定时任务的python路径不同,导致执行脚本时报错,找不到模块。这里有一个小方法,写一个python程序test.py。


import sys

print(sys.path)


       python test.py与crontab -e各执行一次,就可以看到两次路径是否相同了。还有一点,就是关于注册信息的问题,

kinit -kt /home/accunt/cluster_keytab/accunt.keytab accunt中的accunt是你自己的账户,没有这句话,程序也会报错。所以建议专门写一个定时任务,每隔几个小时执行一次该命令。


       (二)、程序中经常会涉及到变量,比较常见的是时间变量,这样才能做到自动化,train_month_t=$(date +%Y%m -d '-1 month')这句话意思是,获取执行程序时的月份的前一个月,‘$’是定义一个变量,用$train_month_t传入sql语句中。exportHIVE_SKIP_SPARK_ASSEMBLY=true; 这句话的作用是在下载数据时,保证数据能够下载齐全。


       (三)、为了降低shell脚本的篇幅,可以将python部分以子文件形式执行。这里为了防止在定时任务时,python路径不统一,使用python的环境路径执行程序。通过sys.argv[1]将参数$py_month传进去。这里的月份形式是'201808',传进去是字符串格式。


       (四)、在数据库里建表,并将通过人工智能预测好的数据,上传到指定分区。


下面是模板内容:


#!/bin/bash

kinit -kt /home/accunt/cluster_keytab/accunt.keytab accunt


echo "***************************"


train_month_t=$(date +%Y%m -d '-1 month')

echo $train_month_t


echo "*************start*************"


sql_train="

create table if not exists test.t_test

(a string, 

b string)

row format delimited fields terminated by '\t' 

lines terminated by '\n'

stored as textfile;

set hive.exec.dynamic.partition.mode=nonstrict;

insert overwrite table test.t_test 

select a,b

from product.t_test 

where day=concat('$train_month_t','01');

"


echo $sql_train >./train.sql

kinit -kt /home/accunt/cluster_keytab/accunt.keytab accunt


hive -f ./train.sql


export HIVE_SKIP_SPARK_ASSEMBLY=true;

hive -e "set hive.cli.print.header=true;

select distinct a,b from test.t_test;" >./train.csv


echo "*************train sql successful************"


kinit -kt /home/accunt/cluster_keytab/accunt.keytab accunt


./python ./train_pred.py $py_month


echo "*************py successful************"


load_sql="

create table if not exists test.result 

(a string, 

b string) 

partitioned by (month string)

row format delimited fields terminated by '\t' 

lines terminated by '\n'

stored as textfile

tblproperties('skip.header.line.count'='1');


LOAD DATA LOCAL INPATH './preds_$load_month.csv'

into table test.result PARTITION (month='$load_month');

"

echo $load_sql>./load.sql

kinit -kt /home/accunt/cluster_keytab/accunt.keytab accunt


hive -f ./load.sql


echo "*************load_sql successful************"


echo "*************successful************"


       至此,一个简单的大数据人工智能预测分析脚本模板完成了,希望能有所帮助,并指出不足之处,共同进步!





转自:

https://mp.weixin.qq.com/s/mXXJmDqtv7PyqglN9ekvNQ

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
8月前
|
SQL 人工智能 分布式计算
ODPS十五周年实录|构建 AI 时代的大数据基础设施
本文根据 ODPS 十五周年·年度升级发布实录整理而成,演讲信息如下: 张治国:阿里云智能集团技术研究员、阿里云智能计算平台事业部 ODPS-MaxCompute 负责人 活动:【数据进化·AI 启航】ODPS 年度升级发布
416 9
|
9月前
|
人工智能 分布式计算 DataWorks
大数据AI产品月刊-2025年7月
大数据& AI 产品技术月刊【2025年7月】,涵盖7月技术速递、产品和功能发布、市场和客户应用实践等内容,帮助您快速了解阿里云大数据& AI 方面最新动态。
|
10月前
|
数据采集 人工智能 大数据
10倍处理效率提升!阿里云大数据AI平台发布智能驾驶数据预处理解决方案
阿里云大数据AI平台推出智能驾驶数据预处理解决方案,助力车企构建高效稳定的数据处理流程。相比自建方案,数据包处理效率提升10倍以上,推理任务提速超1倍,产能翻番,显著提高自动驾驶模型产出效率。该方案已服务80%以上中国车企,支持多模态数据处理与百万级任务调度,全面赋能智驾技术落地。
1391 0
|
机器学习/深度学习 人工智能 算法
别再只看病了,来看看“大数据+AI”是怎么救命的!
别再只看病了,来看看“大数据+AI”是怎么救命的!
261 1
|
7月前
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
549 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
人工智能 分布式计算 大数据
大数据& AI 产品月刊【2025年4月】
大数据& AI 产品技术月刊【2025年4月】,涵盖4月技术速递、产品和功能发布、市场和客户应用实践等内容,帮助您快速了解阿里云大数据& AI 方面最新动态。
|
7月前
|
存储 人工智能 安全
拔俗AI临床大数据科研分析平台:让医学研究更智能、更高效
阿里云原生AI临床大数据科研平台,打通异构医疗数据壁垒,实现智能治理、可视化分析与多中心安全协作,助力医院科研提速增效,推动精准医疗发展。
1423 1
|
7月前
|
人工智能 Cloud Native 算法
拔俗云原生 AI 临床大数据平台:赋能医学科研的开发者实践
AI临床大数据科研平台依托阿里云、腾讯云,打通医疗数据孤岛,提供从数据治理到模型落地的全链路支持。通过联邦学习、弹性算力与安全合规技术,实现跨机构协作与高效训练,助力开发者提升科研效率,推动医学AI创新落地。(238字)
507 7