flume理论+配置文件+连接HDFS+hive+hbase+拦截器+高可用

本文介绍了Flume在大数据场景中的应用,作为日志采集工具,它能将分散的日志数据统一收集到HDFS。Flume由Source、Channel和Sink三部分组成,支持多种数据源和目的地。文中详细讲解了Flume的配置文件、环境要求、启动与检查方法,并涉及与HDFS、HBase和Hive的集成,还讨论了Flume的拦截器和高可用性方案。
  1. 数据来源
    Nginx+tomcat架构图
    在这里插入图片描述
    大数据的数据来源从哪
    ive(数据仓库),–>mysql数据库;数据库的记录存储的是最近的记录(1亿,1个月,1周,1天),之前的数据要先备份到数据仓库,然后要清理掉(mysql),
    日志:日记历史(先清理日志这个操作很low–不可取);log4j2;
    在这里插入图片描述
    两手准备:
    数据库中的表有做记录;(是最近的数据)
    日志:格式,我们自己定(文件)

    在这里插入图片描述
  • 大数据所需要的数据来源日志部分是分散的;进行大数据运算和统计需要把分散的日志合并到一个地方(hdfs);

1.Log4j:一天一个日志文件吗?今天把昨天的日志上传到hdfs上多好(hdfs命令,java也好)(每天都传)
2.需要将同一个命令在所有的有日志的电脑都要执行(400多台)

  • flume介绍
    Flume(水槽):采集工具,将大数据分散的数据源(数据库,日志)统一采集到一个地方(hdfs),
    官网:http://flume.apache.org/
    Flume是一种分布式、可靠和可用的服务,可以高效地收集、聚合和移动大量的日志数据。它具有基于流数据流的简单灵活的体系结构。它具有鲁棒性和容错性,具有可调的可靠性机制和多种故障转移和恢复机制。它使用了一个简单的、可扩展的数据模型,允许在线分析应用程序

结构:
Source:来源(flume)
Channel:渠道(flume)
Sink:目的地(flume)
webServer:数据源(产生数据的地方,tomcat)
Hdfs:它是把数据放到了hdfs中;
在这里插入图片描述
下载:http://flume.apache.org/download.html
在这里插入图片描述
http://mirrors.ustc.edu.cn/apache/flume/1.9.0/
在这里插入图片描述
我们使用flume:1.8;
在这里插入图片描述
Bin:可执行文件
Conf:配置文件
Docs:离线的帮助文档
Lib:jar包
Tools:工具
离线版本的文档:
在这里插入图片描述

  • 实战
    系统要求:
    1.Java运行时环境-Java1.8或更高版本
    2.内存-为源、通道或接收器使用的配置提供足够的内存
    3.磁盘空间.通道或接收器使用的配置的足够磁盘空间
    目录权限-代理使用的目录的读/写权限
    在这里插入图片描述
    在这里插入图片描述
    配置文件:(新建一个配置文件,名字随便起)(conf/flume_hw.properties);官方中一个简单的例子:
    在这里插入图片描述
# flume配置的例子
# Name the components on this agent
# source:起一个别名
# properties文件它是java的配置文件,=左边就是键,=右边是值;键的开头都是以a1(就是flume的名字--agent的名字就是a1);a1随便起
a1.sources = r1
# sink:起一个别名
a1.sinks = k1
# channels;:起一个别名
a1.channels = c1

# Describe/configure the source
# a1(agent的名字).sources(来源).r1(来源的名字);配置多个来源
# type:不能随便写(文档上说明)
a1.sources.r1.type = netcat
# bind:netcat的一个属性(绑定)
a1.sources.r1.bind = localhost
# port:netcat的一个属性;(端口)
a1.sources.r1.port = 44444

# Describe the sink
# 描述一个sink: logger日志(打印到控制台上)
a1.sinks.k1.type = logger

# Use a channel which buffers events in memory
# 描述一下channel:内存
a1.channels.c1.type = memory
# capacity:容量
a1.channels.c1.capacity = 1000
# transactionCapacity:事务的容量
a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel
# 绑定;source和channel绑定
a1.sources.r1.channels = c1
# sink和channel绑定
a1.sinks.k1.channel = c1

配置文件:(conf/flume-env.sh.template复制为conf/flume-env.sh)
在这里插入图片描述
启动命令(服务器端)
在这里插入图片描述

# --name后面的a1要和配置文件中agent的名字一样
bin/flume-ng agent --conf conf --conf-file conf/flume_hw.properties --name a1 -Dflume.root.logger=INFO,console

在这里插入图片描述
启动以后是以前台进程访问(不是后台进程,千万不要敲ctrl+c)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值