使用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.
建议:
1. 在执行时,外配一个crontab,做,netstat | grep dsthost类似的命令,三十秒做一次,顺次保存到文件里,就可以回顾整个过程中的网络并发数量,和开出的端口数等。
2. 打日志,每次write的时候,输出的数量,开始和结束的时间,让我们能看到每次write时的更具体的信息和统计write的次数。
以下都可能导致不大稳定:
a. 大量的小数据量高并发,导致很多的tcp TIME_WAIT或者CLOSE_WAIT,这样很难保证很多万次的请求一次错都不发生
b. 是否有大数据量上传,超时设置5秒是有点短的
c. 完全不考虑重试
console工具,也是访问这个endpoint,我们的设置是,超时80秒,每次访问失败后会重试三次。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。