flume+kafka+hbase+ELK

时间:2022-11-04 12:09:51

一、架构方案如下图:

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/

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

  1. flume到kafka和hbase配置

    # Flume test file# Listens via Avro RPC on port 41414 and dumps data received to the logagent.channe ...

  2. 大数据平台架构(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 ...

  3. Flume+Kafka+Storm+Hbase+HDSF+Poi整合

    Flume+Kafka+Storm+Hbase+HDSF+Poi整合 需求: 针对一个网站,我们需要根据用户的行为记录日志信息,分析对我们有用的数据. 举例:这个网站www.hongten.com(当 ...

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

    1. hbase sink介绍 1.1 HbaseSink 1.2 AsyncHbaseSink 2. 配置flume 3. 运行测试flume 4. 使用RegexHbaseEventSeriali ...

  5. Flume 与Kafka区别

    今天开会讨论日志处理为什么要同时使用Flume和Kafka,是否可以只用Kafka 不使用Flume?当时想到的就只用Flume的接口多,不管是输入接口(socket 和 文件)以及输出接口(Kafk ...

  6. Flume+LOG4J+Kafka

    基于Flume+LOG4J+Kafka的日志采集架构方案 本文将会介绍如何使用 Flume.log4j.Kafka进行规范的日志采集. Flume 基本概念 Flume是一个完善.强大的日志采集工具, ...

  7. 使用Flume消费Kafka数据到HDFS

    1.概述 对于数据的转发,Kafka是一个不错的选择.Kafka能够装载数据到消息队列,然后等待其他业务场景去消费这些数据,Kafka的应用接口API非常的丰富,支持各种存储介质,例如HDFS.HBa ...

  8. Flume 和 kafka的区别和对比

    定义: Flume:是Cloudera提供的一个分布式的海量日志采集.聚合和传输的系统: Kafka:是一种高吞吐量的分布式发布订阅消息系统: 各特点: 场景: Flume主要是和HDFS\HBase ...

  9. [CDH] Acquire data: Flume and Kafka

    Flume 基本概念 一.是什么 Ref: http://flume.apache.org/ 数据源获取:Flume.Google Refine.Needlebase.ScraperWiki.Bloo ...

随机推荐

  1. 【MySQL】drop大表

    利用硬链接和truncate降低drop table对线上环境的影响 众所周知drop table会严重的消耗服务器IO性能,如果被drop的table容量较大,甚至会影响到线上的正常. 首先,我们看 ...

  2. 把图标改成web字体

    一.下载自己想要的矢量图标,然后在AI中打开二.在AI中将有瑕疵的图标修改一下,再分别另存为svg格式的图标三.打开IcoMoon Web app网页,然后点击左上角的+Import Icons添加你 ...

  3. Spring学习笔记之初始化和销毁方法的调用次序

    Multiple lifecycle mechanisms configured for the same bean, with different initialization methods, a ...

  4. 开源搜索引擎Solr的快速搭建及集成到企业门户最佳实施方案--转载

    笔者经过研究查阅solr官方相关资料经过两周的研究实现了毫秒级百万数据的搜索引擎的搭建并引入到企业门户.现将实施心得和步骤分享一下. 1.      jdk1.6 安装jdk1.6到系统默认目录下X: ...

  5. asp.net 未能加载文件或程序集“WebApi”或它的某一个依赖项。试图加载格式不正确的程序。

    http://blog.csdn.net/lingxyd_0/article/details/43155039 一般情况下出现这样的问题是因为.dll文件不存在或者路径不正确.但今天我遇到的情况都不在 ...

  6. Oracle插入语句日期格式设置

    insert into test values (1,'2015-01-01'); 直接设置成字符串,会报出“文字与格式字符串不匹配”的异常: 如果正确插入,则要将字符型数据转成日期型数据: 1 in ...

  7. 系统分析与设计个人作业:WordCount

    本次作业gitee地址:https://gitee.com/ackary/WordCount 一.项目简介 1.基础功能 基础功能部分主要实现的功能是统计一个程序设计语言源文件的字符数.单词数.行数, ...

  8. window下mongodb安装和配置

    mongodb安装和配置 1.下载:https://www.mongodb.com 2.解压到盘的根目录下,本人解压到D盘根目录 3.在软件根目录下新建一个文件夹data 4.再新建两个文件夹db.l ...

  9. BeanFactoryPostProcessor vs BeanPostProcessor

    BeanFactoryPostProcessors affect BeanDefinition objects because they are run right after your config ...

  10. 十分钟带你理解Kubernetes核心概念

    什么是Kubernetes? Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展.如果你曾经用过Docker容器技术部署容器,那么可以将Docker看成K ...