什么是Flume
1.什么是Flume
FLUME 是HADOOP生态圈中的一个组件。主要应用于实时数据的流处理,比如一旦有某事件触发(如本地交易引起的数据改动)可以将实时的日志数据发向HADOOP文件系统HDFS中
FLUME 可以将数量庞大的数据从各项数据资源中集中起来存储的工具/服务,或者数集中机制。所以它还有较强的缓存作用.
Flume具有较高的容错性。例如当收集数据的速度超过将写入数据的时候,即超过了系统的写入数据能力的时候,Flume会在数据生产者和数据收容器间做出调整,保证其能够在两者之间提供可推送的平稳数据
FLUME支持多路径流量,多管道接入流量,多管道接出流量。例如FLUME的数据发出源及目的地可以是不同类别的比如社交媒体, 关系型数据库HBASE HDFS 前端控制台也可以是其他流工具如SPARK STREAM,Kafka,甚至其它的FLUME
用一个故事理解: 有一个池子,它一头进水,另一头出水,进水口可以配置各种管子,出水口也可以配置各种管子,可以有多个进水口、多个出水口。水术语称为Event,进水口术语称为Source、出水口术语成为Sink、池子术语成为Channel,Source+Channel+Sink,术语称为Agent。如果有需要,还可以把多个Agent连起来。
FLUME AGENT的内部架构
这里写图片描述
2.环境搭建
官网下载地址(apache-flume-1.8.0-bin.tar.gz):http://flume.apache.org/download.html
解压:tar zxf apache-flume-1.8.0-bin.tar.gz
修改配置文件:
vim apache-flume-1.8.0-bin/conf/myagent.conf #文件名随意
1
文件里添加一下配置(HDFS):
myagent.sources= eventDir
myagent.channels= memoryChannel
myagent.sinks= eventHDFS
myagent.sources.eventDir.type= spooldir
myagent.sources.eventDir.spoolDir= /home/cloudera/events
myagent.sources.eventDir.fileHeader= true
myagent.channels.memoryChannel.type= memory
myagent.channels.memoryChannel.capacity= 10000
myagent.channels.memoryChannel.transactioncapacity= 1000000
myagent.sinks.eventHDFS.type= hdfs
myagent.sinks.eventHDFS.hdfs.fileType= DataStream
myagent.sinks.eventHDFS.hdfs.path= /temp/events
myagent.sinks.eventHDFS.hdfs.writeFormat= Text
myagent.sinks.eventHDFS.hdfs.batchSize=10000
myagent.sources.eventDir.channels= memoryChannel
myagent.sinks.eventHDFS.channel= memoryChannel
运行(HDFS)
./bin/flume-ng www.huachengjpt.com agent -n spooldir -c conf -f conf/spooldir.conf
1
参数说明: -n 指定agent名称(与配置文件中代理的名字相同)
-c 指定flume中配置文件的目录
-f 指定配置文件
-Dflume.root.logger=DEBUG,console 设置日志等级
把数据放在/home/cloudera/events里面 source组件就可以获取到数据。
- 下面为详细配置文件说明:
myagent.sources= eventDir
myagent.channels= memoryChannel
myagent.sinks= eventHDFS
#这里给agent (名字是myagent, 可以是任起的) 中sources、sinks、channels分别起名--eventDir,memoryChannel以及eventHDFS。这样以后就可以引用这些名字在配置文件或命令行中描述各种操作或关系
myagent.sources.eventDir.type= spooldir #指定source的类型
myagent.sources.eventDir.spoolDir= /home/cloudera/events #Source用来监听一个指定的目录/user/me/events
myagent.sources.eventDir.fileHeader= true
myagent.channels.memoryChannel.type= memory #设置channel为内存型
myagent.channels.memoryChannel.capacity= 10000 #设置内存管道中存储事件数目上限
myagent.channels.memoryChannel.transactioncapacity= 1000000 #设置内存管道中传送事件数目上限
myagent.sinks.eventHDFS.type= hdfs #设置sink的传输类型
myagent.sinks.eventHDFS.hdfs.fileType= DataStream #设置sink接收的文件类型
myagent.sinks.eventHDFS.hdfs.path= /temp/events #设置sink接收的文件目的地即HDFS下的路径
myagent.sinks.eventHDFS.hdfs.writeFormat= Text #设置sink文件写入格式Text
myagent.sinks.eventHDFS.hdfs.batchSize=10000 #设置一次性写入事件数10000
#设置channel = memoryChannel 桥接source和sink
myagent.sources.eventDir.channels= memoryChannel
myagent.sinks.eventHDFS.channel= www.tkcyl1.com memoryChannel
2 . Source监听可以指定一个网络端口,即只要应用程序向这个端口里面写数据,这个source组件就可以获取到信息然后写入到channle。
则sink配置如下:
myagent.sources.eventNet.type = netcat
myagent.sources.eventNet.bind= 192.168.60.61 #虚拟机ip
myagent.sources.eventNet.port = 84447 #端口
1
2
3
完整配置如下:
spooldir.sources= eventDir
spooldir.channels= memoryChannel
spooldir.sinks= eventHDFS
spooldir.sources.eventDir.type= spooldir
spooldir.sources.eventDir.spoolDir=/home/hadoop/spooldir
spooldir.sources.eventDir.fileHeader= true
spooldir.channels.memoryChannel.type= memory
spooldir.channels.memoryChannel.capacity= 10000
spooldir.channels.memoryChannel.transactioncapacity= 1000000
spooldir.sources.eventDir.type=netcat
spooldir.sources.eventDir.bind=192.168.110.131
spooldir.sources.eventDir.port=44444
spooldir.sinks.eventHDFS.type= logger
spooldir.sources.eventDir.channels= memoryChannel
spooldir.sinks.eventHDFS.channel= memoryChannel
运行(端口)
./bin/flume-ng agent -n spooldir -c conf -f conf/spooldir.conf -Dflume.root.logger=INFO,console
1
使用telnet发送数据
telnet 192.168.110.131 44444 hello world!(windows中运行的)
1
结果:
这里写图片描述
Spooling Directory www.caibaoyule.cn Source的两个注意事项:
①即:拷贝到spool目录下的文件不可以再打开编辑
②即:不能将具有相同文件名字的文件拷贝到这个目录下
什么是Flume的更多相关文章
- Flume1 初识Flume和虚拟机搭建Flume环境
前言: 工作中需要同步日志到hdfs,以前是找运维用rsync做同步,现在一般是用flume同步数据到hdfs.以前为了工作简单看个flume的一些东西,今天下午有时间自己利用虚拟机搭建了 ...
- Flume(4)实用环境搭建:source(spooldir)+channel(file)+sink(hdfs)方式
一.概述: 在实际的生产环境中,一般都会遇到将web服务器比如tomcat.Apache等中产生的日志倒入到HDFS中供分析使用的需求.这里的配置方式就是实现上述需求. 二.配置文件: #agent1 ...
- Flume(3)source组件之NetcatSource使用介绍
一.概述: 本节首先提供一个基于netcat的source+channel(memory)+sink(logger)的数据传输过程.然后剖析一下NetcatSource中的代码执行逻辑. 二.flum ...
- Flume(2)组件概述与列表
上一节搭建了flume的简单运行环境,并提供了一个基于netcat的演示.这一节继续对flume的整个流程进行进一步的说明. 一.flume的基本架构图: 下面这个图基本说明了flume的作用,以及f ...
- Flume(1)使用入门
一.概述: Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统. 当前Flume有两个版本Flume 0.9X版本的统称Flume-og,Flume1.X ...
- 大数据平台架构(flume+kafka+hbase+ELK+storm+redis+mysql)
上次实现了flume+kafka+hbase+ELK:http://www.cnblogs.com/super-d2/p/5486739.html 这次我们可以加上storm: storm-0.9.5 ...
- flume+kafka+spark streaming整合
1.安装好flume2.安装好kafka3.安装好spark4.流程说明: 日志文件->flume->kafka->spark streaming flume输入:文件 flume输 ...
- flume使用示例
flume的特点: flume是一个分布式.可靠.和高可用的海量日志采集.聚合和传输的系统.支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受 ...
- Hadoop学习笔记—19.Flume框架学习
START:Flume是Cloudera提供的一个高可用的.高可靠的开源分布式海量日志收集系统,日志数据可以经过Flume流向需要存储终端目的地.这里的日志是一个统称,泛指文件.操作记录等许多数据. ...
- Flume NG Getting Started(Flume NG 新手入门指南)
Flume NG Getting Started(Flume NG 新手入门指南)翻译 新手入门 Flume NG是什么? 有什么改变? 获得Flume NG 从源码构建 配置 flume-ng全局选 ...
随机推荐
- 发布.net core到Centos7
用到的软件如下 xshell,xftp,vs2017.3,centos 7.3 64位 安装环境 aliyun centos 7.3 64位 安装.net core 2.0 依赖的组件 yum ins ...
- struts2_E_commerce_maven
这是作业的第二题:使用struts实现电子商务网站,这是基于之前的代码的,所以,主要就是修改成为struts的mvc模式. 1.开始,先把以前做的一个maven项目修改成为另一个项目(简称重命名) 重 ...
- Bagging(R语言实现)—包外错误率,多样性测度
1. Bagging Bagging即套袋法,其算法过程如下: 从原始样本集中抽取训练集.每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次 ...
- 20155323刘威良《网络对抗》Exp4 恶意代码分析
20155323刘威良<网络对抗>Exp4 恶意代码分析 实践目标 1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件: ...
- 20155330 《网络对抗》 Exp8 Web基础
20155330 <网络对抗> Exp8 Web基础 实验问题回答 什么是表单 表单可以收集用户的信息和反馈意见,是网站管理者与浏览者之间沟通的桥梁. 一个表单有三个基本组成部分 表单标签 ...
- Java入门知识1
1. 获取标准屏幕的输入时,需导入java.util.Scanner包. 2. 主类的名称与.java的文件名需一致. 3. 文件中主类设置为public,其他类前面无需加访问级别. 4. 继承时,使 ...
- TensorFlow训练MNIST数据集(1) —— softmax 单层神经网络
1.MNIST数据集简介 首先通过下面两行代码获取到TensorFlow内置的MNIST数据集: from tensorflow.examples.tutorials.mnist import inp ...
- SpringBoot入门学习记录(一)
最近,SpringBoot.SpringCloud.Dubbo等框架非常流行,作为Coder里的一名小学生,借着改革开放的东风,自然也是需要学习学习的,于是将学习经历记录于此,以备日后查看. 官网:h ...
- Linux内核分析-两种方式使用同一个系统调用
实验部分 根据系统调用表,选取一个系统调用.我选得是mkdir这个系统调用,其系统调用号为39,即0x27 由于mkdir函数的原型为 int mkdir (const char *filename, ...
- word漏洞分析与利用
众所周知,溢出漏洞从应用形式上可分为远程服务溢出漏洞和客户端(本地)溢出漏洞两类.远程服务溢出漏洞大家很熟悉了,红色代码.冲击波.振荡波等蠕虫都利用了此类漏洞,漏洞的调试和利用有相应的一套方法,前面的 ...