定义:
flume是一个高可用、高可靠、分布式的,日志采集、聚合、传输的系统。只能是日志类型的数据,图片视频这样的数据不行。
作用:
flume的作用就是从本地磁盘读取数据再将数据传到HDFS 做离线分析
flume架构 :数据来源--->flume--->数据去向
flume组件:
source:Source 是负责接收数据到 Flume Agent 的组件。Source 组件可以处理各种类型、各种 格式的日志数据,包括 avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy。(flume中用来接受从wedServer读取的数据,跟外界打交道。读文件、端口数据等) avro用于多层flume
channel:作用就是起到缓冲的作用,不存储数据,当数据全部发送到sink,channel里面就会删除数据
sink:Sink 不断地轮询 Channel 中的事件且批量地移除它们,并将这些事件批量写入到存储 或索引系统、或者被发送到另一个 Flume Agent。 Sink 组件目的地包括 hdfs、logger、avro、thrift、ipc、file、HBase、solr、自定 义。
agent:Agent 是一个 JVM 进程,它以事件的形式将数据从源头送至目的。 Agent 主要有 3 个部分组成,Source、Channel、Sink。
Flume 安装部署
flume官方地址:https://flume.apache.org/
文档地址:https://flume.apache.org/FlumeUserGuide.html
flume下载地址:http://archive.apache.org/dist/flume/
下载完之后,将 apache-flume-1.7.0-bin.tar.gz 上传到 linux
再解压:
tar -zxf apache-flume-1.7.0-bin.tar.gz
可以将解压后的apache-flume-1.7.0-bin改名为flume
mv apache-flume-1.7.0-bin flume
将 flume/conf 下的 flume-env.sh.template 文件修改为 flume-env.sh,并配置 flumeenv.sh 文件
mv flume-env.sh.template flume-env.sh
vi flume-env.sh
在flume-env.sh文件中添加 export JAVA_HOME=你linux虚拟机中jdk的路径
可以使用echo $JAVA_HOME查看jdk的路径
这样flume的安装与部署就完成了!