开发者社区> 问答> 正文

使用MaxCOmpute python SDK读取ODPS上一张表,做一些处理后,写入另外一张表,读取和写入都是多线程的。遇到问题1. 多线程处理时,每个线程每次循环(每次循环处理100条数据)均新建了一个odps连接,有没有可能是odps连接太多了?文档中没有发现如何关闭这个odps连接? 2. 在ODPS客户端,操作一些sql命令时,也是有超时的,客户端也有超时的话,是不是可以先排除程序的问题?如下: Aliyun ODPS Command Line Tool Version 0.21.1 @Copy

使用MaxCOmpute python SDK读取ODPS上一张表,做一些处理后,写入另外一张表,读取和写入都是多线程的。遇到问题1. 多线程处理时,每个线程每次循环(每次循环处理100条数据)均新建了一个odps连接,有没有可能是odps连接太多了?文档中没有发现如何关闭这个odps连接?
2. 在ODPS客户端,操作一些sql命令时,也是有超时的,客户端也有超时的话,是不是可以先排除程序的问题?如下:
Aliyun ODPS Command Line Tool
Version 0.21.1
@Copyright 2015 Alibaba Cloud Computing Co., Ltd. All rights reserved.
odps@ wzd_dataplatform>show instances;
Warning: ODPS request failed:connect timed out, retryCount:1, will retry in 130 seconds.

展开
收起
知与谁同 2017-05-19 17:18:04 12176 0
1 条回答
写回答
取消 提交回答
  • 建议:
    1. 在执行时,外配一个crontab,做,netstat | grep dsthost类似的命令,三十秒做一次,顺次保存到文件里,就可以回顾整个过程中的网络并发数量,和开出的端口数等。

    2. 打日志,每次write的时候,输出的数量,开始和结束的时间,让我们能看到每次write时的更具体的信息和统计write的次数。

    以下都可能导致不大稳定:
    a. 大量的小数据量高并发,导致很多的tcp TIME_WAIT或者CLOSE_WAIT,这样很难保证很多万次的请求一次错都不发生
    b. 是否有大数据量上传,超时设置5秒是有点短的
    c. 完全不考虑重试

    console工具,也是访问这个endpoint,我们的设置是,超时80秒,每次访问失败后会重试三次。

    2019-07-17 21:11:48
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载