• 在Spark上通过自定义RDD访问HBase

    这里介绍一个在Spark上使用自定义RDD获取HBase数据的方案。 这个方案的基础是我们的HBase表的行键设计。行键设计大概是这样子的:标签ID+时间戳+随机码。平时的需求主要是导出指定标签在某个时间范围内的全部记录。根据需求和行键设计

    [阅读更多...]
  • Unsupported major.minor version

    又遇到了Unsupported major.minor version 52.0这个问题。很清楚这是编译打包时使用的jdk版本与运行环境jre版本不一致导致的。但是总是记不住具体的jdk版本与major version的对应关系。在这里记一

    [阅读更多...]
  • kafka0.9 Consumer poll()方法阻塞

    最近项目中用到了Kafka0.9,在使用0.9的Consumer API的时候遇到了poll()方法阻塞的问题。程序没有报任何错误,只是持续在poll()方法处阻塞。深入poll()方法可以看到是在AbstractCoordinator.e

    [阅读更多...]
  • 获取Kafka Consumer的offset

    从kafka的0.8.11版本开始,它会将consumer的offset提交给ZooKeeper。然而当offset的数量(consumer数量 * partition的数量)的很多的时候,ZooKeeper的适应性就可能会出现不足。幸运的

    [阅读更多...]
  • HBase连接异常:KeeperErrorCode = OperationTimeout

    手上的一个HBase相关的服务在重启后开始报错(重启前运行良好),错误信息如下: 错误信息提示连接zookeeper时间超长。经检查是因为有一个zookeeper节点已经停止运行(zk3.com),和运维商量后将zookeeper故障节点删

    [阅读更多...]
  • 使用HBase Coprocessor

    HBase的Coprocessor是模仿谷歌BigTable的Coprocessor模型实现的。 Coprocessor提供了一种机制可以让开发者直接在RegionServer上运行自定义代码来管理数据。 首先必须要指明使用Coproces

    [阅读更多...]
  • 使用BufferedMutator

    org.apache.hadoop.hbase.client.BufferedMutator主要用来对HBase的单个表进行操作。它和Put类的作用差不多,但是主要用来实现批量的异步写操作。 BufferedMutator替换了HTable

    [阅读更多...]
  • 译文:HBase File Locality in HDFS

    Hadoop中一个不明确的内容就是Block复制:它自动完成,通常不需要用户关心。HBase将数据保存到HDFS,并完全相信它的安全性。正是因为HDFS的Block复制对HBase来说是完全透明的,就产生了一个问题:HBase的效率会受到多

    [阅读更多...]
  • HBase Region Locality

    因为DataNode和RegionServer通常会部署在相同的机器上,所以会产生Locality这样的概念。 HBase的Locality是通过HDFS的Block复制实现的。在复制Block时,HBase是这样选择副本的位置的: 第一个

    [阅读更多...]
  • 使用HBase总结

    前段时间我们在项目中使用了HBase,在这里记一下使用经历或者说踩过的坑。 RowKey设计 我们读取数据的方式主要是批量查询,因此在最初的设计中就将大部分查询字段放在了RowKey上,目的是利用RowKey作为索引的特性。 关于RowKe

    [阅读更多...]