当前位置: 代码迷 >> 综合 >> Flume 的安装以及一个小测试(需注意的易出错点)
  详细解决方案

Flume 的安装以及一个小测试(需注意的易出错点)

热度:81   发布时间:2023-11-24 20:57:59.0

Flume是由Cloudera软件公司提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,后于2009年被捐赠了apache软件基金会,为hadoop相关组件之一。现已成为apache top项目之一。

安装前需注意:Flume不支持Windows系统,安装前需先安装好Java环境。我下面所安装的是Linux环境中的Flume。

1.我们需先准备好apache-flume-1.8.0-bin.tar.gz安装包(没有的请从Flume官网下载)。通过远程工具上传至node1节点的/root/目录下。

 2.解压apache-flume-1.8.0-bin.tar.gz安装包至/opt/module/下

tar -zxvf apache-flume-1.8.0-bin.tar.gz  -C  /opt/module/
cd /opt/module/
mv apache-flume-1.8.0-bin flume-1.8.0 

3.配置环境变量

vi  etc/profile

在文件末尾加入以下内容:

export FLUME_HOME=/opt/module/flume-1.8.0                        
export PATH=$PATH:$FLUME_HOME/bin

source   /etc/profile  使环境变量生效

输入:flume-ng  version可查看Flume是否安装成功

以下是一个Flume的小测试:

1.我们需先准备一个在HDFS中flume存放数据的文件夹(前置条件是启动了Hadoop集群)。

hdfs dfs -mkdir -p /flume/data

2.拷贝hadoop的jar包到$FLUME_HOME/lib

cd $HADOOP_HOME//share/hadoop/common/
cp *.jar $FLUME_HOME/lib

3.vi    $FLUME_HOME/conf/hdfs.conf  (输入以下内容)

#1、定义agent中各组件名称
agent1.sources=source1
agent1.sinks=sink1
agent1.channels=channel1#2、source1组件的配置参数
agent1.sources.source1.type=exec
#手动生成/root /source.log手动生成
agent1.sources.source1.command=tail -n +0 -F /root/source.log#3、channel1的配置参数
agent1.channels.channel1.type=memory
agent1.channels.channel1.capacity=1000
agent1.channels.channel1.transactionCapactiy=100#4、sink1的配置参数
agent1.sinks.sink1.type=hdfs
agent1.sinks.sink1.hdfs.path=hdfs://node1:9000/flume/data
#node1根据自己的控制节点名修改,9000根据自己的端口修改(在etc/hadoop/core-site.xml
可查看自己的端口号)
agent1.sinks.sink1.hdfs.fileType=DataStream
#时间类型
agent1.sinks.sink1.hdfs.useLocalTimeStamp=true
agent1.sinks.sink1.hdfs.writeFormat=TEXT
#文件前缀
agent1.sinks.sink1.hdfs.filePrefix=%Y-%m-%d-%H-%M
#60秒滚动生成一个文件
agent1.sinks.sink1.hdfs.rollInterval=60
#HDFS块副本数
agent1.sinks.sink1.hdfs.minBlockReplicas=1
#不根据文件大小滚动文件
agent1.sinks.sink1.hdfs.rollSize=0
#不根据消息条数滚动文件
agent1.sinks.sink1.hdfs.rollCount=0
#不根据多长时间未收到消息滚动文件
agent1.sinks.sink1.hdfs.idleTimeout=0#5、将source和sink 绑定到channel
agent1.sources.source1.channels=channel1
agent1.sinks.sink1.channel=channel1

4.启动Flume

./flume-ng agent --conf $FLUME_HOME/conf --conf-file $FLUME_HOME/conf/hdfs.conf --name agent1 Dflume.root.logger=DEBUG,console

5.随后打开新的终端窗口(控制节点),之前的保持启动状态别关就行。创建新建/root/source.log并写入文件。

touch /root /source.log
echo 111 >> /root/source.log
echo 123 >> /root/source.log
echo 345 >> /root/source.log
hadoop fs -ls /flume/data
hdfs dfs -cat  /flume/data/2020-04-21-17-57.1587463023152
#data后根据第一条命令查看显示的内容来写

注意:需等tmp临时文件变为正式文件时再查看。

  相关解决方案