amazon红移:查询执行挂起

c9x0cxw0  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(479)

我使用amazon redshift,有时查询执行挂起而没有任何错误消息,例如,此查询将执行:

select extract(year from date), extract(week from date),count(*) from some_table  where date>'2015-01-01 00:00:00' and date<'2015-12-31 23:59:59' group by extract(year from date), extract(week from date)

这不是:

select extract(year from date), extract(week from date),count(*) from some_table  where date>'2014-01-01 00:00:00' and date<'2014-12-27 23:59:59' group by extract(year from date), extract(week from date)

但只有当我将项目部署到服务器并在本地计算机上执行所有查询时,才会发生这种情况。
我已经在代码中设置了 autoCommit=true 用于连接。还有上面列出的我使用这个库对grails所做的所有事情

compile 'com.amazonaws:aws-java-sdk-redshift:1.9.39'

有什么想法吗?

ltqd579y

ltqd579y1#

从ec2示例连接到redshift时遇到此问题。调整mtu没有帮助,所以我继续挖掘,发现这个错误与tcp超时有关。
在我用来连接到redshift的示例中执行以下操作修复了问题:


# echo 60 > /proc/sys/net/ipv4/tcp_keepalive_time

这将把tcp keepalive从7200秒(默认值)更改为60秒。
更多信息请参见:http://docs.aws.amazon.com/redshift/latest/mgmt/connecting-firewall-guidance.html

7uzetpgm

7uzetpgm2#

这可能不是一个确切的答案,但它的评论太长。
你可能想检查一下 mtu 在执行执行的服务器上设置。
红班要给他做手术 1500 字节帧和所有ec2示例默认设置为巨型帧( 9000 )
为了运行查询而没有问题,您需要具有相同的 mtu 设置。
要检查当前拥有的内容,请运行以下命令: ip addr show eth0 输出示例如下: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP qlen 1000 在本例中,mtu为9001,因此需要通过运行以下命令将其更改为1500: /sbin/ifconfig eth0 mtu 1500 up

相关问题