安装Java
有的可能已经装了。详细可参考之前写的这篇阿里云Linux CentOS安装Hadoop详细踩坑,里面有安装Java。或者就直接:
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
然后找下Java的位置,把环境变量配一下:
vim ~/.bashrc
添加如下:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64
export PATH=$PATH:$JAVA_HOME/bin
注意,可能大家的Java所在目录不一样,一定自己找清楚。我是在/etc/alternatives
里找到的。
![](https://img.haomeiwen.com/i12135053/e470e28ae8a6e3ae.png)
然后生效下,可以
source ~/.bashrc
,或者直接退出再登录进来,也能生效。我一般用ctrl+d
退出。
下载安装Flume
去官网点击下载,把链接copy出来。
![](https://img.haomeiwen.com/i12135053/da1894f74c3b8740.png)
下载、解压。
cd /usr/local
wget http://45.252.224.78/files/411900000E0D329D/mirror.bit.edu.cn/apache/flume/1.9.0/apache-flume-1.9.0-bin.tar.gz
tar -zxvf apache-flume-1.9.0-bin.tar.gz
rm -f apache-flume-1.9.0-bin.tar.gz
继续跟Java一样配置环境变量,再生效下,不赘述。
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64
export FLUME_HOME=/usr/local/apache-flume-1.9.0-bin
export PATH=$PATH:$FLUME_HOME/bin:$JAVA_HOME/bin
然后配置Flume:
cd $FLUME_HOME/conf
cp flume-env.sh.template flume-env.sh
vim flume-env.sh
把Java的地址配置好。
![](https://img.haomeiwen.com/i12135053/942e0e6f4dddc935.png)
配置运行
继续配置:
cp flume-conf.properties.template flume-conf.properties
vim flume-conf.properties
先试试监控端口的,修改内容如下:
# in this case called 'a1'
a1.sources = r1
a1.channels = c1
a1.sinks = k1
# For each one of the sources, the type is defined
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
# The channel can be defined as follows.
a1.sources.r1.channels = c1
# Each sink's type must be defined
a1.sinks.k1.type = logger
#Specify the channel the sink should use
a1.sinks.k1.channel = c1
# Each channel's type is defined.
a1.channels.c1.type = memory
# Other config values specific to each type of channel(sink or source)
# can be defined as well
# In this case, it specifies the capacity of the memory channel
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
好了,可以运行下:
flume-ng agent --conf conf --conf-file conf/flume-conf.properties --name a1 -Dflume.root.logger=INFO,console
一段日志飘过,再开一个终端窗口发送消息hello flume
,没有的可以先yum install telnet
安装下:
[root@master ~]# telnet localhost 44444
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
hello flume
OK
回去之前的窗口,采集到了!
![](https://img.haomeiwen.com/i12135053/5292037c34e9e80b.png)
除了监控端口,也可以监控文件夹,修改下
flume-conf.properties
,其它地方不变,只修改这段:
# For each one of the sources, the type is defined
a1.sources.r1.type = spooldir
a1.sources.r1.spoolDir = /root/flumemonitor #记住这里是spoolDir,目录名称自己定义
继续运行,一段日志,最后停在这里:
![](https://img.haomeiwen.com/i12135053/e4d545ae3150cb88.png)
那就成功了,再开个终端,去监控的目录写文件:
cd /root/flumemonitor
vim test.log
随便写几句,保存退出,发现这个文件变了。
![](https://img.haomeiwen.com/i12135053/4391416d3e731d9f.png)
其实是被Flume采集了,回到Flume运行的窗口,可以看到刚才编辑的内容:
![](https://img.haomeiwen.com/i12135053/39cd313f7a8b82e0.png)
Ok,先这么用吧。
网友评论