Java的好处之一是有大量的库可供开发者使用,然而,这些库通常都有较多版本,并且也往往会依赖其他的库。 使用Maven或者其他构建工具时,经常需要将这些依赖打包成一个Jar包,或者自己的Jar包与其他的Jar包同时放到Classpath中。 这些时候,很容易就会产生一个常见的问题,就是依赖的库不同的版本间会有冲突。

Read More

C-Store是一个为了快速查询而设计的关系型数据库,它的论文发表于2005年的VLDB。 为了达到更快的查询性能,C-Store按列存储数据,同一个表中的不同列可能被存在不同的、可能有重叠的Projection中。 虽然C-Store没有提出什么新的技术,但它是第一次将与列存储相关的技术整合到一起,成为一个真正理论上可用的系统,所以其设计和系统架构仍被广泛借鉴。 HPE Vertica这款商业存储系统,就是基于C-Store设计并实现的。

Read More

这几天遇到一个问题:一个Java的线上Service经常抛出超时警告。 经过简单的测试,发现是内存快满了,这是JVM经常会出现的一种情况。 JDK带了很多小工具,以帮助软件开发人员了解、分析和解决JVM中可能存在的问题。 其中的大部分,Oracle都声称是实验性质的,但绝对好用。 本文主要是通过这个例子,用于介绍如何通过jstat,jcmd,jmap和jhat这三个JDK自带的工具来发现和监测JVM中的内存问题。

Read More

Apache Flink是一个开源的支持大规模流式或批量数据处理的平台。 上周有段时间调研了一下Flink,看了一下官方文档和部分代码,重点是研究了下Checkpointing机制。 然而其中的技术细节比较多,作为一个初步调研,本文还是希望通过几个简单的例子,来说明如何将Flink使用起来。 具体地,本文包括如下几个内容:

  • 如何在YARN上部署一个Flink集群
  • 如何使用Flink消费Kafka上的数据
  • Flink的任务异常恢复与任务重启的测试
Read More

今天已经是2016年的第三天。 元旦以来有些忙碌,加之身体不是很好,才在2016年第一个工作日的前一天夜晚,写去年的读书总结。 在2015年尚未到来的时候,我打算在2015年读至少50本书,基本上每周一本的节奏。 每周一本书并不是多高的要求,然而我还是没能做到,只读了20本书。 可也总不能因为读的少就羞于回顾。

Read More