当前位置:首页 > Web开发 > 正文

代码连接:https://gitee.com/shuai7boy/BIG_DATA_ETL 3.6使用Map/Redu

2024-03-31 Web开发

学习文档参考:

1.Flume是什么?

Flume简单归纳综合就是一个收集日志的工具,它可以通过挪用接口,RPC,还有网页的一些操纵进行日志的收集。它是一个漫衍式开源的Java编写的由Apache维护的项目。

2.Flume如何搭建

搭建前提条件

2.1下载并解压到指定目录

崇尚授人以渔的思想,我说给大家怎么下载就行了,就不直接放连接了,大家可以直接输入官网地点 ,一般在官网的上方或者左边城市有Download按钮,这个在左侧,然后点进去下载想要的版本即可。 这个会有点慢,如果嫌弃的化,可以通过相关镜像网站进行下载,可以百度搜索软件镜像,就能搜到很多镜像网站,在里面就可以下载,如果你下载的对象属于Apache旗下的,可以看的有专门的一个Apache目录,里面存的都是Apache旗下相关产品。

可以先本地下载,然后通过ftp上传,也可以直接在处事器下载。

我这里下载好后,解压到了处事器/opt 目录下面,并改削了下目录名称为flume(你也可以不改,配置环境变量的时候凭据实际情况来就行了。)

2.2在flume-env.sh里面配置Java路径

进入到 conf目录下面,对flume-env.sh进行编纂,将export JAVA_HOME改削为实际路径。

cd /opt/flume/conf/

vim flume-env.sh

export JAVA_HOME=http://www.mamicode.com/opt/java/jdk1.8.0_221

2.3添加Flume环境变量

环境变量存放的是软件的具体位置,运行措施命令会按照配置的变量找到软件并执行,否则会报错。(通过手动下载并上传到Linux处事器的都需要配置环境变量。)

vim /etc/profile

export FLUME_HOME=http://www.mamicode.com/opt/flume

export FLUME_CONF_DIR=http://www.mamicode.com/opt/flume/conf

PATH=$FLUME_HOME/bin

source /etc/profile

2.4通过flume-ng version验证是否配置告成

直接控制台运行 flume-ng version

显示Flume 1.6.0 就好了,如果显示了Error什么报错信息先不用管。

3.Flume应用

日志收罗系统:

3.1配置nginx环境

请参考菜鸟教程: https://www.runoob.com/linux/nginx-install-setup.html

凭据上述法式安置完后,需要对nginx配置下访谒日志格局:

编纂nginx.conf,默认安置路径在/etc/nginx下

cd /etc/nginx

vim nginx.conf

在http模块下面添加:

解析:(以^A为日志分隔断绝分手符,remote_addr代表长途地点,msec代表访谒时间,http_host代表访谒主机名,request_uri代表访谒资源)

log_format my_format ‘$remote_addr^A$msec^A$http_host^A$request_uri‘;

在server模块下面添加:

解析:(访谒地点 域名/log.gif,请求格局是image,存放地点是/opt/data/access.log )

location =http://www.mamicode.com/log.gif { default_type image/gif; access_log /opt/data/access.log my_format; }

这样访谒nginx的时候就会生成类似下面的内容:

192.168.40.1^A1577365502.563^Atuge1^A/log.gif?en=e_crt&oid=123456&on=%E6%B5%8B%E8%AF%95%E8%AE%A2%E5%8D%95123456&cua=524.01&cut=RMB&pt=alipay&ver=1&pl=website&sdk=js&u_ud=039F6588-ED65-4187-87CF-9DBBC9F19645&u_mid=zhangsan&u_sd=605DECAA-93C0-46B7-AC47-7B1898DBD6BC&c_time=1577365502881&l=zh-CN&b_iev=Mozilla%2F5.0%20(Windows%20NT%2010.0%3B%20WOW64)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F78.0.3904.97%20Safari%2F537.36&b_rst=1536*86

3.2编写触发事件传输代码

代码思路:

前端通过触发事件,生成image格局数据发送。

后端通过API接口直接发送Get请求。

代码连接: https://gitee.com/shuai7boy/BIG_DATA_LOG

3.3配置Flume环境

下载

去官网下载,然后上传随处事器并进行解压。

在flume配置文件中配置java环境变量

找到flume-env.sh进行配置,什么?没有?不妨,将flume-env.sh.template重定名下就行了。

配置flume环境变量

vim /etc/profile

export FLUME_HOME=http://www.mamicode.com/opt/flume export FLUME_CONF_DIR=http://www.mamicode.com/opt/flume/conf

PATH=$FLUME_HOME/bin

验证是否配置告成

flume-ng version

当弹出以下内容,则说明配置告成。

Flume 1.6.0 Source code repository: https://git-wip-us.apache.org/repos/asf/flume.git Revision: 2561a23240a71ba20bf288c7c2cda88f443c2080 Compiled by hshreedharan on Mon May 11 11:15:44 PDT 2015 From source with checksum b29e416802ce9ece3269d34233baf43f

3.4运行Flume,将本地日志写入HDFS

编写flume代码,参考官方案例:

在安置Linux的处事器上,创建一个监控文件(临时取名optionHdfs.conf):

# example.conf: A single-node Flume configuration

# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /opt/data/access.log --监控文件路径,新增加内容就会往hdfs里面写。

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31144.html