实训内容简介及虚拟机和服务器

本文详细介绍了如何在Hadoop环境中配置和使用Flume,包括Flume的下载、安装、环境变量配置、依赖库导入、配置文件编写以及启动和验证过程。通过Flume将Nginx的日志数据实时传输到HDFS,为大数据处理提供数据源。
摘要由CSDN通过智能技术生成

实训内容简介及虚拟机和服务器(宝塔控制加粗样式)搭建Hadoop环境的区别(三)(附教程链接)

上传flume到/root目录下

解压安装

tar -zvxf apache-flume-1.9.0-bin.tar.gz

配置环境变量,并让环境变量生效

vi /etc/profile
切换到编辑模式 添加以下代码

export FLUME_HOME=/root/apache-flume-1.9.0-bin
export PATH=$PATH:$FLUME_HOME/bin

保存,退出
source 使它生效

source /etc/profile

将hadoop-2.7.3安装路径下的依赖的jar导入到/apache-flume-1.9.0-bin/lib下:

cp /root/hadoop-2.7.3/share/hadoop/common/hadoop-common-2.7.3.jar
/root/apache-flume-1.9.0-bin/lib cp
/root/hadoop-2.7.3/share/hadoop/common/lib/commons-configuration-1.6.jar
/root/apache-flume-1.9.0-bin/lib cp
/root/hadoop-2.7.3/share/hadoop/common/lib/hadoop-auth-2.7.3.jar
/root/apache-flume-1.9.0-bin/lib cp
/root/hadoop-2.7.3/share/hadoop/hdfs/hadoop-hdfs-2.7.3.jar
/root/apache-flume-1.9.0-bin/lib cp
/root/hadoop-2.7.3/share/hadoop/common/lib/htrace-core-3.1.0-incubating.jar
/root/apache-flume-1.9.0-bin/lib cp
/root/hadoop-2.7.3/share/hadoop/common/lib/commons-io-2.4.jar
/root/apache-flume-1.9.0-bin/lib

验证 在 /root/apache-flume-1.9.0-bin目录执行以下代码

bin/flume-ng version 

配置Flume HDFS Sink:
在/root/apache-flume-1.9.0-bin/conf/新建一个flume-hdfs.conf
添加如下内容:

#define the agent a1.sources=r1 a1.channels=c1 a1.sinks=k1
#define the source
#上传目录类型 a1.sources.r1.type=spooldir a1.sources.r1.spoolDir=/var/log/nginx/flumeLogs
#定义自滚动日志完成后的后缀名 a1.sources.r1.fileSuffix=.FINISHED
#根据每行文本内容的大小自定义最大长度4096=4k a1.sources.r1.deserializer.maxLineLength=4096
#define the sink a1.sinks.k1.type = hdfs
#上传的文件保存在hdfs的/flumeLogs目录下 a1.sinks.k1.hdfs.path = hdfs://niit01:9000/flumeLogs/%y-%m-%d/%H/%M/%S
a1.sinks.k1.hdfs.filePrefix=access_log a1.sinks.k1.hdfs.fileSufix=.log
a1.sinks.k1.hdfs.batchSize=1000 a1.sinks.k1.hdfs.fileType = DataStream
a1.sinks.k1.hdfs.writeFormat= Text
#roll 滚动规则:按照数据块128M大小来控制文件的写入,与滚动相关其他的都设置成0
#为了演示,这里设置成500k写入一次 a1.sinks.k1.hdfs.rollSize= 512000 a1.sinks.k1.hdfs.rollCount=0 a1.sinks.k1.hdfs.rollInteval=0
#控制生成目录的规则:一般是一天或者一周或者一个月一次,这里为了演示设置10秒 a1.sinks.k1.hdfs.round=true a1.sinks.k1.hdfs.roundValue=10 a1.sinks.k1.hdfs.roundUnit= second
#是否使用本地时间 a1.sinks.k1.hdfs.useLocalTimeStamp=true
#define the channel a1.channels.c1.type = memory
#自定义event的条数 a1.channels.c1.capacity = 500000
#flume事务控制所需要的缓存容量1000条event a1.channels.c1.transactionCapacity = 1000
#source channel sink cooperation a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1

注意:- 需要先在/var/log/nginx/创建flumeLogs
需要在hdfs的根目录/下创建flumeLogs

修改conf/flume-env.sh(该文件事先是不存在的,需要复制一份)
复制:

cp flume-env.sh.template flume-env.sh

编辑文件,并设置如下内容:

#设置JAVA_HOME:
export JAVA_HOME = /root/jdk1.8.0_171          
#修改默认的内存:  
export JAVA_OPTS="-Xms1024m -Xmx1024m -Xss256k -Xmn2g -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:-UseGCOverheadLimit" 

启动flume

1.测试数据:
把 /var/log/nginx/access.log 复制到/var/log/nginx/flumeLogs/access_201904251200.log

  • ps:与虚拟机不同的是,nginx默认产生的访问目录在/www/wwwlogs/39.xxx.xxx.xxx.log上,所以在编写脚本时,需要对目录日志产生的地方进行编辑,不然flume即使监听成功,但是日志始终没有数据
    2.启动
    在/root/apache-flume-1.9.0-bin目录下,执行如下命令进行启动:
`bin/flume-ng agent --conf ./conf/ -f ./conf/flume-hdfs.conf --name a1 -`Dflume.root.logger=INFO,console

3.到Hadoop的控制台http://niit01:50070/flumeLogs 查看有没有数据

原文链接:https://blog.csdn.net/tjpuliang/article/details/118634570

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值