flume的简单使用

 flume是一个分布式的海量数据收集框架。

在hadoop0上部署一个flume agent

1.把apache-flume-1.4.0-bin.tar.gz和apache-flume-1.4.0-src.tar.gz在hadoop0上解压缩

2.把解压缩后的apache-flume-1.4.0-src文件夹中的内容全部复制到apache-flume-1.4.0-bin文件夹中。

3.修改conf目录下的两个文件的名称,一个是flume-env.sh,一个是flume-conf.properties

  其中在flume-env.sh中设置了JAVA_HOME的值

4.示例:把磁盘文件夹中文件通过flume上传到hdfs中

4.1 在conf目录下创建一个文件,叫做test.conf,文件内容如下:

 

 

#配置代理

#a1是一个代理名称,s1是source的名称,sink1是sink的名称,c1是channel的名称

a1.sources = s1

a1.sinks = sink1

a1.channels = c1

#配置一个专用于从文件夹中读取数据的source

a1.sources.s1.type =spooldir

a1.sources.s1.spoolDir =/apache_logs                                                    #值apache_logs表示数据文件的目录

 

a1.sources.s1.fileSuffix=.abc                                                     #值.abc表示数据文件被处理完后,被重命名的文件名后缀

a1.sources.s1.channels =c1                                              #值c1表示source接收数据后送到的channel的名称

#配置一个专用于把输入写入到hdfs的sink

a1.sinks.sink1.type= hdfs

a1.sinks.sink1.hdfs.path=hdfs://hadoop0:9000/apache_logs        #值表示目的地

a1.sinks.sink1.hdfs.fileType=DataStream                                                     #值DataStream表示文件类型,是不经过压缩的

a1.sinks.sink1.hdfs.writeFormat=Text                                                     #值表示写出文件原内容

a1.sinks.sink1.channel =c1                                               #值c1表示sink处理数据的来源

#配置一个内存中处理的channel

a1.channels.c1.type= memory

a1.channels.c1.capacity= 1000

a1.channels.c1.transactionCapacity= 100

 

===================================================================================================

 

启动flume的命令是  bin/flume-ng agent -n a1 -cconf -f conf/test.conf -Dflume.root.logger=DEBUG,console

Apache Flume是一个开源的数据收集系统,它主要用于实时数据管道的构建,常用于日志收集、监控指标传输等场景。Flume的设计理念是解决大量分布式系统的日志收集问题,其核心思想是将数据源产生的数据分批次地发送到一个或多个目的地。 以下是Flume的一些关键组件和简单使用步骤: 1. **Source(源头)**:这是数据进入Flume的第一站,常见的源有syslog、JDBC、Kafka等,它们负责监听特定的应用日志并将其发送给Flume。 2. **Channel(通道)**:类似于数据缓冲区,Source发送的数据会暂存于此。Flume支持多种类型的Channel,如Memory Channel、File Channel、 JDBC Channel等,它们决定了数据如何存储和处理。 3. **Sink(终点)**:数据从Channel传递至此,常见的sink包括HDFS、HBase、Solr、Elasticsearch等,用于持久化数据到最终的目标存储系统。 **简单使用示例**: ```shell # 创建配置文件(例如:flume.conf) source > source_agent = org.apache.flume.source.netcat.NetCatSource[bind="localhost:4440", port=4440] channel > channel = org.apache.flume.channel.MemoryChannel[channelCapacity=1000] sink > sink = org.apache.flume.sink.ConsoleSink[channel=channel] # 在配置文件中定义流(即Source -> Channel -> Sink的路径) agent.sources.source_agent > channels = {ch1 => channel} agent.sinks.sink.type = ConsoleSink # 启动Flume bin/flume-ng agent -f conf/flume.conf start ``` 在这个例子中,我们创建了一个NetCat Source监听4440端口,数据通过内存通道再发送到控制台。启动`flume-ng agent`命令后,就可以开始接收并显示来自指定源的数据了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值