自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 收藏
  • 关注

Flume - MemoryChannel源码解析

MemoryChannel的简易类结构:内部类MemoryTransaction的简易类结构:一,configure(Context context) 1,capacity:MemroyChannel的容量,默认是100。 2,transCapacity:每个事务最大的容量,也就是每个事务能够获取的最大Event数量。默认也是100。 3,byteCapacityB...

2015-11-21 15:55:00 360

Flume + HDFS Sink采集数据及如何添加第三方JAR

Flume默认情况下是没有引入HDFS,Kafka,Elasticsearch,Hbase等sink的相关jar包,如果使用,需要自行添加相关jar包。下面我以使用HDFS Sink为例,在Flume中加入第三方JAR包。Flume支持一种特殊的目录结构:plugins.d,它有特殊的格式,可以很方面的管理第三方JAR。当然我们可以直接把第三方JAR丢掉$FLUME_HOME/lib目录,...

2015-11-19 14:36:00 479

Flume之ChannelProcessor源码分析

接着上篇:Flume之ChannelSelector源码分析ChannelSelector主要是根据Event选择将其发送到哪些Channel。ChannelProcessor是通过ChannelSelector获取到Channels后,如何发送Event到Channel。ChannelProcessor提供了将Source接收到的Events放入到Channels的一些方法,如果写入Chan...

2015-11-10 11:58:00 574

Flume之ChannelSelector源码分析

Flume中channel选择器(selector.type配置)必须实现ChannelSelector接口,实现了该接口的类主要作用是告诉Source中接收到的Event应该发送到哪些Channel,在Flume中主要由两个实现方式:1,复用,实现类:MultiplexingChannelSelector2,复制,实现类:ReplicatingChannelSelector如下:...

2015-11-09 21:20:00 278

Exec Source使用及源码分析

Exec source介绍Exec source在启动时运行Unix命令,并且期望它会不断的在标准输出中产生数据。 (stderr会被丢弃,除非logStdErr设置成true).如果进程因为某些原因退出,Exce Source也将退出并且不会再产生数据。粗粒标注的必须配置:属性名默认描述channels–type...

2015-11-09 14:34:00 342

Google Guava 类库简介

Guava 是Google的基于JDK类库集合的扩展项目,目前Guava的最高版本是guava-18.0.jar,基于JDK1.7。Guava是一个高质量的API可以使你的Java代码更加优雅,更加简洁。Guava应用很广泛,目前很多开源的框架都使用了Google Guava类库,我也是在看一些开源框架的源码才了解到Guava的,看到开源框架使用了Guava的什么类,就去了解一下。源码包:...

2015-11-07 17:54:00 326

SpoolDirectorySource使用及源码分析

Spooling Directory Source简介Spooling Directory Source可以获取硬盘上“spooling”目录的数据,这个Source将监视指定目录是否有新文件,如果有新文件的话,就解析这个新文件。事件的解析逻辑是可插拔的。在文件的内容所有的都读取到Channel之后,Spooling Directory Source会重名或者是删除该文件以表示文件已经读取完成...

2015-11-07 16:58:00 635

Flume HDFS Sink使用及源码分析

HDFS Sink介绍Flume导入数据HDFS,目前只支持创建序列化(sequence)文件和文本(text)文件。还支持这两个文件的压缩。文件可以根据运行的时间,数据的大小和时间的数量来进行周期性的滚动(关闭当前文件产生新的文件)。也可以根据数据属性分区,例如根据时间戳或机器分区。HDFS目录路径可以包含格式化的转义字符,生成目录路径可以通过格式化转移字符(escape sequences...

2015-11-06 14:09:00 641

Flume几种监控方式

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.authentica...

2015-11-04 17:57:00 1038

JMX 和 管理系统简介(一)

JMX 是管理系统和资源之间的一个接口,它定义了管理系统和资源之间交互的标准。javax.management.MBeanServer实现了 Agent 的功能,以标准的方式给出了管理系统访问 JMX 框架的接口。而从类库的层次上看,JMX 包括了核心类库 java.lang.management和 javax.management包。java.lang.management包提供了基本的 VM ...

2015-11-03 18:04:00 268

Flume+Elasticsearch搭建实时日志分析系统

最近做一个检测全球网络状况的项目,主要用于检测全球各个国家,地区的机房网络状况,服务的性能,DNS解析等等...情况的数据,通过中央服务器添加任务,下发任务到部署在全球各个国家和地区的minipc,minipc将获取到的数据反馈到监控服务,然后进行数据整合和分析提供报表,供公司更有针对性的优化网站性能。之所以采用Flume + Elasticsearch,而没有采用ELK(elasticsea...

2015-10-30 15:06:00 1343

Flume采用zookeeper管理配置

Flume支持通过zookeeper来管理Agent的配置,但是这是一个实验性的功能。配置文件必须先上传到zookeeper中。以下Agent在Zookeeper节点树的结构:- /flume |- /a1 [Agent配置文件] |- /a2 [Agent配置文件]处理配置文件的类:org.apache.flume.node.PollingZooKeeperC...

2015-10-27 11:05:00 566

Flume + Keepalived构建高可用分布式采集系统

上一篇《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节点,这些节点最终将数据写到本地硬盘。那么...

2015-10-23 14:56:00 204

keepalived安装部署及Flume+keepalived高可用

Keepalived简介 keepalived是一款失效转发机制的软件, 基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障。它的作用是检测web服务器的状态,一个WEB服务至少会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消...

2015-10-23 14:50:00 234

Flume之Failover和Load balancing原理及实例

Failover Sink ProcessorFailover Sink Processor维护了一个sink的优先级列表,具有故障转移的功能,具体的配置如下(加粗的必须配置):属性名称默认值描述sinks–多个sink用空格分开。processor.typedefault组件的名称,...

2015-10-22 17:44:00 396

Java序列化及serialVersionUID作用

serialVersionUIDserialVersionUID的作用:序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。类实现了Serializable接口时,如果没有定义serialVersionUID,在Eclipse中会提示你去定义,在Eclipse中点击类中的warning图标时,Eclipse提供给我们两种方式去生成serialVersionUID,分别...

2015-09-21 14:23:00 138

Java类锁和对象锁

在并发环境下,采用锁的方式来解决对共享资源的互斥访问。在Java中,锁可以分类如下两类:对象锁 JAVA中所有的对象都有一个同步锁,每个同步锁会有一个计数器,JVM负责跟踪对象被加锁的次数,没有线程获取该对象的锁时,计数器的值为0,如果一个线程第一次对这个对象加锁,那么计数器的值就为1,之后相同的线程在获得该对象的锁时,计数都会递增的加1,如果相同的线程对此对象解锁,那么计数器就会减1,当计算...

2015-09-09 19:37:00 122

Java多线程的那些事儿

进程和线程说到线程,不得不提到进程,首先我们宏观的了解一下进程和线程。进程,进程是具有一定独立功能的程序,进程是系统进行资源分配和调度的一个独立单位,竟争计算机系统资源的基本单位。每一个进程都有一个自己的物理地址空间,即进程空间或(虚空间)。一个进程崩溃后,在保护模式下不会对其它进程产生影响。线程,线程是进程下的一个实体,由CPU调度和分配的基本单位,线程基本上不拥有系统资源,只拥有一...

2015-09-09 14:40:00 143

java.lang.IllegalMonitorStateException异常

IllegalMonitorStateException异常,我们先看下API的定义:/** * Thrown to indicate that a thread has attempted to wait on an * object's monitor or to notify other threads waiting on an object's * monitor with...

2015-09-08 15:56:00 465

Flume - Too many unapproved licenses: 1

[ERROR] Failed to execute goal org.apache.rat:apache-rat-plugin:0.7:check (verify.rat) on project flume-ng-elasticsearch-sink: Too many unapproved licenses: 1 -> [Help 1][ERROR][ERROR] To see t...

2015-09-04 00:29:00 317

Flume - 安装及启动命令详解

安装Flume1,到官网下载Flume,下载地址:http://flume.apache.org/download.html2 ,[root@bicloud77 home]# tar zxvf apache-flume-1.5.2-bin.tar.gz3, [root@bicloud77 home]#cd apache-flume-1.5.2-bin4,[root@bicloud7...

2015-09-04 00:28:00 2419

Memcached之HA架构(9)

关于magent的安装,在上篇已经讲过,请查看:Memcached之代理服务magent(8)magent简介1,和Memcached一样,也是基于libevent的事件驱动模型。从安装magent就能看得出来,必须先安装libevent包。2,支持ketama的一致性算法。3,支持Memcached的二进制协议,实现请求转发。4,magent和每个memcached保持多个长...

2015-09-02 17:23:00 144

Memcached之代理服务magent(8)

magent是一款开源的Memcached代理服务器软件,可以实现Memcached之间的主从备份。在主节点挂点的情况下,会自动切换到从节点继续提供服务。本篇主要介绍magent的安装,以及安装过程中碰到的一些问题。编译安装libevent:[root@bicloud75 home]#wget http://monkey.org/~provos/libevent-1.4.9-stabl...

2015-09-02 16:29:00 137

Flume - 各模块介绍

简介Flume是一个分布式,可靠的,可以用来有效的收集,聚合和移动大的日志数据的可用服务。它是一个基于数据流的简单且灵活的框架。采用可调可靠性机制和多种故障转移及恢复机制保证很好的稳健性和容错性。它使用了一个简单的可扩展的数据模型,允许在线分析应用。data flow(数据流)是Flume最重要的抽象,data flow描述了从数据产生,传输、处理并最终写入目标路径。下图描述了Flume重要...

2015-08-31 21:37:00 325

Flume - 重新编译源码

Flume是一个分布式日志收集系统系统,具体的后面的文章会详细介绍。因为在使用Flame的过程中自定义了一些功能,所以需求重新打包,本篇只讲述如果编译,打包,导入eclipse阅读源码。编译过程中遇到些问题,网上找了好多资料,都无法解决。记录下来,希望能对需要的人有所帮助。1,通过git下载源码,最新版本是1.7.0,我编译的是1.7.0的快照版本 地址:https://git...

2015-08-31 21:36:00 569

Memcached之缓存雪崩,缓存穿透,缓存预热,缓存算法(7)

缓存雪崩缓存雪崩可能是因为数据未加载到缓存中,或者缓存同一时间大面积的失效,从而导致所有请求都去查数据库,导致数据库CPU和内存负载过高,甚至宕机。解决思路:1,采用加锁计数,或者使用合理的队列数量来避免缓存失效时对数据库造成太大的压力。这种办法虽然能缓解数据库的压力,但是同时又降低了系统的吞吐量。2,分析用户行为,尽量让失效时间点均匀分布。避免缓存雪崩的出现。3,如果是因为某...

2015-08-27 20:37:00 286

BitSet和布隆过滤器(Bloom Filter)

布隆过滤器Bloom Filter 是由Howard Bloom 在 1970 年提出的二进制向量数据结构,它具有很好的空间和时间效率,被用来检测一个元素是不是集合中的一个成员。如果检测结果为是,该元素不一定在集合中;但如果检测结果为否,该元素一定不在集合中。因此Bloom filter具有100%的召回率。这样每个检测请求返回有“在集合内(可能错误)”和“不在集合内(绝对不在集合内)”两种...

2015-08-27 20:33:00 757 1

生产服务器环境最小化安装后 Centos 6.5优化配置备忘

转载地址:http://www.lvtao.net/server/centos-server-setup.html启动网卡#centos6.x最小化安装后,网卡默认不是启动状态ifup eth0SSH链接 ifconfig 查看IP后SSH终端连接。更新源 最小化安装是没有wget工具的,必须先安装在修改源)yum install wget备份原系统更新源mv /...

2015-08-26 18:04:00 89

Memcached之原子性(6)

Memcached所有单个命令都是原子性的。如果针对同一个Item发送一个set命令和一个get命令,这两个命令之间是不会有影响的。即使是在多线程环境下,所有的命令也都是原子性的,但是我们要注意单个命令是原子性的,但是命令和命令之间的序列不是原子性的。例如使用get命令获取一个Item,然后通过set命令修改该Item,这个时候Memcached是无法保证该Item的值或其他属性不会被其他的进...

2015-08-26 18:03:00 205

Memcached之客户端-xmemcached(5)

高性能Java memcached客户端——Xmemcached发布2.0.0版本,主要改进如下: 性能优化,在测试中文本协议实现有接近10%的性能提升。 批量获取key如果包含相同的key,会缓存反序列化后的对象,减少重复反序列化的CPU开销。 修复getStats没办法获取cache dump的Bug,感谢machao9email。 修复ONE_AT_A_TIME没有正确处理无符号...

2015-08-26 09:38:00 473

Memcached之你真正理解LRU吗(4)

众所周知,Memcached使用的是LRU(Least Recently Used最近最少使用)算法来回收缓存,将那些属于LRU的数据移出内存,从而腾出空间来加载另外的数据。那么Memcached的最近最少使用算法是怎么实现的呢?也许很多人都会回答:不就是在内存满了的情况下,把最近最少使用的Key替换掉,然后插入新的Key-Value键值对吗?其实不然,下面我们来深入的分析Memcached的LR...

2015-08-25 21:58:00 256

Memcached之stats命令(3)

telnet连接到Memcached服务器以后,可以使用很多命令,比如:get,gets,set,touch,delete,add,replace,append,prepend,incr,decr,cas,flush_all,version,quit等等还有就是该篇要讲的stats命令,该命令可以获取到memcached服务器的相关信息。stats[root@bicloud75 m...

2015-08-25 16:44:00 203

Memcached之存储命令(2)

telnet连接到Memcached服务器以后,可以使用很多命令,比如:get,gets,set,touch,delete,add,replace,append,prepend,incr,decr,cas,flush_all,version,quit等等Memcached存储命令的格式:<command name> <key> <flags> &lt...

2015-08-25 11:51:00 173

Memcached之Window和Linux安装(1)

Window安装Memecachedwindows下使用memcached,直接在网上下载memcached.exe即可。Linux安装Memecached1,首先下载Memached安装包:http://www.memcached.org/files/memcached-1.4.22.tar.gz2,另外,Memcache用到了libevent这个库用于So...

2015-08-25 11:49:00 135

Maven构建真正的J2EE项目

今天同事问起我目前用Maven构建的多模块项目架构和以前用Eclipse创建的Web项目的问题,下面将讲一下使用maven搭建多模块的J2ee项目,以及采用这种方式搭建项目对日后项目的水平拆分和垂直拆分的好处,最后会给一个示例项目供大家下载。1,安装MavenMaven安装很简单。首先下载Maven,下载地址:http://maven.apache.org/download.cgi...

2015-08-21 10:55:00 203

Hadoop之命令集合(全)

Hadoop命令系列文章共5篇,链接地址如下:Hadoop之文件系统ShellHadoop之命令指南Hadoop之HDFS命令Hadoop之MapReduce命令Hadoop之YARN命令希望对大家能有所帮助,不正确的地方希望留言讨论。...

2015-08-19 23:59:00 234

Hadoop之HDFS命令

概述所有的HDFS命令都调用bin/hdfs脚本文件,如果运行hdfs脚本没有带任何参数的话,则打印所有命令的描述。使用: hdfs [SHELL_OPTIONS] COMMAND [GENERIC_OPTIONS] [COMMAND_OPTIONS]Hadoop是一个参数解析框架,采用解析泛型选项以及运行类。命令参数描述--config--l...

2015-08-19 13:46:00 500

Win7 VNC远程连接Centos桌面

一,安装Linux桌面:yum -y groupinstall Desktopyum -y groupinstall "X Window System"yum -y groupinstall chinese-supportvi /etc/sysconfig/i18n将en_US改成zh_CN二,安装VNCServer服务包: 1,安装VNCServer服务端软件包。 #...

2015-08-18 09:23:00 274

文件锁-FileLock

最近在看flume部分功能的源码,关于FileLock的使用,其实在很多开源框架都有涉及,我所看过的有lucene,zookeeper,hadoop,es等开源框架都有用到,下面简单的介绍下FileLock。 1,FileLock是独占锁,控制不同程序(JVM)对同一文件的并发访问。2,可以对写文件(w)加锁,而且必须是可写文件,不然回报:java.nio.channels.NonWrit...

2015-08-17 21:49:00 552

Hadoop之机房down机后...

由于公司机房异常断电,导致测试环境的hadoop集群数据全部down掉。重启hadoop集群后,访问:http://xxx.xxx.xxx.xx:50070/dfshealth.html提示:NameNode is still loading. Redirecting to the Startup Progress page.如图:这个不是错误。因为hadoop启动时,会进入安全模...

2015-08-17 12:33:00 310

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除