flume+kafka+hbase+ELK

一、架构方案如下图:

二、各个组件的安装方案如下:

1)、zookeeper+kafka

http://www.cnblogs.com/super-d2/p/4534323.html

2)hbase

http://www.cnblogs.com/super-d2/p/4755932.html

3)flume安装:

安装

安装JDK

Flume 运行系统要求1.6以上的Java 运行环境,从oracle网站下载JDK 安装包,解压安装:

$tar zxvf jdk-8u65-linux-x64.tar.gz $mv jdk1.8.0_65 java 

设置Java 环境变量:

JAVA_HOME=/opt/java PATH=$PATH:$JAVA_HOME/bin export JAVA_HOME PATH 

安装Flume

官网下载Flume 二进制安装包,解压安装:

tar zxvf apache-flume-1.6.0-bin.tar.gz mv apache-flume-1.6.0-bin flume cd flume 

配置

source 使用 necat 类型,sink 采用 file_roll 类型, 从监听端口获取数据,保存到本地文件。 拷贝配置模板:

cp conf/flume-conf.properties.template conf/flume-conf.properties 

编辑配置如下:

# The configuration file needs to define the sources, # the channels and the sinks. # Sources, channels and sinks are defined per agent, # in this case called ‘agent‘  agent.sources = r1 agent.channels = c1 agent.sinks = s1  # For each one of the sources, the type is defined agent.sources.r1.type = netcat agent.sources.r1.bind = localhost agent.sources.r1.port = 8888  # The channel can be defined as follows. agent.sources.r1.channels = c1  # Each sink‘s type must be defined agent.sinks.s1.type = file_roll agent.sinks.s1.sink.directory = /tmp/log/flume  #Specify the channel the sink should use agent.sinks.s1.channel = c1  # Each channel‘s type is defined. agent.channels.c1.type = memory  # Other config values specific to each type of channel(sink or source) # can be defined as well # In this case, it specifies the capacity of the memory channel agent.channels.c1.capacity = 100  

功能验证

1.建立输出目录

mkdir -p /tmp/log/flume 

2.启动服务

bin/flume-ng agent --conf conf -f conf/flume-conf.properties -n agent& 

运行日志位于logs目录,或者启动时添加-Dflume.root.logger=INFO,console 选项前台启动,输出打印日志,查看具体运行日志,服务异常时查原因。

3.发送数据

telnet localhost 8888 输入 hello world! hello Flume! 

4.查看数据文件 查看 /tmp/log/flume 目录文件:

cat /tmp/log/flume/1447671188760-2 hello world! hello Flume! 

与Kafka 集成

Flume 可以灵活地与Kafka 集成,Flume侧重数据收集,Kafka侧重数据分发。 Flume可配置source为Kafka,也可配置sink 为Kafka。 配置sink为kafka例子如下

agent.sinks.s1.type = org.apache.flume.sink.kafka.KafkaSink agent.sinks.s1.topic = mytopic agent.sinks.s1.brokerList = localhost:9092 agent.sinks.s1.requiredAcks = 1 agent.sinks.s1.batchSize = 20 agent.sinks.s1.channel = c1 

Flume 收集的数据经由Kafka分发到其它大数据平台进一步处理。

对应于我们的架构方案:

flume的配置如下:

# Flume test file
# Listens via Avro RPC on port 41414 and dumps data received to the log
agent.channels = ch-1
agent.sources = src-1
agent.sinks = sink-1

agent.channels.ch-1.type = memory
agent.channels.ch-1.capacity = 10000000
agent.channels.ch-1.transactionCapacity = 1000

agent.sources.src-1.type = avro
agent.sources.src-1.channels = ch-1
agent.sources.src-1.bind = 0.0.0.0
agent.sources.src-1.port = 41414

agent.sinks.sink-1.type = logger
agent.sinks.sink-1.channel = ch-1

agent.sinks.sink-1.type = org.apache.flume.sink.kafka.KafkaSink
agent.sinks.sink-1.topic = avro_topic
agent.sinks.sink-1.brokerList = ip:9092
agent.sinks.sink-1.requiredAcks = 1
agent.sinks.sink-1.batchSize = 20
agent.sinks.sink-1.channel = ch-1

agent.sinks.sink-1.channel = ch-1
agent.sinks.sink-1.type = hbase
agent.sinks.sink-1.table = logs
agent.sinks.sink-1.batchSize = 100
agent.sinks.sink-1.columnFamily = flume
agent.sinks.sink-1.znodeParent = /hbase
agent.sinks.sink-1.zookeeperQuorum = ip:2181
agent.sinks.sink-1.serializer = org.apache.flume.sink.hbase.RegexHbaseEventSerializer

备注flume到hbase要把
相关的包拷贝到flume下面

demo:

https://github.com/super-d2/flume-log4j-example

参考:

https://mos.meituan.com/library/41/how-to-install-flume-on-centos7/

时间: 2024-08-27 23:24:22

flume+kafka+hbase+ELK的相关文章

flume到kafka和hbase配置

# Flume test file# Listens via Avro RPC on port 41414 and dumps data received to the logagent.channels = ch-1agent.sources = src-1agent.sinks = sink-1 agent.channels.ch-1.type = memoryagent.channels.ch-1.capacity = 10000000agent.channels.ch-1.transac

Flume+Kafka+SparkStreaming+Hbase+可视化(一)

一.前置准备: Linux命令基础 Scala.Python其中一门 Hadoop.Spark.Flume.Kafka.Hbase基础知识 二.分布式日志收集框架Flume 业务现状分析:服务器.web服务产生的大量日志,怎么使用,怎么将大量日志导入到集群 1.shell脚本批量,再传到Hdfs:实效性不高,容错率低,网络/磁盘IO,监控 2.Flume: Flume:关键在于写配置文件 1)配置 agent 2)配置 Source 3)配置 Channel 4)配置 Sink 1-netcat

大数据平台架构(flume+kafka+hbase+ELK+storm+redis+mysql)

上次实现了flume+kafka+hbase+ELK:http://www.cnblogs.com/super-d2/p/5486739.html 这次我们可以加上storm: storm-0.9.5简单配置如下: 安装依赖 wget http://download.oracle.com/otn-pub/java/jdk/8u45-b14/jdk-8u45-linux-x64.tar.gz tar zxvf jdk-8u45-linux-x64.tar.gz cd jdk-8u45-linux-

使用flume将kafka数据sink到HBase【转】

1. hbase sink介绍 1.1 HbaseSink 1.2 AsyncHbaseSink 2. 配置flume 3. 运行测试flume 4. 使用RegexHbaseEventSerializer来处理些HBASE的值 5. 效率测试 1. hbase sink介绍 如果还不了解flume请查看我写的其他flume下的博客. 接下来的内容主要来自flume官方文档的学习. 顺便也强烈推荐flume 1.6 官方API hbase的sink主要有以下两种.两种方式都提供和HBASE一样的

基于Hadoop技术实现的离线电商分析平台(Flume、Hadoop、Hbase、SpringMVC、highcharts)视频教程(项目实战)

38套大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战视频教程 视频课程包含: 38套大数据和人工智能精品高级课包含:大数据,云计算,架构,数据挖掘实战,实时推荐系统实战,电视收视率项目实战,实时流统计项目实战,离线电商分析项目实战,Spark大型项目实战用户分析,智能客户系统项目实战,Linux基础,Hadoop,Spark,Storm,Docker,Mapreduce,Kafka,Flume,OpenStack,Hiv

Flume 与Kafka区别

今天开会讨论日志处理为什么要同时使用Flume和Kafka,是否可以只用Kafka 不使用Flume?当时想到的就只用Flume的接口多,不管是输入接口(socket 和 文件)以及输出接口(Kafka/HDFS/HBase等). 考虑单一应用场景,从简化系统的角度考虑,在满足应用需求的情况下可能只使用一个比较好.但是考虑到现有系统业务发展,为了后面的灵活扩展,在先用系统设计时留有一定的扩展性感觉更重要,可能使用Flume+kafka架构相对只使用Kafka会多占用1-2台机器做Flume日志采

Flume+LOG4J+Kafka

基于Flume+LOG4J+Kafka的日志采集架构方案 本文将会介绍如何使用 Flume.log4j.Kafka进行规范的日志采集. Flume 基本概念 Flume是一个完善.强大的日志采集工具,关于它的配置,在网上有很多现成的例子和资料,这里仅做简单说明不再详细赘述.Flume包含Source.Channel.Sink三个最基本的概念: Source——日志来源,其中包括:Avro Source.Thrift Source.Exec Source.JMS Source.Spooling D

Flume和Kafka

本文是学习时的自我总结,用于日后温习.如有错误还望谅解,不吝赐教 此处附上部分内容所出博客:http://blog.csdn.net/ymh198816/article/details/51998085 Flume+Kafka+Storm+Redis实时分析系统基本架构 1)    整个实时分析系统的架构是 2)    先由电商系统的订单服务器产生订单日志, 3)    然后使用Flume去监听订单日志, 4)    并实时把每一条日志信息抓取下来并存进Kafka消息系统中, 5)    接着由

flume 整合kafka

背景:系统的数据量越来越大,日志不能再简单的文件的保存,如此日志将会越来越大,也不方便查找与分析,综合考虑下使用了flume来收集日志,收集日志后向kafka传递消息,下面给出具体的配置 # The configuration file needs to define the sources, # the channels and the sinks. # Sources, channels and sinks are defined per agent, # in this case call