部署数据环境(flume)
flume连接kafka
flume(日志收集器):通过一个配置文件定义一个代理
配置文件:
(1).source :从哪里过来
(2).sink:数据流向哪里
(3)通道:通过通道输出。使用内存传数据比较慢。如果数据传的快过内存,就会堵塞,为了解决瓶颈问题,我们使用kafka,kafka输出的比较块。但是如果通过网络传输就会慢下来。所以这个时候就有另外一办法解决这个问题。就是收集日志,定义一堆分支,集群式分支,就会缓解数据输出愉而造成的堵塞。
kafka(发布订阅的)订阅flume发过来的数据。自己也可以编个程序也可以,所以flume有个瓶颈问题,很多企业不用flume而是直接自己编程序,使用kafka,因为kafka是scale语方编写的,所以不同版本之间不兼容,所以spark是什么版本的就用什么版本的kafka。
爬虫爬出来的数据给kafka
接下来配置环境:
首先配置一个监听文件的
flume最主要的是:
agent:
source: type(监控文件,监控目录,thirft,avro,网络)
channle(通道): type:内存
sink: type:kafka,hdfs,mysql等等
1.打开后虚拟机,xshell上传文件
然后解压
在conf添加一个配置文件,文件名是自己随便写http://flume.apache.org 进入flume官网
然后配置a1.conf 文件:
./bin/flume-ng agent -c conf -f conf/aa.conf -n a1 -Dflume.root.logger=INFO,console 执行这句,记住一定要在bin目录下
我们测试一下:用telnet 虚拟机没有telnet所以连不上,我们用windows系统连拉,复制一个ssh通道
到执行bin 那个shell页看下有没有发过去,看到hellow 就成功了
接下来我们试着不观察网络,观察文件
vi aa.conf
完成之后还是利用上方的方式把它启动
./bin/flume-ng agent -c conf -f conf/aa.conf -n a1 -Dflume.root.logger=INFO,console
只要往文件里边加内容就会被收走
以上是两种监控,一个网络,一个是文件,接下来实现监控目录:
首先新建一个test目录用来测试的
停止flume agent(ctrl+c),然后重新配置 aa.conf 文件
到官网上找到
往下看实例
还是用上方方法启动
被日志收集器收完了就重命名了
日志不是产生一条就收起,一天的日志,到1点时 把这个日志挪到这个目录,一天统一收走