前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TBDS工作流调度python脚本示例及排错方法

TBDS工作流调度python脚本示例及排错方法

原创
作者头像
袁宋
修改2019-07-03 11:29:01
2K4
修改2019-07-03 11:29:01
举报
文章被收录于专栏:大数据平台TBDS大数据平台TBDS

TBDS中的Shell任务工作流可通过shell脚本调用python,也可以直接调用python脚本,以下为两种方法介绍。

一、在shell脚本中调用python脚本编写方法

1. 首先在工作流中新建shell任务

2.编写调用python的shell脚本,可参考如下call_python.sh脚本

#!/bin/bash
py_script=$1
Time=$(date +"%Y%m%d%H%M")
shell_log=/tmp/call_python.log.$Time
cmd_start(){
 py_name=$1
 py=$(which python)
 $py $py_name >>${shell_log} 2>&1
}
cmd_start ${py_script}

由于执行脚本的用户为admin普通用户,若shell或者python脚本中有生成文件需要注意存放的目录路径,一般只能将文件存放至/tmp或者/home/admin目录下,否则会有权限问题

3. 将shell脚本及编写的python脚本转换为unix格式

转换命令:dos2unix call_python.sh xxx.py

4. 将shell脚本及python脚本合并打为zip包,通过页面上传

5. 填写shell脚本名及需要调用的python名

6. 发布运行,查看日志输出是否报错

二、直接调用python脚本的方法

1.同样新建工作流shell任务

2.编写python脚本,如下mktest.py

#!/usr/bin/env python
#-*- coding:utf-8 -*-
import os
os.mkdir("/home/admin/tmp")
file_object = open('/home/admin/tmp/easy_testfile.txt','w')
print("hhhhhhhhhhhh,test!")
try:
 all_the_text = file_object.write('hello,shell test!')
finally:
 file_object.close( )

由于执行脚本的用户为admin普通用户,若shell或者python脚本中有生成文件需要注意存放的目录路径,一般只能将文件存放至/tmp或者/home/admin目录下,否则会有权限问题

注意:因为平台是直接./mktest.py执行,所以在python脚本的头部需要写明解释器(shell调用的可以不写),“#!/usr/bin/env python”,加入解释器后即可正常执行python脚本

3. 将python脚本转换为unix格式

转换命令:dos2unix mktest.py

4. 将python脚本打为zip包,通过页面上传

5. 填写python脚本名

6. 发布运行,通过页面查看日志是否有报错

三、排错方法

1. 右键点击任务的”查看运行状态”,进入界面点击”查看”

2. 若shell或python脚本中有直接print调试信息而没有将信息写入到文件中,则可以直接在页面的最后查看到信息

3.若脚本中把信息打印log文件中,则可以登录到服务器上查看运行日志(关键为查找到执行脚本的节点ip及log文件所在的目录)

a) 根据以下步骤,找到任务实例运行所在的runner节点ip

此处即为任务实例运行所在的节点IP
此处即为任务实例运行所在的节点IP

b)若产生的log文件在脚本中定义为存放在当前目录,可通过页面查询log目录

c)若log文件为自己在shell或者python中定义的,则查看脚本

d)登陆任务实例运行的节点IP查看对应的日志/tmp/call_python.log或者/usr/local/lhotse_runners/tdcp/workspace/20180315115924554/20180315000000/xx.log

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、在shell脚本中调用python脚本编写方法
  • 二、直接调用python脚本的方法
  • 三、排错方法
相关产品与服务
大数据处理套件 TBDS
腾讯大数据处理套件(Tencent Big Data Suite,TBDS)依托腾讯多年海量数据处理经验,基于云原生技术和泛 Hadoop 生态开源技术对外提供的可靠、安全、易用的大数据处理平台。 TBDS可在公有云、私有云、非云化环境,根据不同数据处理需求组合合适的存算分析组件,包括 Hive、Spark、HBase、Flink、presto、Iceberg、Alluxio 等,以快速构建企业级数据湖、数据仓库。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档