Flume环境搭建_五种案例(转)

Flume环境搭建_五种案例

http://flume.apache.org/FlumeUserGuide.html

A simple example

Here, we give an example configuration file, describing a single-node Flume deployment. This configuration lets a user generate events and subsequently logs them to the console.

# example.conf: A single-node Flume configuration# Name the components on this agent
a1.sources = r1
a1.sinks = k1 a1.channels = c1 # Describe/configure the source a1.sources.r1.type = netcat a1.sources.r1.bind = localhost a1.sources.r1.port = 44444 # Describe the sink a1.sinks.k1.type = logger # Use a channel which buffers events in memory a1.channels.c1.type = memory a1.channels.c1.capacity = 1000 a1.channels.c1.transactionCapacity = 100 # Bind the source and sink to the channel a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1 

This configuration defines a single agent named a1. a1 has a source that listens for data on port 44444, a channel that buffers event data in memory, and a sink that logs event data to the console. The configuration file names the various components, then describes their types and configuration parameters. A given configuration file might define several named agents; when a given Flume process is launched a flag is passed telling it which named agent to manifest.

Given this configuration file, we can start Flume as follows:

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

Note that in a full deployment we would typically include one more option: --conf=<conf-dir>. The <conf-dir> directory would include a shell script flume-env.sh and potentially a log4j properties file. In this example, we pass a Java option to force Flume to log to the console and we go without a custom environment script.

From a separate terminal, we can then telnet port 44444 and send Flume an event:

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

The original Flume terminal will output the event in a log message.

12/06/19 15:32:19 INFO source.NetcatSource: Source starting
12/06/19 15:32:19 INFO source.NetcatSource: Created serverSocket:sun.nio.ch.ServerSocketChannelImpl[/127.0.0.1:44444] 12/06/19 15:32:34 INFO sink.LoggerSink: Event: { headers:{} body: 48 65 6C 6C 6F 20 77 6F 72 6C 64 21 0D Hello world!. } 

Congratulations - you’ve successfully configured and deployed a Flume agent! Subsequent sections cover agent configuration in much more detail.

 

 

 

以下为具体搭建流程

Flume搭建_案例一:单个Flume

 

 

安装node2上

1.   上传到/home/tools,解压,解压后移动到/home下

 

2.   重命名,并修改flume-env.sh

vi flume-env.sh
 
3.   配置Flume的环境变量
vi /etc/profile
source /etc/profile
查看Flume的版本,看Flume的环境变量是否配置成功
4.    在/home下创建tests_flume, 并创建flume配置文件
cd test_flume
vi flume1
5.    命令测试Flume是否安装成功
flume-ng agent --conf /home/test_flume --conf-file /home/test_flume/flume1 --name a1 -Dflume.root.logger=INFO,console
安装telnet
随意输入 
hi flume
切换窗口查看
退出 ctrl+]  quit

 

 

Flume搭建_案例二:两个Flume做集群

安装node1,node2上
  1. MemoryChanel配置
  2. capacity:默认该通道中最大的可以存储的event数量是100
  3. trasactionCapacity:每次最大可以从source中拿到或者送到sink中的event数量也是100
  4. keep-aliveevent添加到通道中或者移出的允许时间
  5. byte**:即event的字节量的限制,只包括eventbody
1.   node1,node2,上传压缩包到/home/tools下,解压,
2.     
修改conf下的flume-env.sh中的java环境变量,
3.
     在/etc/profile下 
配置Flume的环境变量
4.
 
    node1,node2下创建测试目录test_flume,并分别在node1,node2下创建配置文件——flume21,flume22
node1下创建flume21
node2下创建flume22
5.   node1,node2分别启动flume(注意因为node2在后面,所以先启动node2中flume,再启动node1中flume)
  1. 先启动node02Flume
  2. flume-ng agent -n a1 -c conf -f avro.conf -Dflume.root.logger=INFO,console
  3. flume-ng agent -n a1 -c conf -/home/test_flume/flume22 -Dflume.root.logger=INFO,console
  4. 再启动node01Flume
  5. flume-ng agent -n a1 -c conf -f simple.conf2 -Dflume.root.logger=INFO,console
  6. flume-ng agent -n a1 -c conf -/home/test_flume/flume21 -Dflume.root.logger=INFO,console
node2:
node1:
6.   打开telnet测试,node2输出结果
 

 

 

 

 

 

Flume搭建_案例三:如何监控一个文件的变化?

安装node2上
1.   node2,上传压缩包到/home/tools下,解压,
2.     
修改conf下的flume-env.sh中的java环境变量,
3.
     在/etc/profile下 
配置Flume的环境变量
4.
 
    
node2下创建测试目录test_flume,node2下创建配置文件——flume3
mkdir test_flume
vi flume3
5.    node2启动flume
  1. 启动Flume
  2. flume-ng agent -n a1 -c conf -f exec.conf -Dflume.root.logger=INFO,console
  3. flume-ng agent -n a1 -c conf -/home/test_flume/flume3 -Dflume.root.logger=INFO,console
6.    测试
在/home/test_flume下创建空文件演示 touch flume.exec.log
循环添加数据
for i in {1..50}; do echo "$i hi flume" >> flume.exec.log ; sleep 0.1; done

Flume搭建_案例四: 如何监控一个文件:目录的变化?

安装node2上
1.   node2,上传压缩包到/home/tools下,解压,
2.     
修改conf下的flume-env.sh中的java环境变量,
3.
     在/etc/profile下 
配置Flume的环境变量
4.
 
     
node2下创建测试目录test_flume,node2下创建配置文件——flume4
mkdir test_flume
vi flume4
5.    node2启动flume
6.    测试

 

Flume搭建_案例五: 如何定义一个HDFS类型的Sink?

安装node2上

Flume搭建_案例五_配置项解读

1.   Flume中日期的格式
什么时候会用?
Flume收集的时候根据时间来创建,比如今天的产生的数据就创建20170216,昨天的就放在20170215下
!注意
2.   Flume是如何找到HDFS?
Flume如果配置的是hdfs,它会根据系统中配置的环境变量去找
3.   Flume什么时候滚动生成新文件?
滚动的间隔,大小,数量
hdfs.rollInterval30Number of seconds to wait before rolling current file (0 = never roll based on time interval)
hdfs.rollSize1024File size to trigger roll, in bytes (0: never roll based on file size)
hdfs.rollCount10Number of events written to file before it rolled (0 = never roll based on number of events)

 

4.   多长时间没有操作,Flume将一个临时文件生成新文件?

hdfs.idleTimeout0Timeout after which inactive files get closed (0 = disable automatic closing of idle files)

 

5.   多长时间生成一个新的目录?(比如每10s生成一个新的目录)

      四舍五入,没有五入,只有四舍

      (比如57分划分为55分,5,6,7,8,9在一个目录,10,11,12,13,14在一个目录)

hdfs.roundfalseShould the timestamp be rounded down (if true, affects all time based escape sequences except %t)
hdfs.roundValue1Rounded down to the highest multiple of this (in the unit configured using hdfs.roundUnit), less than current time.
hdfs.roundUnitsecondThe unit of the round down value - secondminute or hour.

 

1.   node2,上传压缩包到/home/tools下,解压,
2.     
修改conf下的flume-env.sh中的java环境变量,
3.
     在/etc/profile下 
配置Flume的环境变量
4.
 
     
node2下创建测试目录test_flume,node2下创建配置文件——flume5
mkdir test_flume

 

vi flume5

 

超越永无止境

转载于:https://www.cnblogs.com/wangbin/p/8192950.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428362.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux配置服务器超时退出,Linux下实现不活动用户登录超时后自动登出

摘要&#xff1a;方法一&#xff1a;通过修改.bashrc或.bash_profile文件来实现通过修改home目录下的.bashrc或.bash_profile文件...方法一&#xff1a;通过修改.bashrc或.bash_profile文件来实现通过修改home目录下的.bashrc或.bash_profile文件来实现。这两个文件选择其中一个…

只读属性怎么来的初值_设置Mysql表只读,关键时刻或许能救你一命

作为一名数据库运维人员&#xff0c;应该遇到过表记录被异常全表更新&#xff0c;这个时候该怎么办。作为Mysql数据库运维人员&#xff0c;第一反应&#xff0c;应该就是上报&#xff0c;然后联系开发人员&#xff0c;确认此表作用&#xff0c;然后再确定恢复方案。在这里举一个…

miui12怎么自定义开机动画_MIUI12正式发布:视觉/功能大升级

点击上方蓝字【安兔兔】关注我文章每天不断更&#xff01;在今天下午举行的线上发布上&#xff0c;小米正式发布了MIUI12系统。从官方描述来看&#xff0c;MIUI12可以说是MIUI近几年来最重磅的一次更新&#xff0c;在UI界面、动画以及功能等方面都作出了升级。按照官方说法&…

已触发了一个断点 vs_VSCode源码分析-断点调试

背景今年年初&#xff0c;有幸参与了阿里集团IDE 共建项目组&#xff0c;打造阿里生态体系内的公共IDE底层&#xff0c;而作为一款面向开发者的IDE&#xff0c;调试能力的支持一定程度上决定着一款IDE的开发体验&#xff1b;VSCode作为微软体系下一款当前最热的IDE开发工具&…

移动web——touch事件介绍

基本概念 1、在移动web端点击事件或者滑动屏幕、捏合等动作都是由touchstar、touchmove、touchend这三个事件组合在一起使用的 2、click事件在移动端会有0.2秒的延迟&#xff0c;下面是测试click在移动web端的延迟&#xff0c;最好在手机浏览器中测试 <script>window.onl…

如何计算一年总共有多少周_一年有几个周?怎么计算周数及闰年?

用这一年的天数除以7。因为一周有七天。分析过程如下&#xff1a;假设这一年是2018年&#xff0c;2018年是一个平年&#xff0c;因为2018/4504……2。平年的全年有365天&#xff0c;365752……1。由此可得2018年有52周多1天。扩展资料&#xff1a;闰年的计算方法&#xff1a;1、…

linux系统安装应用商店失败,在Deepin/UOS系统应用商店中安装KiCad失败的解决方法...

在Deepin/UOS系统应用商店中搜索并安装KiCad可能会提示安装失败&#xff0c;原因就是缺少必要的依赖包及KiCad的封装库文件。下面分享解决方法及附上Deepin系统安装KiCad5的方法。参考深度商店应用Inkscape、KiCad、MyPaint、中望CAD Linux预装版。解决方法在系统中通过终端执行…

linux ubantu扩展空间,ubuntu 扩展存储空间

今天解决了一个Ubuntu存储空间不足的问题。我在网上查了很多资料&#xff0c;都没有什么让我满意的方法。我是菜鸟级的用户&#xff0c;当然使用最菜的方法。以下是我的解决方案&#xff0c;供大家参考。方法步骤&#xff1a;第一步&#xff0c;在Ubuntu系统下&#xff0c;进入…

从使用到原理学习Java线程池

来源&#xff1a;SilenceDut http://www.codeceo.com/article/java-threadpool-learn.html线程池的技术背景 在面向对象编程中&#xff0c;创建和销毁对象是很费时间的&#xff0c;因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此&#xff0c;虚拟机将试图跟…

docker 镜像修改的配置文件自动还原_PVE部署LXC运行docker

PVE部署Ubuntu20.04 LXC容器用于安装docker&#xff0c;LXC部署完成后可以进行如下操作。1、PVE打开LXC的嵌套&#xff0c;不然运行docker会报错 https://lala.im/6793.htmlLXC需要勾选“无特权的容器”在创建完成后需要到“选项-签名”下勾选“嵌套”&#xff0c;这个主要是可…

linux下c 链接mongodb,Linux下mongoDB下载与安装

百度网盘下载&#xff1a;https://pan.baidu.com/s/1r0JoOtoYzJEC_HOe-NALwg 提取码&#xff1a;rm12 此处提供的是mongodb-linux-x86_64-4.0.11.tgz 版本java开发工具下载地址及安装教程大全&#xff0c;点这里。更多深度技术文章&#xff0c;在这里。二、安装1、上传到linux系…

oracle12 pl/sql

pl/sql块介绍 介绍 块(block)是pl/sql的基本程序单元&#xff0c;编写pl/sql程序实际上就是编写pl/sql块&#xff0c;要完成相对简单的应用功能&#xff0c;可能只需要编写一个pl/sql块&#xff0c;但是如果想要实现复杂的功能&#xff0c;可能需要在一个pl/sql块中嵌套其它的p…

注册登录页面代码用js判断是否填入信息_php实现登录功能

原文&#xff1a;https://blog.csdn.net/ccy1995414/article/details/80638685自然是从最简单的功能起步&#xff0c;我第一个任务选择了做一个登录操作&#xff0c;其实也没想象中那么简单。1.首先自然是连接和创建数据库这部分我写在model.php中$userNameroot;$passWord;$hos…

CAS单点登陆的两个原理图

最近学习CAS单点登录&#xff0c;所以在网上找了两张比较清晰的原理图以供参考&#xff1a; 【CAS浏览器请求认证序列图】 其中&#xff1a;* ST&#xff1a;Service Ticket&#xff0c;用于客户端应用持有&#xff0c;每个ST对应一个用户在一个客户端上* TGT&#xff1a;Tick…

java api帮助文档_JAVA的Swagger界面丑、功能弱怎么破?

在做CRMEB-JAVA开源商城系统时&#xff0c;我们团队用到了uni-app&#xff0c;也是时下比较流行的移动端开发技术&#xff0c;这里边就牵扯到了前后端全部分离的问题&#xff0c;一般在使用java开发前后端分离项目的时候&#xff0c;都会用到Swagger&#xff0c;Swagger 是一个…

C语言作业不足之处,C语言和汇编语言的优缺点分析-控制器/处理器-与非网

本文主要是关于汇编和 C 语言的相关介绍&#xff0c;并着重对汇编和 C 语言的不同及其编程技巧进行了详尽的阐述。汇编和 C 语言C 语言和汇编语言的区别在于他们之间优缺点几乎是相反的。C 语言和汇编语言的优缺点&#xff1a;以 c 来举例优点&#xff1a;c 的运行效率高&#…

python xlrd模块_python之xlrd模块

xlrd模块 一、xlrd模块 1、python操作excel主要用到xlrd和xlwt这两个库&#xff0c;即xlrd是读excel&#xff0c;xlwt是写excel的库&#xff0c;这两个适用于.xls格式有效 2、 xlrd模块安装 在cmd窗口 pip install xlrd 二、使用介绍 1、常用单元格中的数据类型 ♦ 0. empty&am…

set集合判断集合中是否有无元素_一文了解 JavaScript 中的 Set(集合)- 对 Set 的扩展...

阅读全文需要 4 分钟。主要介绍对 ES6 中的 Set 集合方法的扩展。阅读本文后&#xff0c;你能创建出对 Set 方法扩展&#xff0c;并且结合下期内容&#xff0c;将其发布到 NPM 中。往期回顾一文了解 JavaScript 中的 Set(集合)一文了解 JavaScript 中的 Set(集合)- 多种去重技巧…

站怎么点都是一样_老鼠被卡在轮胎里,像是被点了穴道一样:这可怎么办才好?...

从小就被灌输了一个思想&#xff1a;猫和老鼠是天敌&#xff0c;也没有想过这样根深蒂固的思想有一天会发生变化。直到有天偶然看到猫咪被老鼠吓到四处乱窜才觉得这一定理并非是永恒不变的&#xff0c;毕竟生活总是充满着惊喜与惊吓。来看看下面这个小故事&#xff0c;感受一下…

sql空字符串判断函数_access常用的内置函数

&#xfeff;&#xfeff;新朋友点“Office交流网“蓝字关注我们Access提供了几种类型的函数&#xff0c;可将这些函数分为以下几类&#xff1a;转换&#xff1a;把一个值转换为另一个。日期/时间&#xff1a;返回日期和/或时间值。判断检查&#xff1a;判断是否正确算术计算&a…