高可用flume-ng搭建

一、概述

1.通过搭建高可用flume来实现对数据的收集并存储到hdfs上,架构图如下:

二、配置Agent

1.cat flume-client.properties

#name the components on this agent  声明source、channel、sink的名称  
a1.sources = r1  
a1.sinks = k1 k2  
a1.channels = c1  
  
#Describe/configure the source    声明source的类型为通过tcp的方式监听本地端口5140  
a1.sources.r1.type = syslogtcp  
a1.sources.r1.port = 5140  
a1.sources.r1.host = localhost  
a1.sources.r1.channels = c1  
  
#define sinkgroups   此处配置k1、k2的组策略,类型为均衡负载方式  
a1.sinkgroups=g1  
a1.sinkgroups.g1.sinks=k1 k2  
a1.sinkgroups.g1.processor.type=load_balance  
a1.sinkgroups.g1.processor.backoff=true  
a1.sinkgroups.g1.processor.selector=round_robin  
  
#define the sink 1	数据流向,都是通过avro方式发到两台collector机器  
a1.sinks.k1.type=avro  
a1.sinks.k1.hostname=hadoop1 
a1.sinks.k1.port=5150  
  
#define the sink 2  
a1.sinks.k2.type=avro  
a1.sinks.k2.hostname=hadoop2
a1.sinks.k2.port=5150  
  
  
# Use a channel which buffers events in memory   指定channel的类型为内存模式
a1.channels.c1.type = memory  
a1.channels.c1.capacity = 1000  
a1.channels.c1.transactionCapacity = 100  
  
# Bind the source and sink to the channel  
a1.sources.r1.channels = c1  
a1.sinks.k1.channel = c1  
a1.sinks.k2.channel=c1

#a2和a3的配置和a1相同

三、配置Collector

1.cat flume-server.properties

#name the components on this agent  声明source、channel、sink的名称
collector1.sources = r1  
collector1.channels = c1
collector1.sinks = k1  
  
# Describe the source   声明source的类型为avro
collector1.sources.r1.type = avro  
collector1.sources.r1.port = 5150  
collector1.sources.r1.bind = 0.0.0.0  
collector1.sources.r1.channels = c1  
  
  
# Describe channels c1 which buffers events in memory 指定channel的类型为内存模式
collector1.channels.c1.type = memory  
collector1.channels.c1.capacity = 1000  
collector1.channels.c1.transactionCapacity = 100  
  
# Describe the sink k1 to hdfs  指定sink数据流向hdfs
collector1.sinks.k1.type = hdfs  
collector1.sinks.k1.channel = c1  
collector1.sinks.k1.hdfs.path = hdfs://master/user/flume/log
collector1.sinks.k1.hdfs.fileType = DataStream  
collector1.sinks.k1.hdfs.writeFormat = TEXT  
collector1.sinks.k1.hdfs.rollInterval = 300  
collector1.sinks.k1.hdfs.filePrefix = %Y-%m-%d  
collector1.sinks.k1.hdfs.round = true  
collector1.sinks.k1.hdfs.roundValue = 5  
collector1.sinks.k1.hdfs.roundUnit = minute  
collector1.sinks.k1.hdfs.useLocalTimeStamp = true

#collector2配置和collector1相同

四、启动

1.在Collector上启动fulme-ng

flume-ng agent -n collector1 -c conf -f /usr/local/flume/conf/flume-server.properties -Dflume.root.logger=INFO,console
# -n 后面接配置文件中的Agent Name

2.在Agent上启动flume-ng

flume-ng agent -n a1 -c conf -f /usr/local/flume/conf/flume-client.properties -Dflume.root.logger=INFO,console

五、测试

[[email protected] ~]#  echo "hello" | nc localhost 5140    #需要安装nc
17/09/03 22:56:58 INFO source.AvroSource: Avro source r1 started.
17/09/03 22:59:09 INFO ipc.NettyServer: [id: 0x60551752, /192.168.100.15:34310 => /192.168.100.11:5150] OPEN
17/09/03 22:59:09 INFO ipc.NettyServer: [id: 0x60551752, /192.168.100.15:34310 => /192.168.100.11:5150] BOUND: /192.168.100.11:5150
17/09/03 22:59:09 INFO ipc.NettyServer: [id: 0x60551752, /192.168.100.15:34310 => /192.168.100.11:5150] CONNECTED: /192.168.100.15:34310
17/09/03 23:03:54 INFO hdfs.HDFSDataStream: Serializer = TEXT, UseRawLocalFileSystem = false
17/09/03 23:03:54 INFO hdfs.BucketWriter: Creating hdfs://master/user/flume/log/2017-09-03.1504494234038.tmp

六、总结

高可用flume-ng一般有两种模式:load_balance和failover。此次使用的是load_balance,failover的配置如下:

#set failover
a1.sinkgroups.g1.processor.type = failover
a1.sinkgroups.g1.processor.priority.k1 = 10
a1.sinkgroups.g1.processor.priority.k2 = 1
a1.sinkgroups.g1.processor.maxpenalty = 10000

一些常用的source、channel、sink类型如下:

时间: 2024-10-23 02:45:14

高可用flume-ng搭建的相关文章

Flume 学习笔记之 Flume NG高可用集群搭建

Flume NG高可用集群搭建: 架构总图: 架构分配: 角色 Host 端口 agent1 hadoop3 52020 collector1 hadoop1 52020 collector2 hadoop2 52020 agent1配置(flume-client.conf): #agent1 name agent1.channels = c1 agent1.sources = r1 agent1.sinks = k1 k2 #set gruop agent1.sinkgroups = g1 #

linux 下heartbeat简单高可用集群搭建

Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.通过Heartbeat我们可以实现双机热备,以实现服务的持续性. linux下基于heartbeat的简单web服务的高可用集群搭建 首先规划好两台主机作为heartbeat的双机热备,命名为node1.lvni.cc(主) ;node2.lvni.cc, node1的eth0IP :192.168.157.148  Vip eth0:0:192.168.157.149 node2的eth0IP :19

MySQL主从复制、读写分离、高可用集群搭建

MySQL主从复制.读写分离.高可用集群搭建  一.服务介绍   1.1 Keepalived     Keepalived,见名知意,即保持存活,其目的是解决单点故障,当一台服务器宕机或者故障时自动切换到其他的服务器中.Keepalived是基于VRRP协议实现的.VRRP协议是用于实现路由器冗余的协议,VRRP协议将两台或多台路由器设备虚拟成虚拟设备,可以对外提供虚拟路由器IP(一个或多个),即漂移IP(VIP). 1.2 ProxySQL ProxySQL是一个高性能,高可用性的MySQL

Nginx高可用反向代理搭建

Nginx高可用反向代理搭建 Nginx简介 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日.其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名. Nginx 可以在大多数 Unix like O

MHA 高可用集群搭建(二)

MHA 高可用集群搭建安装scp远程控制http://www.cnblogs.com/kevingrace/p/5662839.html yum install openssh-clients mysql5.7运行环境:centos6.51 主机部署 manager:192.168.133.141test1: 192.168.133.138test2:192.168.133.139 (为master1的备用)test3: 192.168.133.140 test1为主,test2和test3为备

CentOS7/RHEL7 pacemaker+corosync高可用集群搭建

目录 一.集群信息... 4 二.集群搭建... 4 1.制作软件源... 4 2.主机基础配置... 5 3.集群基础环境准备... 7 4.集群资源准备... 9 5.资源配置... 11 6.constraint配置... 12 7.stonith配置... 13 8.集群功能验证... 14 三.集群常用命令及作用... 17 1.验证群集安装... 17 2.查看群集资源... 17 3.使用群集脚本... 17 4.STONITH 设备操作... 17 5.查看群集配置... 17

LVS+Keepalived+Nginx+Tomcat高可用集群搭建(转)

LVS+Keepalived+Nginx+Tomcat高可用集群搭建 最近公司重整架构,十几台服务器而且还要尽可能节约成本.我就谷歌了一下在几种集群之前进行比较最终采用了Keepalived+Nginx做负债均衡高可用.虽然之前也研究过集群,看过很多集群方面的原理和架构,但毕竟没有真正操作过以下案例是在虚拟机中完成实验其实对于高可用搭建来说只用给出Keepalived和Nginx的配置即可后面的一些安装搭建完全是本人项目需要可以不用理睬仅供参考. 本文只是实验搭建记录方便以后在服务器中实施搭建.

Redis安装、主从配置及两种高可用集群搭建

Redis安装.主从配置及两种高可用集群搭建 一.            准备 Kali Linux虚拟机 三台:192.168.154.129.192.168.154.130.192.168.154.131 用户名/密码:root/... ssh设置 修改sshd_config文件,命令为:vim /etc/ssh/sshd_config 将#PasswordAuthentication no的注释去掉,并且将NO修改为YES //kali中默认是yes 将PermitRootLogin wi

RabbitMQ 高可用集群搭建及电商平台使用经验总结

面向EDA(事件驱动架构)的方式来设计你的消息 AMQP routing key的设计 RabbitMQ cluster搭建 Mirror queue policy设置 两个不错的RabbitMQ plugin 大型应用插件(Sharding.Rederation) Queue镜像失败手动同步 各集群配置同步方式(RabbitMQ export\import) 客户端连接方式(尽量采用AMQP组来动态链接) RabbitMQ 产线二次产品化封装(消息补偿.发送消息持久化.异常处理.监控页面.重复

Hadoop HA高可用集群搭建(2.7.2)

1.集群规划: 主机名        IP                安装的软件                            运行的进程 drguo1  192.168.80.149 jdk.hadoop                         NameNode.DFSZKFailoverController(zkfc).ResourceManager drguo2 192.168.80.150  jdk.hadoop                         Nam