一. 入门:安装、部署、及简单案例
Flume 的安装,介绍,特性,核心概念等在这就不再赘述,请参考 http://www.aboutyun.com/thread-8917-1-1.html ,作者的介绍和案例都比较详细
二. HttpSource 使用小结
这次主要拿 Flume 的HttpSource 做案例,用到了 File Roll Sink , HDFS Sink, 以实现将Http 的请求体 存到本地、 存到HDFS、及存到 Hive库的目的
HttpSource 的案例请参考 https://my.oschina.net/pengqiang/blog/537380?p= (需注意里面的http_test.conf 配置有一处拼写错误)
注意几点:
(1) HttpSource source 默认采用的handler 是 org.apache.flume.source.http.JSONHandler , 它的接收体是 List<Event>, 换言之它的接收体 是一个JsonArray,而且是有固定格式的 JsonArray, 其格式为 [{"headers":{"":""},"body":"the first event"},{"headers":{"":""},"body":"the second event"}], 即最外层必须是 [], header 是一个键值对map ,body 则是个字符串 ,例如 想发送 {"username":"xyz",
"password":"123"} 这样的json串, 应写成 [{"body":"{'username':'xyz','password':'123'}"}]
(2) 控制台在输出日志时,仅输出body数据16字节内的数据,大于16字节将不会显示,但其实是完整收到了
(3) 需要自定义请求格式,只需自定义handler实现 HTTPSourceHandler ,并重写其 getEvents() 方法即可