![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
flume
文章平均质量分 50
有上进心的阿龙
吃不了自律的苦,就要受平庸的罪!学到老,活到老!
展开
-
任务26:26_Flume高级_Sink组负载均衡(配置&测试)
刚才做的是sink组里面的故障转移,现在做负载均衡。将刚才group2里面的三个配置文件复制到group3里面去,将flume1.conf里面去修改sink组策略。其他两个配置文件和当时讲故障转移的flume2.conf flume3.conf一摸一样。查看sink组的负载均衡:只修改sink group策略:测试:启动2和3:这里没有优先级了。数据发到flume2还是3是随机的。开启flume1了这时候输入hello的数据给到了flume3随后输入的数据atg原创 2021-01-07 14:40:56 · 204 阅读 · 0 评论 -
任务25:25_Flume高级_Sink组故障转移(案例测试)
从前面获取到数据然后通过sink组的负载均衡的策略,将数据发送到flume1,2中去,它俩最终都打印到控制台。更方便查看。在job目录中创建group2文件夹,里面新建三个conf文件,flume1.conf,flume2.conf,flume3.conf开始写配置文件,flume1.conf1、写声明和source使用netcat source2、写channel:3、写sink两个都是avro sink4、写bind一个channel对应两个sink5、配置组的策略sin原创 2021-01-07 14:31:56 · 198 阅读 · 1 评论 -
任务24:24_Flume高级_Sink组故障转移(需求分析)
channel选择器里面,我们学完了副本机制,还有一个多路复用,但是还测试不了,因为它要配合拦截器一起使用。拦截器还没讲。现在的案例是负载均衡和故障转移。先看故障转移,这两个就是配置参数不同。这里就是一个channel了,所以使用的是sink组。两个sink k1和k2都绑定的c1.这里就需要配置组的策略了。看官网的故障转移:sink group有default,还有,failover当前组里面放哪些sink呢?这就需要配置sinks这个属性。这个属性是干嘛的?配置sink的优原创 2021-01-07 12:46:16 · 159 阅读 · 0 评论 -
23_Flume高级_Channel选择器副本机制(案例测试)
我们需要在flume1里面设置选择器为复制机制。其实也可以不用写,因为,它是默认的。所以将这句话复制在flume1.conf里面。开始测试了:1、开启多个窗口,因为到时候开启多个agent都是阻塞的进程。2、分多层,我们开flume有顺序吗?尽量,先开下游flume。现在我们先测试:先开上游,也就是先开flume1结论是:有点问题,可以看日志数据。先到flume的los里面查看日志信息然后一直按换行键,这样做一个标记。3、在每个窗口进入flume的根目录4、加载flu.原创 2021-01-07 09:51:05 · 135 阅读 · 1 评论 -
任务22:22_Flume高级_Channel选择器副本机制(配置文件)
这里面现在就有三个配置文件需要写。flume1,2,3如果都配在102上,那agent不能相同。这是需求。我们为了测试效果明显,我们的数据源来自自己定义的目录的文件数据/opt/module/data/hive.logflume1.conf 的agent是a1flume2.conf 的agent是a2flume3.conf 的agent是a3书写flume1配置文件:1、命名:2、写source使用 taildir3、写channel:使用memory4原创 2021-01-06 21:55:31 · 159 阅读 · 0 评论 -
任务21:21_Flume高级_Channel选择器副本机制(需求分析)
这里暂时还演示不了多路复用,因为多路复用需要结合拦截器一起。所以多路服用的案例放到了自定义拦截器那里监控文件的变动使用exec source和taildir均可。但是优先使用taildir,毕竟挂了还可以再用。监控文件的变动,将内容传给flume-2flume1给flume2使用阿波罗sink和source看avro sink /source 和 roll sink最终的目的把hive实时更新的日志数据上传到hdfs,同时在本地还做一个备份。采集hive数据的flume1使用两个.原创 2021-01-06 20:52:05 · 95 阅读 · 0 评论 -
任务19:19_Flume高级_拓扑结构
拓扑结构:启动两个agent,就是两个flume的任务,可以在同一台机器,也可以在另一台机器。后台服务器和大数据集群不在一块,数据落在java后台服务器上面,那flume装在哪呢?装一个在大数据集群机器上,肯定不能读取后台服务器磁盘上的文件。A机器不能直接读B机器磁盘的文件,必须通过端口网络通信,让他传输过来,假如在后台服务器和大数据集群上都启动了flume,从原始读数据的后台服务器,agent一定放在后台这里,因为跨机器不能直接读取别人磁盘的内容。只能把人家的数据读出来之后,写到某一个端口之后原创 2021-01-06 20:09:13 · 121 阅读 · 0 评论 -
任务18:18_Flume高级_传输详细流程
谈谈数据的真正走向。在source里面去调用channel processor进程去处理这个事件。第三步,将数据传给了拦截器可以配置多个拦截器,形成一个拦截器链。多个拦截器和一个拦截器的区别:一个拦截器固然效率高,但是生产环境中采用多个,因为更加灵活,扩展性更好。拦截器和业务相关性越高,就用一个拦截器,因为它提供复用的可能性就很低。经过拦截器链之后,又会把数据返回给channel processor.然后数据从channel processor中传给channel selector选择原创 2021-01-06 19:10:13 · 159 阅读 · 0 评论 -
任务17:17_Flume高级_事务性
flume进阶:讲解flume的事务,因为flume是一个传输的工具,所以,它希望数据不要丢,这就需要加事务,三个组件有三个事务。channel都是被动的,从source到channel是source推数据,从channel到sink,是sink主动拉取数据。flume有两个事务除了端口可以做数据源,本地文件也可以是,可以按文件夹,单个文件和多个文件均可,有批量上传的,也有断点徐传的,都有。source负责和外面的数据源打交道读取过来的数据,都封装在enent事件中,event是一个接口,不原创 2021-01-06 18:11:03 · 153 阅读 · 0 评论 -
任务16:16_Flume案例_断点续传文件(案例测试)
准备工作:准备再这里面追加内容。启动agent:启动agent的时候发现报错了,报错的地方再*,那我们就不适用星这个符号了我们配置文件里面,写filegroups里面的文件的时候,不写*,直接一个个文件写先测试第一种情况:有两个文件组,每个文件组一个文件:成功启动agent:在file1.txt和file2.txt中追加数据:看看保存的位置信息:position,这个是json文件,使用cat查看两条数据,因为我们监控的是两个文件,有inode,position,和原创 2021-01-06 14:56:49 · 348 阅读 · 0 评论 -
任务15:15_Flume案例_断点续传文件(配置文件)
之前监控动态变化的数据使用的是exec source但是exec的特点是:可以实时监控可追加的文件(动态变化的文件),但是当此时的agent挂掉了,重启一下flume agent会发生什么事情?我们tail -F 默认查看的是后10行的数据。一旦挂掉了,挂了1个小时,那这1小时产生的1千万条数据,这时只会读取到最后10行,这就会丢数据。同样tail -F 可以写-c +0每一次都从头读,挂掉之后,重新读,又会重复读取数据。exec存在断点续传的问题断点续传:网盘,迅雷就是断点续传,当你网络好了,可原创 2021-01-05 21:13:07 · 213 阅读 · 0 评论 -
任务14:14_Flume案例_监控本地文件夹(案例测试)
只修改了source新建upload目录:为了测试:在flume下新建几个文件:上传三个文件。启动agent将之前准备好的文件1.txt放到upload目录中去等三十秒。。。上传了两次下载hdfs的文件到桌面发现只上传文件内容把3.txt文件放到upload中去思考:后缀名.COMPLETED是它默认添加的如果我们有个文件名的后缀就是.COMPLETED,这种情况下会怎么样?我们发现根本就没有上传这个文件。所以我们写flume配原创 2021-01-05 20:00:39 · 304 阅读 · 0 评论 -
任务13:13_Flume案例_监控本地文件夹(配置文件)
上午实现的是一个监控一个动态的文件,上传到hdfs,这个动态的文件就是hive的日志文件。之前监控的动态的文件时一行一行的读取数据,效率比较低。现在的实例就是:现在有个文件夹,每天往里面放新文件,整个文件放进去。这个文件放进去之后就不会改变了。之前的tail -F也可以,再写一个正则表达式,文件的格式统一就可以,但是时一行一行读取的,效率很低。我们就要用到另外一个source—spooldir source现在的source不再是之前的netcat或者exec了他们不能一次性把文件上传。类似于原创 2021-01-05 18:23:55 · 389 阅读 · 0 评论 -
任务12:12_Flume案例_监控本地变化文件(案例二)
开启集群开启flume:文件的生成需要事件的触发。再多写一点日志进去原创 2021-01-05 13:56:22 · 62 阅读 · 0 评论 -
任务11:11_Flume案例_监控本地变化文件(案例二配置文件)
现在写的source就是hdfs source文件的前缀后缀:这三个参数滚动的是文件。这三个参数任意满足一个,就新生成一个文件。三个条件是或者的关系。如果三个都=0的话,文件就不滚动了,所有的都写到同一个文件。生产环境中肯定需要设置这三个参数,防止生成小文件。rollInterval:滚动大小,滚动当前的文件,生成的文件是按照时间来的,默认=30s,如果这个配置=0的话,代表不按照当前属性值进行滚动。rollSize:字节数,更多的配置成块大小。一般设置成127.5M,比128略原创 2021-01-05 13:06:53 · 110 阅读 · 0 评论 -
任务10:10_Flume案例_监控本地变化文件(案例一测试)
启动任务:默认会给我们打印十条数据准备开启hive看一下hive的日志变化:现在监控的是hive.log文件出错的话,就重启一下flume原创 2021-01-05 08:53:16 · 82 阅读 · 0 评论 -
任务9:09_尚硅谷_Flume案例_监控本地变化文件(案例一配置文件)
第一步:因为我们最终需要将文件导入到HDFS但是我们第一步先使用LoggerSink,和HDFS无关。在job目录下创建一个配置文件file-flume-logger.conf我们用的还是logger sink:绑定还是一样:我们这里需要使用 exec Source这些黑体的配置一定要配置,非黑体的参数不一定要配置。需要将netcat修改成exec因为我们这里是准备监控一个本地文件,不需要用到bind和port我们需要的是一个command配置:监控本地文件的命原创 2021-01-05 08:42:51 · 133 阅读 · 0 评论 -
任务8:08_尚硅谷_Flume案例_监控本地变化文件(需求分析)
该文件会实时地发生变化将案例分为两部分:部分一:实现实时监控变化的文件,并读取文件内容,然后打印到控制台部分二:使用Exec Source Logger sink原创 2021-01-05 08:21:37 · 77 阅读 · 0 评论 -
07_Flume案例_官方案例(测试)
此时flume相当于开启了一个服务端:让客户端去连接。关闭flume服务 ctrl+chook:是钩子程序,一般做收尾工具。先停source,再把sink处理完之后在结束。不要使用kill -9命令,使用kill命令。kill -9 不会去调用钩子程序kill 调用钩子程序bin/flume-ng agent -c conf/ -n a1 -f job/flume-netcat-logger.conf -Dflume.root.logger=INFO,console传参..原创 2021-01-04 20:53:35 · 137 阅读 · 0 评论 -
06_Flume案例_官方案例(配置)
监听端口数据使用:netcat source-瑞士军刀,短小精悍。打印到控制台:Logger sink从官网上去复制:第一步:安装netcat,装一台机器就行了netcat简称nc可以开启一个服务端和客户端,实现服务端和客户端通信开启一个服务端:开启客户端:在客户端103上发送hello此时服务端ctrl+C ,把服务端挂掉那么客户端自己会挂掉以上是实现网络通信使用端口的例子。读取端口数据(netcat),经过flume到logger sink需要.原创 2021-01-04 20:39:59 · 150 阅读 · 0 评论 -
任务5:05_Flume入门_安装
安装:这里面有四个文件,log4j不需要修改,他里面配置了日志文件该存放哪里出现错误来这里看日志文件,现在还没有启动,所以没有logs文件夹,以后log文件夹里面会有flume.log的文件。我们要改的就是flume-env.sh.template文件。具体的任务,需要从本地读取数据到HDFS,只需要启动agent了就行了。flume虽然是分布式,但是并不需要去分发,所谓的分布就是:avro sink和avro source组合起来的,将flume部署到多原创 2021-01-04 18:54:08 · 158 阅读 · 0 评论 -
04_Flume入门_组件介绍
第一个:Avro Source 阿波罗source一定会用到的flume采集数据,存在单点故障,希望数据再有一个flume需要一个RPC远程通讯框架。第二个:Exec Source 执行命令行 tail -f可以监控结尾的变化数据。第三个:spooling Directory和目录相关第四个:Taildir Source:使用频率很高,监控本地文件第五个:Kafka Source,数据可以从Kafka读,也可以写到Kafka里去可以从本地文件系统读数据,也可以写到本地文件系统。这种方...原创 2021-01-04 18:34:20 · 209 阅读 · 0 评论 -
03_Flume入门_基础架构
agent: 是一个JVM的进程,采集数据的过程也是运行在JVM上的代码,在进程中包含三大组件(source,channel,sink)source: 源头,对接Web Server,和外界数据进行对接的组件,用来读数据的地方,从外面读数据。需要在这里配置源头是来自哪里channel:管道,通道;拦截器在这里,可以不加,更重要的是可以起到缓冲的作用,如果source和sink直连,会出现各种问题,source和sink的读取数据不一样,可能会有问题。sink: 槽,和外界的HDFS或者卡夫卡进行对.原创 2021-01-04 13:46:23 · 123 阅读 · 0 评论 -
02_Flume入门_概念
flume官网:http://flume.apache.org/为什么选用flume呢?无论是爬虫过来的数据还是java后台日志都是存储在本地磁盘的。java后台日志数据:实时产生,动态往里面追加的,过了一天,自动在文件夹后面加上日期为后缀名,可以使用hadoop使用-put命令上传数据到HDFS,但是只有等一天之后才能上传。不可能晚上定个闹钟起床-put很麻烦。写一个定时脚本,定时任务,12:30分的时候,防止数据延迟。12:30开始到数据,延迟半小时,需要等到第二天导入这个数据,会出现的问题原创 2021-01-04 13:10:40 · 82 阅读 · 0 评论 -
01_Flume入门_课程介绍
大数据的三件事情:海量数据的传输,存储和计算flume负责海量数据的传输生产环境中大数据集群和java后端肯定不是在同一台服务器,需要通过网络将java后台产生的数据传输到大数据集群京东的服务器经常崩,内部服务器经常宕机。生产环境中大数据集群和java后台服务器肯定不能放在一块,需要远程传输过来,市面上的传输工具很多,flume使用的比较广泛。正常的后台服务器跑的项目也是一个工程。订单,支付这些数据放到mysql,鼠标在上面悬停,搜索的关键字等操作都需要保留,这些用户行为日志不会写到mys.原创 2021-01-04 11:44:02 · 138 阅读 · 1 评论