我正试图通过oozie运行java代码。代码是为非代理环境编写的,但我正在尝试在需要代理服务器设置的环境中实现它。这是我运行作业时遇到的错误。
2015-05-18 09:22:26,929 WARN com.amazonaws.http.AmazonHttpClient: Unable to execute HTTP request: connect timed out
java.net.SocketTimeoutException: connect timed out
现在,这是预期的行为,因为我需要通过代理传递该行为,但是问题是,我没有看到与命中代理的连接。所有这些都试图直接连接到internet,并被防火墙阻止。
我已经为所有hadoop节点的所有连接设置了通用代理(因为它们在某个时候都需要它) /etc/hadoop/conf/mapred-site.xml
属性:
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx1024m -Dhttp.proxyHost=1.1.1.1 -Dhttp.proxyPort=8080 -Dhttps.proxyHost=1.1.1.1 -Dhttps.proxyPort=8080 -Dhttp.nonProxyHosts=localhost|127.0.0.1|*.localdomain</value>
<final>false</final>
</property>
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx1024m -Dhttp.proxyHost=1.1.1.1 -Dhttp.proxyPort=8080 -Dhttps.proxyHost=1.1.1.1 -Dhttps.proxyPort=8080 -Dhttp.nonProxyHosts=localhost|127.0.0.1|*.localdomain</value>
<final>false</final>
</property>
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx1024m -XX:+UseConcMarkSweepGC -Dhttp.proxyHost=1.1.1.1 -Dhttp.proxyPort=8080 -Dhttps.proxyHost=1.1.1.1 -Dhttps.proxyPort=8080 -Dhttp.nonProxyHosts=localhost|127.0.0.1|*.localdomain</value>
<final>false</final>
</property>
然而,连接仍然是通过直接通过互联网只是绕过这些设置。我有另一个工作,通过这个代理成功地调用了外部api,所以我知道这个设置可以工作,只是不知道为什么它不能与amazon3client一起工作
有没有办法在不改变代码的情况下实现这一点?
1条答案
按热度按时间64jmpszr1#
问题是应用程序附带的s3库。它根本不支持代理。所以在我的情况下,如果不更正代码,就没有办法做到这一点。