Flume框架基础

* Flume框架基础

框架简介:

** Flume提供一个分布式的,可靠的,对大数据量的日志进行高效收集、聚集、移动的服务,Flume只能在Unix环境下运行。

** Flume基于流式架构,容错性强,也很灵活简单,主要用于在线实时的引用分析。

宏观认知:

** Flume、Kafka用来实时进行数据收集,Spark、Storm用来实时处理数据,impala用来实时查询。

Flume架构图:

如果所示,Flume架构只有一个Agent角色节点,该角色节点由Source、Channel、Sink组成。

简单介绍一下各个组成部分的功能:

Source:Source用于采集数据,Source是产生数据流的地方,同时Source会将产生的数据流传输到Channel,这个有点类似于Java IO部分的Channel。

Channel:用于桥接Sources和Sinks,类似于一个队列。

Sink:从Channel收集数据,将数据写到目标源(可以是下一个Source,也可以是HDFS或者HBase)

数据传输单元:Event

** Event是Flume数据传输的基本单元

** Flume以事件的形式将数据从源头送至目的地

** Envent由可选的header和载有数据的一个byte array构成,载有的数据对于flume是不透明的,header容纳了key-value键值对的无需集合,key在某个集合内唯一,header还可以在上下文路由中拓展使用。

Flume传输过程:

如下图所示,source监控某个文件,文件产生新的数据,拿到该数据后,将数据封装在一个Event中,并put到channel后commit提交,channel队列先进先出,sink去channel队列中拉取数据,然后写入到hdfs或者HBase中。

* 安装Flume

** 下载地址传送门:链接:http://pan.baidu.com/s/1eSOOKam 密码:ll6r

** 拷贝,解压,不赘述了

** 配置文件

将conf目录下的flume-env.sh(重命名template文件就行了)文件的JAVA_HOME配置一下,依然不赘述了

** 命令使用

$ bin/flume-ng,出现如下图所示内容:

解释:

--conf:指定配置目录

--name:指定Agent名称

--conf-file:指定具体的配置文件

* 案例

例1:使用flume监听某个端口,将端口写入的数据输出

Step1、修改配置文件

$ cp -a conf/flume-conf.properties.template conf/flume-telnet.conf,变更为如下内容:

注意最后两个channel一个有s,一个没有

解释:

r1:即源,监控的数据源,resource的缩写

k1:即 sink缩写

c1:即channel缩写

Step2、安装telnet命令

由于默认没有该命令,我们来使用yum命令安装一下,注意进入root用户

# yum -y install telnet

Step3、运行flume端口监控

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

分别指定name,配置文件目录,配置文件,以及输出类型和位置。

运行如图:

Step4、测试

另开一个CRT到z01的界面

执行命令:

$ netstat -an | grep 44444,用于检查44444端口是否已经被flume成功监听,如图:

$ telnet localhost 44444,用于连接本机44444端口,进行数据发送(此处也可是使用其他命令,比如netcat等),此处在另一个窗口中进行telnet命令,原来执行flume的那个窗口查看数据是否成功监听到,测试如图:

发送端:

监听端:

如图所示,测试成功。如果需要退出telnet,使用ctrl+]键,再输入quit即可。

例2:某个系统框架的日志文件到HDFS

Step1、修改配置文件

更多参数配置的含义,请参看官文:http://flume.apache.org/FlumeUserGuide.html#hdfs-sink

$ cp -a conf/flume-telnet.conf conf/flume-apache-log.conf,变更为如下内容:

知识补充:

Step2、安装httpd

# yum -y install httpd

(注:httpd是Apache HTTP服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池)

Step3、启动httpd服务

centOS 7:

# systemctl start httpd.service

centOS 6:

# service httpd start

Step4、修改/var/log目录下的httpd文件夹的权限,以便于访问

# chmod 755 /var/log/httpd/

# vi /var/www/html/index.html,随便写点什么,如图:

Step5、执行如下 命令后,使用浏览器访问网页,查看产生的日志

$ tail -f /var/log/httpd/access_log,多次访问后,如图所示:

(浏览器打开:192.168.122.200,根据自己的配置IP访问即可。)

Step6、拷贝Flume所依赖的Hadoop的jar到自己的lib目录

cp /opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/share/hadoop/common/lib/hadoop-auth-2.5.0-cdh5.3.6.jar /opt/modules/cdh/apache-flume-1.5.0-cdh5.3.6-bin/lib

cp /opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/share/hadoop/common/lib/commons-configuration-1.6.jar /opt/modules/cdh/apache-flume-1.5.0-cdh5.3.6-bin/lib

cp /opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/share/hadoop/mapreduce1/lib/hadoop-hdfs-2.5.0-cdh5.3.6.jar /opt/modules/cdh/apache-flume-1.5.0-cdh5.3.6-bin/lib

cp /opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/share/hadoop/common/hadoop-common-2.5.0-cdh5.3.6.jar /opt/modules/cdh/apache-flume-1.5.0-cdh5.3.6-bin/lib

拷贝完成后,flume的lib目录如下:

Step7、启动Hadoop相关服务后,执行flume-ng命令

$ bin/flume-ng agent --conf conf/ --name a2 --conf-file conf/flume-apache-log.conf

(尖叫提示:如果想让flume-ng命令在后台运行,不持续占用终端的操作,可以在命令的末尾加上&符号,即:

$ bin/flume-ng agent --conf conf/ --name a2 --conf-file conf/flume-apache-log.conf &)

检查flume的log日志,没有确认没有ERROR或者WARN错误后,刷新index.html页面,即可看到日志已经迁移至HDFS集群,如图:

以上便实现了Flume的日志收集,其他收集大同小异,大家可自行参照官方文档中的参数设置。

* 总结

flume就是一个流式的,日志采集框架,就像是一个挂在后台的收集器一样,实时监听你需要收集的文件或者目录。


个人微博:http://weibo.com/seal13

QQ大数据技术交流群(广告勿入):476966007



作者:Z尽际
链接:https://www.jianshu.com/p/e71643e6546e
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

转载于:https://www.cnblogs.com/wzlbigdata/p/8277668.html

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

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

相关文章

tensorflow的安装

安装好adaconda软件,打开 adaconda prompt anaconda search -t conda tensorflow 查看conda create -n tensorflow python3.5 配置python3.5环境选择 yes 进行安装activate tensorflow 激活tensorflowpip install tensorflow 安装 然后打开adaco…

昨晚三巨头聚餐,顺便聊了这三个问题

今天老何找我们吃饭,我和老何还有老墨是邻居,三年前我们就认识了,而且关系还不错,但是今年疫情的原因我们都没聚过,上周六本来说好要聚一下,但又因为周末带娃的原因又没聚成,今天我在微信群上说…

谈“80后”程序员为什么找不到工作? [转]

所谓“80后”,是指22~27岁之间、受过高等教育、刚刚毕业走向社会或者拥有几年工作经验年轻的一代。 不可否认,“80后”已成为职场上迅速成长的中竖力量,尤其是在国内的研发领域。每个时代都有自己的特点,如果用几个比较典型的正…

决策树 算法原理及代码

决策树可以使用不熟悉的数据集合,并从中提取出一系列的规则,这是机器根据数据集创建规则的过程,就是机器学习的过程。用一个小案例分析:通过No surfacing 和 flippers判断该生物是否是鱼,No surfacing 是离开水面是否…

Linux九阳神功

Linux九阳神功 宗旨:技术的学习是有限的,分享的精神是无限的。 一、基础命令: 1.用户管理类命令 (1)useradd libang 添加用户 —— 在home目录下生成同级的目录 (2)userdel -r libang 删除用…

jpa 总结

转:http://blog.csdn.net/linzhiqiang0316/article/details/52639265 先来介绍一下JPA中一些常用的查询操作: [java] view plaincopy //And --- 等价于 SQL 中的 and 关键字,比如 findByHeightAndSex(int height,char sex); pub…

深度好文|面试官:进程和线程,我只问这19个问题

# 干了这碗鸡汤!我急切地盼望着可以经历一场放纵的快乐,纵使巨大的悲哀将接踵而至,我也在所不惜。-- 太宰治 《人间失格》大家好,这里是周日凌晨4点,仍在笔耕不辍的程序喵大人。下面隆重推出我呕心沥血,耗时…

IIS7报“假”正式版随Server 2008发布

用过Vista的用户都知道,在该系统已经集成了IIS7.0版本,应该有很多用户已经用该版本建立了站点。可是你是否感觉到它的功能并没有传说中的哪么强大呢?这个问题终于在TechEd 2007的“Windows Server 2008中的IIS 7,挑战示来互联网”课程中&…

zbb20180117 汉字转拼音 pinyin4

包地址https://pan.baidu.com/disk/home?#list/vmodelist&path%2F%E5%AD%A6%E4%B9%A0Pinyin4j的基本用法1. 简单介绍有时候,需要将汉字编程对应的拼音,以方便数据的处理。比如在Android手机应用的开发上,要查询联系人的姓名,…

终于有人将进程间通信讲明白了

使用多进程协作来实现应用和系统是一种被广泛使用的开发方法。多进程协作主要有以下三点优势。将功能模块化,避免重复造轮子。增强模块间的隔离,提供更强的安全保障。提高应用的容错能力。进程间通信(Inter-Process Communication&#xff0c…

个人喜欢的歌曲——女生篇

个人喜欢的歌曲 —— 女生篇 1、吴汶芳:孤独的总和2、蔡依林:妥协、柠檬草的味道3、陈姿彤:战争世界、我的世界4、雁卿:怕寂寞5、张碧晨:年轮6、庄心妍:爱囚,以后的以后7、魏新雨:…

神舟本本放心率

总得票8520 可以放心购买 22.0% 1942票 不太放心 64.0% 5510票 看情况 12.0% 1068票投票起止时间:2007-11-15 至2008-11-22转载于:https://www.cnblogs.com/badapple126/archive/2007/11/16/962020.html

梯度下降算法

在学习逻辑回归时,对梯度上升算法进行了应用,看到其他的博客讲解,梯度上升算法适合求最大值,梯度下降算法适合求最小值,这里有一个分析:梯度上升算法公式是学习率,是一个常数。这个是根据逻辑回…

花了一个深夜,才用C语言写了一个2048游戏雏形

12年我毕业的第二个月工资,我就买了一个IPAD,然后在IPAD上下了一个2048游戏,玩起来非常爽。然后这几天看到好几个公众号都发了自己写这个游戏的代码,然后我自己也想试试,所以就有了这篇文章,写代码还是很有…

向银行贷款20万, 分期三年买50万的车,个人借款40万, 贷款10年买200万的房子,再贷款120万分创业...

向银行贷款20万按1年期贷款利率为:6%,若按年还贷款,银行贷款利息为:200,000*6%12,000。连本带息:20*106%21.2万分期三年买50万的车 贷款总额30万 年利率按10%算,分三年还清&#xff…

如何避免测试盲区

测试盲区,也就是软件中测试人员未测试到的地方,造成这方面的原因主要有测试人员对测试需求理解不足、经验不足和思维僵化等原因造成的。接下来,就如何避免测试盲区给出几点建议。 一、 充分理解软件需求需求方面的如果理解有误或者分析遗漏&a…

集成算法——Adaboost代码

集成算法是我们将不同的分类器组合起来,而这种组合结果就被称为集成方法或者是元算法。使用集成方法时会有多种形式:可以是不同算法的集成,也可以是同意算法在不同设置下的集成,还可以是数据集不同部分分配给不同分类器之后的集成…

年终抽奖来了

时间很快,2020年已经到了12月份,我从2018年开始写公众号,经过了快两年是时间,我收获了4万的读者,非常开心。我自己是一个挺逗逼的人,而且我写公众号并不觉得我比别人厉害,技术上我真的就是一个很…

DOS状态下可以安装Win XP

在DOS状态下可以安装Win XP,插入Win XP光盘后,首先从开始中进入MS-DOS,然后在MS-DOS下输入“G:\Setup.exe”(G为光驱盘符)即可。 如果想从纯DOS下进行安装,可用启动盘启动到DOS状态,安装时首先加载Smartdrv.exe(将Win …

嵌入式 Linux下永久生效环境变量bashrc

作者:skdkjxy原文:http://blog.sina.com.cn/s/blog_8795b0970101f1f9.html.bashrc文件 在linux系统普通用户目录(cd /home/xxx)或root用户目录(cd /root)下,用指令ls -al可以看到4个隐藏文件&am…