`
qianshangding
  • 浏览: 124362 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
文章列表
MemoryChannel的简易类结构: 内部类MemoryTransaction的简易类结构: 一,configure(Context context) 1,capacity:MemroyChannel的容量,默认是100。 2,transCapacity:每个事务最大的容量,也就是每个事务能够获取的最大Event数量。默认也 ...
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启动脚本会 ...
接着上篇:Flume之ChannelSelector源码分析 ChannelSelector主要是根据Event选择将其发送到哪些Channel。ChannelProcessor是通过ChannelSelector获取到Channels后,如何发送Event到Channel。ChannelProcessor提供了将Source接收到的Events放入到Channels的一些方法,如果写入Channels发生错误,统一抛出ChannelException异常。每个ChannelProcessor实例都有一个ChannelSelector实例(ChannelSelector实例分别维护了可选的Ch ...
Flume中channel选择器(selector.type配置)必须实现ChannelSelector接口,实现了该接口的类主要作用是告诉Source中接收到的Event应该发送到哪些Channel,在Flume中主要由两个实现方式: 1,复用,实现类:MultiplexingChannelSelector 2,复制,实现类:ReplicatingChannelSelector 如下: ChannelSelector接口两个主要的方法是: //获取必选的Channel列表 public List<Channel> getRequiredChannels(Event ...
Exec source介绍 Exec source在启动时运行Unix命令,并且期望它会不断的在标准输出中产生数据。 (stderr会被丢弃,除非logStdErr设置成true).如果进程因为某些原因退出,Exce Source也将退出并且不会再产生数据。 粗粒标注的必须配置: 属性名 默认 描述 channels – type
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 ...
Spooling Directory Source简介 Spooling Directory Source可以获取硬盘上“spooling”目录的数据,这个Source将监视指定目录是否有新文件,如果有新文件的话,就解析这个新文件。事件的解析逻辑是可插拔的。在文件的内容所有的都读取到Channel之后,Spooling Directory Source会重名或者是删除该文件以表示文件已经读取完成。 不像Exec Source,这个Source是可靠的,且不会丢失数据。即使Flume重启或者被Kill。但是需要注意如下两点: 1,如果文件在放入spooling目录之后还在写,那么Flume ...
HDFS Sink介绍 Flume导入数据HDFS,目前只支持创建序列化(sequence)文件和文本(text)文件。还支持这两个文件的压缩。文件可以根据运行的时间,数据的大小和时间的数量来进行周期性的滚动(关闭当前文件产生新的文件)。也可以根据数据属性分区,例如根据时间戳或机器分区。HDFS目录路径可以包含格式化的转义字符,生成目录路径可以通过格式化转移字符(escape sequences),HDFS sink通过这些转义字符生成一个目录或者文件去存储Event。当然在Flume中使用HDFS Sink的话,需要添加HDFS相关的Jar,这样Flume就能使用Hadoop的jar和Had ...
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 ...
JMX 是管理系统和资源之间的一个接口,它定义了管理系统和资源之间交互的标准。javax.management.MBeanServer实现了 Agent 的功能,以标准的方式给出了管理系统访问 JMX 框架的接口。而从类库的层次上看,JMX 包括了核心类库 java.lang.management和 javax.management包。java.lang.management包提供了基本的 VM 监控功能,而 javax.management包则向用户提供了扩展功能。 架构图: JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、 ...
最近做一个检测全球网络状况的项目,主要用于检测全球各个国家,地区的机房网络状况,服务的性能,DNS解析等等...情况的数据,通过中央服务器添加任务,下发任务到部署在全球各个国家和地区的minipc,minipc将获取到的数据反馈到监控服务,然后进行数据整合和分析提供报表,供公司更有针对性的优化网站性能。 之所以采用Flume + Elasticsearch,而没有采用ELK(elasticsearch logstash kibana),主要是因为之前的一些积累。hadoop集群的日志采集都是用Flume,而且对Flume比较熟悉,少了很多的学习成本。 总体架构: 总体流程: 1,后台 ...
Flume支持通过zookeeper来管理Agent的配置,但是这是一个实验性的功能。配置文件必须先上传到zookeeper中。以下Agent在Zookeeper节点树的结构: - /flume |- /a1 [Agent配置文件] |- /a2 [Agent配置文件] 处理配置文件的类: org.apache.flu ...
上一篇《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 ...
Keepalived简介 keepalived是一款失效转发机制的软件, 基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障。它的作用是检测web服务器的状态,一个WEB服务至少会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。Keepalived工作机制 在一个VRRP虚拟路由器中,有多台物理的VRRP路由器,但是这多台的物理的 ...
Failover Sink Processor Failover Sink Processor维护了一个sink的优先级列表,具有故障转移的功能,具体的配置如下(加粗的必须配置): 属性名称 默认值 描述 sinks –
Global site tag (gtag.js) - Google Analytics