【发布时间】:2015-11-11 00:06:48
【问题描述】:
我正在尝试创建一个自定义 Flume HTTPSourceHandler 来处理在 HTTP 请求的 POST 正文中发送的文件的内容,并且该帖子的有效负载将被压缩。
我是 Flume 的新手,并且正在努力理解如何将这个 GZip 文件的内容(或与此相关的任何数据)作为 Flume 事件返回。
这是我正在处理的一些不完整的代码。现在的主要目标是简单地将文件控制台打印到控制台。
任何提示、示例等都会非常有帮助。
import org.apache.flume.Event;
import org.apache.flume.source.http.HTTPSourceHandler;
import org.apache.http.HttpHeaders;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.GZIPInputStream;
public class HttpGzipHandler extends HTTPSourceHandler{
public HttpGzipHandler(){
}
public List<Event> getEvents(HttpServletRequest request) throws Exception {
boolean isGzipped = request.getHeader(HttpHeaders.CONTENT_ENCODING) != null
&& request.getHeader(HttpHeaders.CONTENT_ENCODING).contains("gzip");
GZIPInputStream gzipInputStream = new GZIPInputStream(request.getInputStream());
List<Event> eventList = new ArrayList<Event>(0);
//TODO: Return the Events
}
}
【问题讨论】: