开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

DataWorks运行ODPS sql报OSError: [Errno 7] 怎么解决啊?

问题1:DataWorks运行ODPS sql报OSError: [Errno 7] Argument list too long怎么解决啊?Traceback (most recent call last):
File "/opt/taobao/tbdpapp/odpswrapper/odpswrapper.py", line 180, in
main()
File "/opt/taobao/tbdpapp/odpswrapper/odpswrapper.py", line 177, in main
execer.RunSql(sqls)
File "/opt/taobao/tbdpapp/odpswrapper/sqlExec.py", line 359, in RunSql
self.RunCurrentSql(sqlString, False, 0)
File "/opt/taobao/tbdpapp/odpswrapper/sqlExec.py", line 328, in RunCurrentSql
self.execCurSql(sql_seq, sql, sql_list_len, alifin_last_task_sql);
File "/opt/taobao/tbdpapp/odpswrapper/sqlExec.py", line 304, in execCurSql
returncode = self.odps_exec(self.GetMetaChain(sql_seq, ncount) + sql, "run")
File "/opt/taobao/tbdpapp/odpswrapper/sqlExec.py", line 416, in odps_exec
p = Popen(cmdsql, stderr=PIPE)
File "/usr/lib64/python2.6/subprocess.py", line 633, in init
errread, errwrite)
File "/usr/lib64/python2.6/subprocess.py", line 1139, in _execute_child
raise child_exception
OSError: [Errno 7] Argument list too long
问题2:删了还是不行 拆也拆不动呀 空格去掉有用吗,或者怎么突破128KB限制

展开
收起
真的很搞笑 2023-07-22 16:07:08 115 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    "Argument list too long"错误通常发生在命令行参数或环境变量过多导致的情况。这种错误可能是由于ODPS SQL语句过长导致的。以下是一些可能的解决方法:

    减少SQL语句长度:尝试减少ODPS SQL语句的长度,可以通过拆分较长的SQL语句为多个较短的语句进行执行。例如,将一个复杂的SQL查询拆分为多个子查询或使用临时表来减少参数的数量。

    使用脚本文件:将ODPS SQL语句保存在一个独立的脚本文件中,并使用ODPS客户端执行该脚本文件。这样可以避免将整个SQL语句传递为命令行参数,减少参数长度。

    增加系统参数限制:如果你有权限访问服务器和操作系统,可以尝试增加系统参数限制。在Linux系统中,可以修改/etc/security/limits.conf文件中的arg_max和max_args参数来增加参数限制。

    使用ODPS SDK:使用ODPS SDK编写Python脚本来执行ODPS SQL语句,而不是直接使用命令行。通过使用SDK,可以更灵活地控制和处理参数,避免参数过长的问题。

    2023-07-30 17:23:56
    赞同 展开评论 打赏
  • 当在DataWorks运行ODPS SQL时遇到OSError: [Errno 7]错误,通常是由于服务器的连接问题引起的。要解决这个问题,可以尝试以下几种方法:

    1. 检查网络连接:确保您的网络连接正常,并且可以访问ODPS服务。请确认您的网络环境没有阻止对ODPS的访问,并尝试使用其他网络或设备进行连接。

    2. 检查配置信息:检查您在DataWorks中的ODPS配置是否正确。确保您提供了正确的Endpoint、AccessKeyId和AccessKeySecret等配置项。如果这些配置有误,可能会导致连接失败。

    3. 重试操作:有时候,连接问题可能是暂时的,可以尝试重新运行SQL作业或重新提交任务,看是否能够解决问题。如果该错误仅出现一次或偶尔出现,可能是临时的网络问题或服务器故障。

    4. 联系技术支持:如果上述方法都无效,建议联系阿里云的技术支持团队,提供详细的错误信息、操作步骤和相关环境信息,以便他们帮助您进一步诊断和解决问题。

    2023-07-23 13:01:43
    赞同 展开评论 打赏
  • 回答1:单节点sql 超过了128kb限制 可以试试减少一些中文注释,或者拆分到两个sql节点运行下
    回答2:不能突破呀 把子查询放到临时表里 这样拆分呢,此回答整理自钉群“DataWorks交流群(答疑@机器人)”

    2023-07-22 16:20:27
    赞同 展开评论 打赏

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

相关产品

  • 大数据开发治理平台 DataWorks
  • 相关电子书

    更多
    DataWorks数据集成实时同步最佳实践(含内测邀请)-2020飞天大数据平台实战应用第一季 立即下载
    DataWorks调度任务迁移最佳实践-2020飞天大数据平台实战应用第一季 立即下载
    DataWorks商业化资源组省钱秘籍-2020飞天大数据平台实战应用第一季 立即下载