首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sqoop PSQLException“对不起,已经有太多客户了”

Sqoop PSQLException“对不起,已经有太多客户了”
EN

Stack Overflow用户
提问于 2014-12-12 15:20:09
回答 1查看 266关注 0票数 1

当将大表(200+百万行)从HDFS导出到Postgres时,我看到Sqoop抛出了PSQLException“对不起,太多客户端了”。我有几张较小的桌子(大约300万张),似乎运转得很好。

即使大型表出现故障,我似乎仍有200万行进入postgres表,但我猜这仅仅是因为工人们没有死,因为他们首先得到了其中一个连接。我的Postgres表被配置为允许300个max_connections,并且大约有70个来自其他应用程序的活动连接,因此SQOOP应该有230个可以使用的连接。

我在SQOOP导出命令中尝试在2-8之间切换--num-mappers,但这似乎没有多大区别。查看作业跟踪器中失败的hadoop作业,在地图阶段显示"Num任务“为3 660,”失败/死亡任务尝试“显示184/273,如果这有帮助的话

是否要设置最大的连接#以供使用?还有什么我能做的吗?乐意提供更多的信息,如果需要的话。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-12 17:26:30

我想出了具体的方案。我想分享一下我的发现:

问题的核心是一次同时运行的映射任务的数量。

  • 大型表有280个同时运行的地图任务(共计3 660个)
  • 列表项小表有180个同时运行的映射任务(总计180个)。

由于这个原因,任务已经没有连接了,因为280中的每一个都会尝试生成一个连接,而现有的70 is > 300。因此,我有两个选择:(1)稍微增加postgres的max_connection限制,或者(2)减少一次运行的映射任务的数量。

自从我控制了数据库,把max_connections提高到400个,我就开始了(1),然后继续生活。

FWIW,看起来(2)可以执行以下操作,但我无法测试它,因为我无法控制HDFS集群:

https://hadoop.apache.org/docs/r1.0.4/mapred-default.html

mapred.jobtracker.maxtasks.per.job

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27446692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档