- 浏览: 128260 次
- 性别:
- 来自: 深圳
最新评论
文章列表
MemoryChannel的简易类结构:
内部类MemoryTransaction的简易类结构:
一,configure(Context context)
1,capacity:MemroyChannel的容量,默认是100。
2,transCapacity:每个事务最大的容量,也就是每个事务能够获取的最大Event数量。默认也 ...
- 2015-11-21 15:55
- 浏览 1928
- 评论(0)
Flume默认情况下是没有引入HDFS,Kafka,Elasticsearch,Hbase等sink的相关jar包,如果使用,需要自行添加相关jar包。
下面我以使用HDFS Sink为例,在Flume中加入第三方JAR包。
Flume支持一种特殊的目录结构:plugins.d,它有特殊的格式,可以很方面的管理第三方JAR。当然我们可以直接把第三方JAR丢掉$FLUME_HOME/lib目录,但是这样不利于调试和排除故障,特别是处理JAR包冲突的问题。
plugins.d目录:
plugins.d目录位于$FLUME_HOME/plugins.d。在启动的时候,flume-ng启动脚本会 ...
- 2015-11-19 14:36
- 浏览 2916
- 评论(0)
接着上篇:Flume之ChannelSelector源码分析
ChannelSelector主要是根据Event选择将其发送到哪些Channel。ChannelProcessor是通过ChannelSelector获取到Channels后,如何发送Event到Channel。ChannelProcessor提供了将Source接收到的Events放入到Channels的一些方法,如果写入Channels发生错误,统一抛出ChannelException异常。每个ChannelProcessor实例都有一个ChannelSelector实例(ChannelSelector实例分别维护了可选的Ch ...
- 2015-11-10 11:58
- 浏览 1526
- 评论(0)
Flume中channel选择器(selector.type配置)必须实现ChannelSelector接口,实现了该接口的类主要作用是告诉Source中接收到的Event应该发送到哪些Channel,在Flume中主要由两个实现方式:
1,复用,实现类:MultiplexingChannelSelector
2,复制,实现类:ReplicatingChannelSelector
如下:
ChannelSelector接口两个主要的方法是:
//获取必选的Channel列表
public List<Channel> getRequiredChannels(Event ...
- 2015-11-09 21:20
- 浏览 1191
- 评论(0)
Exec source介绍
Exec source在启动时运行Unix命令,并且期望它会不断的在标准输出中产生数据。 (stderr会被丢弃,除非logStdErr设置成true).如果进程因为某些原因退出,Exce Source也将退出并且不会再产生数据。
粗粒标注的必须配置:
属性名
默认
描述
channels
–
type
- 2015-11-09 14:34
- 浏览 1226
- 评论(0)
Guava 是Google的基于JDK类库集合的扩展项目,目前Guava的最高版本是guava-18.0.jar,基于JDK1.7。Guava是一个高质量的API可以使你的Java代码更加优雅,更加简洁。Guava应用很广泛,目前很多开源的框架都使用了Google Guava类库,我也是在看一些开源框架的源码才了解到Guava的,看到开源框架使用了Guava的什么类,就去了解一下。
源码包:
com.google.common.annotations:普通注解类型。
com.google.common.base:基本工具类库和接口。
com.google.common.c ...
- 2015-11-07 17:54
- 浏览 1149
- 评论(0)
Spooling Directory Source简介
Spooling Directory Source可以获取硬盘上“spooling”目录的数据,这个Source将监视指定目录是否有新文件,如果有新文件的话,就解析这个新文件。事件的解析逻辑是可插拔的。在文件的内容所有的都读取到Channel之后,Spooling Directory Source会重名或者是删除该文件以表示文件已经读取完成。
不像Exec Source,这个Source是可靠的,且不会丢失数据。即使Flume重启或者被Kill。但是需要注意如下两点:
1,如果文件在放入spooling目录之后还在写,那么Flume ...
- 2015-11-07 16:58
- 浏览 1518
- 评论(0)
HDFS Sink介绍
Flume导入数据HDFS,目前只支持创建序列化(sequence)文件和文本(text)文件。还支持这两个文件的压缩。文件可以根据运行的时间,数据的大小和时间的数量来进行周期性的滚动(关闭当前文件产生新的文件)。也可以根据数据属性分区,例如根据时间戳或机器分区。HDFS目录路径可以包含格式化的转义字符,生成目录路径可以通过格式化转移字符(escape sequences),HDFS sink通过这些转义字符生成一个目录或者文件去存储Event。当然在Flume中使用HDFS Sink的话,需要添加HDFS相关的Jar,这样Flume就能使用Hadoop的jar和Had ...
- 2015-11-06 14:09
- 浏览 7508
- 评论(0)
Flume主要由以下几种监控方式:
JMX监控
JMX高爆可以在flume-env.sh文件修改JAVA_OPTS环境变量,如下:
export JAVA_OPTS=”-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=5445 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false”
Ganglia监控
Flume也可以报告metrics到Ganglia 3或者是Ganglia ...
- 2015-11-04 17:57
- 浏览 8770
- 评论(0)
JMX 是管理系统和资源之间的一个接口,它定义了管理系统和资源之间交互的标准。javax.management.MBeanServer实现了 Agent 的功能,以标准的方式给出了管理系统访问 JMX 框架的接口。而从类库的层次上看,JMX 包括了核心类库 java.lang.management和 javax.management包。java.lang.management包提供了基本的 VM 监控功能,而 javax.management包则向用户提供了扩展功能。
架构图:
JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、 ...
- 2015-11-03 18:04
- 浏览 1986
- 评论(0)
最近做一个检测全球网络状况的项目,主要用于检测全球各个国家,地区的机房网络状况,服务的性能,DNS解析等等...情况的数据,通过中央服务器添加任务,下发任务到部署在全球各个国家和地区的minipc,minipc将获取到的数据反馈到监控服务,然后进行数据整合和分析提供报表,供公司更有针对性的优化网站性能。
之所以采用Flume + Elasticsearch,而没有采用ELK(elasticsearch logstash kibana),主要是因为之前的一些积累。hadoop集群的日志采集都是用Flume,而且对Flume比较熟悉,少了很多的学习成本。
总体架构:
总体流程:
1,后台 ...
- 2015-10-30 15:06
- 浏览 8150
- 评论(0)
Flume支持通过zookeeper来管理Agent的配置,但是这是一个实验性的功能。配置文件必须先上传到zookeeper中。以下Agent在Zookeeper节点树的结构:
- /flume
|- /a1 [Agent配置文件]
|- /a2 [Agent配置文件]
处理配置文件的类:
org.apache.flu ...
- 2015-10-27 11:05
- 浏览 1946
- 评论(0)
上一篇《Flume之Failover和Load balancing原理及实例》的实例的架构如下:
10.0.1.76作为Client,通过exec获取nginx的日志信息,然后将数据传到10.0.1.68(配置了Failover和Load balancing)的节点,最后10.0.1.68将数据发送的10.0.1.70,77,85,86,87节点,这些节点最终将数据写到本地硬盘。
那么问题来了,如果10.0.1.68的Flume异常退出或者服务器down机的话,10.0.1.76(Client)无法将数据发送出去。无论Channel采用的MemoryChannel还是FileChan ...
- 2015-10-23 14:56
- 浏览 847
- 评论(0)
Keepalived简介
keepalived是一款失效转发机制的软件, 基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障。它的作用是检测web服务器的状态,一个WEB服务至少会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。Keepalived工作机制
在一个VRRP虚拟路由器中,有多台物理的VRRP路由器,但是这多台的物理的 ...
- 2015-10-23 14:50
- 浏览 905
- 评论(0)
Failover Sink Processor
Failover Sink Processor维护了一个sink的优先级列表,具有故障转移的功能,具体的配置如下(加粗的必须配置):
属性名称
默认值
描述
sinks
–
- 2015-10-22 17:44
- 浏览 2725
- 评论(0)