1.flume介绍:
flume是个日志收集系统,这个日志收集系统由一个或多个agent(代理)构成,每个agent由三部分组成:Source,Channel,Sink,
上面的数据流是,从数据产生,到收集,再到存储。
2.flume配置与安装
flume作为一个数据采集工具,可以有一台,也可以由多台,本身并不依赖于hadoop,但是如果是sink的位置是HDFS,则需要导入hadoop
对应的一些相关jar包。
flume 数据采集服务,可以部署一个或者多个,不依赖与hadoop1.上传tar包
2.解压
tar -zxvf apache-flume-1.5.0-bin.tar.gz -C /usr/itcast
3.修改配置文件
flume-env.sh.template修改JAVA_HOME=/usr/itcast/jdkJAVA_OPTS="-Xms100m -Xmx200m -Dcom.sun.management.jmxremote"可以修改内存4.写agent(输出到控制台的)
在/usr/itcast/flume/conf/agent/ 这个路径下创建a2.conf(文件位置可以随意,但是一定要与flume启动时对应的命令参数相匹配)内容是:#定义agent名, source、channel、sink的名称a2.sources = r1a2.channels = c1a2.sinks = k1
#具体定义source(数据源),执行命令是exec tail -F ,也就是说监控/usr/itcast/usr/a.log 这个文件的内容,也可以是目录a2.sources.r1.type = execa2.sources.r1.command = tail -F /usr/itcast/usr/a.log
#具体定义channel(管道),暂时存储到内从中a2.channels.c1.type = memorya2.channels.c1.capacity = 1000a2.channels.c1.transactionCapacity = 100
#具体定义sink(接收器),输出到控制台a2.sinks.k1.type = logger
#组装source、channel、sinka2.sources.r1.channels = c1a2.sinks.k1.channel = c1
5.启动flume
flume-ng agent -n a2 -f /usr/itcast/flume/conf/agent/a2.conf -c conf -Dflume.root.logger=INFO,console
6.配置agent(采集数据到hdfs中)
在/usr/itcast/flume/conf/agent/ 这个路径下创建a4.conf(文件位置可以随意,但是一定要与flume启动时对应的命令参数相匹配)
#定义agent名, source、channel、sink的名称a4.sources = r1a4.channels = c1a4.sinks = k1
#具体定义source,监控的目录是/home/hadoop/logs,a4.sources.r1.type = spooldira4.sources.r1.spoolDir = /home/hadoop/logs
#具体定义channela4.channels.c1.type = memorya4.channels.c1.capacity = 10000a4.channels.c1.transactionCapacity = 100
#定义拦截器,为消息添加时间戳a4.sources.r1.interceptors = i1a4.sources.r1.interceptors.i1.type = org.apache.flume.interceptor.TimestampInterceptor$Builder
#具体定义sinka4.sinks.k1.type = hdfsa4.sinks.k1.hdfs.path = hdfs://ns1/flume/%Y%m%da4.sinks.k1.hdfs.filePrefix = events-a4.sinks.k1.hdfs.fileType = DataStream#不按照条数生成文件a4.sinks.k1.hdfs.rollCount = 0#HDFS上的文件达到128M时生成一个文件a4.sinks.k1.hdfs.rollSize = 134217728#HDFS上的文件达到60秒生成一个文件a4.sinks.k1.hdfs.rollInterval = 60
#组装source、channel、sinka4.sources.r1.channels = c1a4.sinks.k1.channel = c1
7.启动flume
flume-ng agent -n a4 -f /usr/itcast/flume/conf/agent/a4.conf -c conf -Dflume.root.logger=INFO,console
8.如果flume这台机器上上本身没有安装hadoop,则hdfs作为数据收集器时,需要将相关的jar拷贝到lib下要依赖的hadoop的jar包(启动时会报异常,缺少jar包)拷贝hadoop-common-2.4.1.jar(hadoop-2.4.1\share\hadoop\common) 到/usr/itcast/flume/lib拷贝commons-configuration-1.6.jar(hadoop-2.4.1\share\hadoop\common\lib) 到/usr/itcast/flume/lib拷贝hadoop-hdfs-2.4.1.jar(hadoop-2.4.1\share\hadoop\hdfs) 到/usr/itcast/flume/lib拷贝hadoop-auth-2.4.1.jar(hadoop-2.4.1\share\hadoop\common\lib) 到/usr/itcast/flume/lib