hadoop生态_大数据学习笔记6——hadoop生态圈之初识flume

前期回顾:

大数据学习笔记1——hdfs架构原理

大数据学习笔记2——hdfs安装及相关配置文件的设置

大数据学习笔记3——hdfs 文件系统shell命令(1)

大数据学习笔记4——hdfs 文件系统shell命令(2)

大数据学习笔记5——hdfs 文件系统shell命令(3)

今天说说hadoop生态圈中用于数据采集的组件:flume

1、 flume概念(cloudera开源)

flume是一种分布式、可靠且可用的服务,用于高效收集、聚集和移动大量测井数据。它具有基于流式数据流的简单灵活的体系结构。它是健壮的和容错的,具有可调的可靠性机制和许多故障转移和恢复机制。它使用简单的可扩展数据模型,允许在线分析应用。

2、flume特点

可靠性:数据不丢失

可扩展:各组件数目可扩展

高性能:吞吐率高

可管理:动态增加和删除组件。channel和sink可插拔

3、flume的核心组件

Flume的核心组件Agent包括Source【源】、Sink【接收器】、Channel【通道】。

hadoop生态_大数据学习笔记6——hadoop生态圈之初识flume_第1张图片

flume核心组件

Flume组件接收由外部源(如web服务器)传递给它的事件。外部源以目标Flume source可识别的格式向Flume发送事件。例如,一个Avro flume source可用于从Avro客户端接收Avro事件,或接收从同一事件流中其他Agent的Avro Sink发出的事件。当一个Flume Source接收到一个事件时,它将其存储到一个或多个Channel中。Channel是一个被动存储,它保存事件,直到Sink接收了该事件为止。文件Channel就是一个例子——它由本地文件系统支持。Sink从Channel中移除事件,并将其放入诸如HDFS(通过Flume HDFS接收)之类的外部存储库中,或将其转发到流中的下一个Agent的Source中。给定代理中的源和接收器与通道中暂存的事件异步运行。

4、flume的配置

Flume Agent配置存储在本地配置文件中。这是一个遵循Java属性文件格式的文本文件。可以在同一个配置文件中指定一个或多个代理的配置。配置文件包括代理中Agent的每个源Source、接收器Sink和通道Channel的属性,以及它们如何连接在一起形成数据流。

下面是一个单节点Flume部署示例。该配置允许用户生成事件,然后将它们记录到控制台。

# example.conf: 一个简单的flume配置文件示例
# 为agent组件命名a1.sources = r1a1.sinks = k1a1.channels = c1# 配置数据源SOURCEa1.sources.r1.type = netcata1.sources.r1.bind = localhosta1.sources.r1.port = 555# 配置接收器SINKa1.sinks.k1.type = logger# 配置通道CHANNELa1.channels.c1.type = memorya1.channels.c1.capacity = 1000a1.channels.c1.transactionCapacity = 100# 关联数据源和接收器到通道a1.sources.r1.channels = c1a1.sinks.k1.channel = c1

这个配置定义了一个名为a1的代理Agent。a1有一个监听端口555上的数据的源Source、一个缓冲内存中事件数据的通道Channel和一个将事件数据记录到控制台的接收器Sink。配置文件命名各个组件,然后描述它们的类型和配置参数。一个给定的配置文件可以定义几个指定的代理;当启动给定的Flume进程时,将传递一个标志,告诉它要显示哪个指定的代理。

5、启动flume

$ bin/flume-ng agent --conf conf --conf-file example.conf --name a1 -Dflume.root.logger=INFO,console

6、监控消息

从一个独立的终端,我们可以telnet端口555,发送Flume事件

$ telnet localhost 555Trying 127.0.0.1...Connected to localhost.localdomain (127.0.0.1).Escape character is '^]'.Hello world! OK

另一个Flume终端窗口将在日志消息中输出从555端口发来的事件。

INFO source.NetcatSource: Source startingINFO source.NetcatSource: Created serverSocket:sun.nio.ch.ServerSocketChannelImpl[/127.0.0.1:555]INFO sink.LoggerSink: Event: { headers:{} body: 48 65 6C 6C 6F 20 77 6F 72 6C 64 21 0D          Hello world!. }

你可能感兴趣的:(hadoop生态,hadoop生态圈)