1.简介 kafka是由LinkedIn开源的一款分布式消息系统,使用scala语言开发,因其可扩展性和高吞吐率而被广泛使用。 开源到Apache以后已发展成一个分布式的实时处理平台,它具有以下特性: * 可以发布-订阅消息,作为ESB使用。 * 可以以容错的方式存储流式记录。 * 可以实时的处理流式数据。 * 可以在系统或者应用之间创建可靠的实时…
版权申明:转载请注明出处。 文章来源:玄涧思库 jvm在运行时会将管理的内存划分为多个区域,每个区域都有各自的作用,而且几乎每个区域都会有内存溢出或者泄露的问题。先上一张jvm运行时数据区域图。 1.程序计数器 程序计数器是记录线程执行的字节码所在行号的指示器,其在内存中占用一小块空间。机器执行指令时,任何时候都只能执行一条指令,对于多核处理器也是…
1.HDFS Sink hdfs sink支持将text类型或者sequenceFile类型的event写入hdfs,同时也支持在写入的时候进行压缩。 flume使用hadoop提供的FileSystem相关的操作工具,使用hsync或者hflush的方式将数据写入hdfs。 > HDFS在写数据务必要保证数据的一致性与持久性,从HDFS最初…
版权申明:转载请注明出处。 文章来源:玄涧思库 最近在对一个项目的jvm参数进行优化的时候发现配置完以后项目无法启动,打印了日志看到如下提示: Conflicting collector combinations in option list; please refer to the release notes for the combinatio…
版权申明:转载请注明出处。 文章来源:玄涧思库 1.压缩方式及实现类 hdfs上解压和压缩文件不像本地这么方便,所以写了一个工具。可以解压和压缩,使用的时候指定压缩或者解压使用的类就行。先列举一下hdfs各种压缩及解压方式的实现类: 压缩格式 实现类 DEFLATE org.apache.hadoop.io.compress.DefaultCode…
版权申明:转载请注明出处。 文章来源:玄涧思库 channel可以理解为一种临时的存储,source将event放入channel ,sink取走它。flume提供了四种可以用于生产环境的channel。 1.Memory Channel 基于内存的channel,实际就是将event存放于内存中一个固定大小的队列中。其优点是速度快,缺点是可能丢失…
版权申明:转载请注明出处。 文章来源:玄涧思库 flume中提供了多种source来应对不同场景的数据传输,最常用的有exec source和spooling directory source。下面对flume的source做详细的说明。 1.Spooling Directory Source 这种方式是将要传输的文件放在磁盘的某个目录下,这个目录…
版权申明:转载请注明出处。 文章来源:玄涧思库 1.简介 flume是一个分布式、高可用的系统,它用来收集,合并,移动不同来源的大量数据到一个指定的存储。它不仅限于处理文本类的日志数据,还能处理社交媒体数据,二进制数据以及邮件信息等几乎所有的数据格式。 2.架构 (1)flume source消费来自于外部传递给它的event,外部的来源常见的有w…
版权申明:转载请注明出处。 文章来源:玄涧思库 前言 连续做了两个月的项目,发现很久没有更新博客了,项目中遇到的很多东西都没时间记录下来。最近在搞ESB,对,现在不仅仅是大数据工程师了,什么都开搞了。以前没怎么深入了解过log4j,趁这次机会了解一下,写篇博文记录下来。 1.log4j中的三大组成要素 Loggers(记录器)。定义了日志的级别。 …
版权申明:转载请注明出处。 文章来源:玄涧思库 1.spark作业配置的三种方式 读取指定配置文件,默认为conf/spark-defaults.conf。 在程序中的SparkConf中指定,如conf.setAppName("myspark")。 spark-submit中使用参数。 这三种方式的优先级为SparkConf>spark-subm…