gpt4 book ai didi

http - hadoop 映射作业中的 HTTP 请求问题

转载 作者:可可西里 更新时间:2023-11-01 14:59:31 26 4
gpt4 key购买 nike

我有一个过程,我在其中聚合数据并通过 map 作业中的 http POST 发送请求。我必须等待结果。不幸的是,我在使用这种方法时遇到了问题。

这样做时,发送过程中会丢失数据。我们设法调查了这个问题,以至于我们知道通信“破坏”了套接字,因此数据丢失了。有没有人有通过映射器执行 http POST 请求的经验以及需要注意什么?

一些示例代码;映射器:

public void map(final LongWritable key, final Text value, Context context) throws IOException {
String someData = value.toString();
buffer.add(someData);

if (buffer.size() >= MAX_BUFFER_SIZE) {
emit(buffer);
}
}
}

在“发出”中,我序列化数据(这很好,我测试了几次)然后发送;发件人:

byte[] received = null;
URL connAddress = new URL(someComponentToBeAdressed);
HttpURLConnection urlConn;
urlConn = (HttpURLConnection) connAddress.openConnection();

urlConn.setDoInput(true);
urlConn.setDoOutput(true);
urlConn.setRequestMethod("POST");
urlConn.setRequestProperty("Content-type", "text/plain");

urlConn.getOutputStream().write(serialized_buffer);
urlConn.getOutputStream().flush();
urlConn.getOutputStream().close();

received = IOUtils.toByteArray(urlConn.getInputStream());
urlConn.disconnect();

提前致谢

最佳答案

我们可以解决这个问题。这在 hadoop 中没有错误,错误在于我们的 apache tomcat 配置一些超时,其中设置了一个很小的时间段。对于一些更大的数据 block ,我们克服了超时时间并得到了错误。不幸的是,异常(exception)情况并没有那么有用。

关于http - hadoop 映射作业中的 HTTP 请求问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13581030/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com