
flume
大数据之flume
赶路人儿
一个十年以上编程人员,擅长使用java、python、C++等语言,具有广告投放、个性化推荐引擎等超大规模系统开发经验。
展开
-
Spark和Flume-ng整合
如何将Flune-ng里面的数据发送到Spark,利用Spark进行实时的分析计算。本文将通过Java和Scala版本的程序进行程序的测试。Spark和Flume-ng的整合属于Spark的Streaming这块。在讲述如何使用Spark Streaming之前,我们先来了解一下什么是Spark Streaming,在Spark官方文档是这么描述的(英文我就不翻译了,里面没有很复杂的语句):...转载 2018-10-15 20:59:50 · 900 阅读 · 0 评论 -
Flume之监控
Flume作为一个日志收集工具,在数据采集方面,展现出了非常强大的能力。它的SOURCE、SINK、CHANNEL三大组件这种模式,来完成数据的接收、缓存、发送这个过程,拥有非常完美的契合度。不过这里,我们要说的不是Flume有多好或者Flume有哪些优点,我们要谈的是Flume的监控。1、为什么需要Flume监控?Flume作为一个强大的数据收集工具,虽然功能非常强大实用,但是却无法看到f...转载 2018-10-15 17:39:25 · 2575 阅读 · 0 评论 -
Hive读取Flume正在写入的HDFS
Hive的表创建为外部分区表,例如: USE mydb;CREATE EXTERNAL TABLE mytable( c1 String, c2 INT, c3 INT, create_time String)PARTITIONED BY (dt STRING)ROW FORMAT DELIMITED FIELDS TERMINATED转载 2017-12-25 17:30:24 · 1928 阅读 · 0 评论 -
flume之Channel
Channels 是一个 Agent上存储 events 的仓库,Source 向其中添加 events,而 Sink从中取走移除 events。本文重点介绍memory channel和file channel。1、memory channel:Source 添加的 events 都暂存在内存队列中,它非常适合那些需要更高吞吐量的数据流,但代价是一旦一个 agent 失败后,其中存储的e原创 2017-12-01 14:46:24 · 2759 阅读 · 0 评论 -
flume1.6自定义elasticsearch2.3的sink插件
目前官方Flume最新的版本仍然不支持Elasticsearch2.x版本,flume的老版本(1.6)只支持Elasticsearch1.7.x的版本,因为Elasticsearch2.x版本做了比较大的改动,很多API都已经废弃不用了。在github上找了一个项目:https://github.com/lucidfrontier45/ElasticsearchSink2 也是按照flum原创 2017-12-01 10:20:40 · 1873 阅读 · 0 评论 -
Flume中的HDFS Sink配置参数说明
Flume中的HDFS Sink应该是非常常用的,其中的配置参数也比较多,在这里记录备忘一下。channeltype:hdfspath:写入hdfs的路径,需要包含文件系统标识,可以使用flume提供的日期及%{host}表达式。比如:hdfs://namenode/flume/webdata/filePrefix:写入hdfs的文件名前缀,可以使用flume提供的日期转载 2017-10-19 18:38:42 · 3651 阅读 · 0 评论 -
flume-ng原理介绍
Flume NG是Cloudera提供的一个分布式、可靠、可用的系统,它能够将不同数据源的海量日志数据进行高效收集、聚合、移动,最后存储到一个中心化数据存储系统中。由原来的Flume OG到现在的Flume NG,进行了架构重构,并且现在NG版本完全不兼容原来的OG版本。经过架构重构后,Flume NG更像是一个轻量的小工具,非常简单,容易适应各种方式日志收集,并支持failover和负载均衡转载 2017-10-17 11:59:30 · 655 阅读 · 0 评论 -
flume之kafka source
对于线上业务系统来说,有的时候需要对大量的数据进行统计,如果直接将数据保存到本地文件(例如使用log4j)可能会拖慢线上系统。那么,最好的方式是将大量的数据通过jms(例如:kafka)发送到消息服务器,消息中间件后面再对接flume来完成数据统计等需求。接下来,我们来介绍一下flume 的kafka source。一、理论: #-------- kafkaSour...原创 2017-10-17 10:33:49 · 14170 阅读 · 0 评论 -
flume高级配置——数据流的复制、分流、负载均衡、故障转移
一、在前面几篇文章中介绍过几种常见的flume pipeline 场景。我们在回顾一下,主要有一下几种:1、多个 agent 顺序连接:可以将多个Agent顺序连接起来,将最初的数据源经过收集,存储到最终的存储系统中。这是最简单的情况,一般情况下,应该控制这种顺序连接的Agent的数量,因为数据流经的路径变长了,如果不考虑failover的话,出现故障将影响整个Flow上的Agen原创 2017-10-13 17:10:32 · 3236 阅读 · 0 评论 -
flume之常用sink详解
1、Logger Sink 记录INFO级别的日志,一般用于调试。前面介绍Source时候用到的Sink都是这个类型的Sink必须配置的属性: type logger maxBytesToLog 16 Maximum number of bytes of the Event body to log原创 2017-09-30 10:25:44 · 9235 阅读 · 0 评论 -
flume之自定义sink组件
flume内部提供了很多种sink,如:logger、file_roll、avro、hdfs、kafak、es等,方便直接将event数据对接到本地磁盘、或者其他第三方存储中。有的时候,我们需要自定义source,来完成特殊需求。本文介绍如何开发自定义sink,来实现将event数据存储到Mysql。1、pom.xml <?xml version="1.0"?><...原创 2017-09-29 17:42:53 · 5306 阅读 · 0 评论 -
flume之intercept
flume是以多种组件形成的一个框架,最最常用的三种组件有:source、channel、sink。这三个组件分别来完成事件(event)数据的“收集”、“传递”、“写入”的功能,一般需求都可以通过这三种组件来满足其需求,但是在一些特殊场景下,我们需要在event数据流向中间,加入一些自定义的逻辑,这时候intercept组件就发挥了作用。拦截器设置在source和channel之间,sour...原创 2017-09-29 16:54:59 · 1062 阅读 · 0 评论 -
flume使用之flume+hive 实现日志离线收集、分析
在如今互联网行业中,数据的收集特别是日志数据的收集已经成为了系统的标配。将用户行为日志或者线上系统生产的数据通过flume收集起来,存放到数据仓库(hive)中,然后离线通过sql进行统计分析,这一套数据流的建设对系统有非常重要的意义。 1、思路:1)线上系统通过log4j将数据打印到本地磁盘上;2)在线上系统服务器上安装flume,作为agent使用exec source将线上系...原创 2017-09-29 16:46:43 · 10186 阅读 · 0 评论 -
flume使用之exec source收集各端数据汇总到另外一台服务器
一、场景一描述:线上api接口服务通过log4j往本地磁盘上打印日志,在接口服务器上安装flume,通过exec source收集日志,然后通过avro sink发送到汇总服务器上的flume;汇总服务器上的flume通过avro source接收日志,然后通过file_roll sink写到本地磁盘。假设:api接口服务器两台 10.153.140.250和10.153.140.25...原创 2017-09-29 14:19:09 · 6590 阅读 · 0 评论 -
flume使用之httpSource
flume自带很长多的source,如:exe、kafka...其中有一个非常简单的source——httpsource,使用httpSource,flume启动后会拉起一个web服务来监听指定的ip和port。常用的使用场景:对于有些应用环境中,不能部署Flume SDK及其依赖项,可以在代码中通过HTTP而不是Flume的PRC发送数据的情况,此时HTTP SOURCE可以用来将数据接收到Fl...原创 2017-09-29 10:51:39 · 10676 阅读 · 3 评论 -
Flume-ng禁用自动加载配置文件功能
默认情况下,Flume中的PollingPropertiesFileConfigurationProvider会每隔30秒去重新加载Flume agent的配置文件,如果监听到配置文件变化了,Flume会试图重新加载变化的配置文件。判断配置文件是否变化主要是基于文件的最后修改时间来的,代码片段如下://////////////////////////////////////////////转载 2017-03-20 16:56:51 · 1881 阅读 · 0 评论 -
flume之Http Source
一、介绍flume自带的Http Source可以通过Http Post接收事件。场景:对于有些应用程序环境,它可能不能部署Flume SDK及其依赖项,或客户端代码倾向于通过HTTP而不是Flume的PRC发送数据的情况,此时HTTP SOURCE可以用来将数据接收到Flume中。从客户端的角度看,HTTP SOURCE表现的像web服务器一样能接收flume事件转载 2017-03-18 23:17:24 · 9292 阅读 · 2 评论 -
flume自定义组件的 jar 包管理
自定义flume 组建后,将项目打成jar 包,关于这个jar 包的管理和使用我在这里列举了三中方式。这三种方式都可以,随自己喜好使用。1. lib 目录将maven项目打成jar包,将jar 包放到flume的lib 目录下。此方法简单粗暴,缺点就是jar 包不易管理2. 官方给定目录官方建议在flume的 目录下创建 一个自己定义的目录,在自定义的目录下转载 2017-03-07 09:49:22 · 1861 阅读 · 1 评论 -
flume报错:Sinks are likely not keeping up with sources, or the buffer size is too tight
使用flume收集日志,在agent的日志中发现如下错误信息:Caused by: org.apache.flume.ChannelException: Space for commit to queue couldn't be acquired Sinks are likely not keeping up with sources, or the buffer size is too ti原创 2017-03-04 15:39:25 · 4062 阅读 · 1 评论 -
flume简介
Flume是一个分布式、可靠、和高可用的海量日志聚合的系统(使用java编写,需要运行在jdk6或以上环境),支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。Flume分为两个主要打Flume OG:Flume original generation 即Flume 0.9.x版本Flume NG:Flume n原创 2017-03-04 12:47:52 · 879 阅读 · 0 评论