文档章节

一个Hbase数据读取优化的小例子

我是彩笔
 我是彩笔
发布于 2015/05/07 11:01
字数 450
阅读 1566
收藏 6

今天群里有个有经验的大神提了一个问题(@尘事随缘),记录下来。

A君搭建一个小型的集群,7台DataNode,一台主节点。需求是这样:通过MR程序去读取Hbase表里面的数据,程序运行后发现速度比较慢,通过查询任务详细发现,累计需要1542个Map完成,目前有14个MAP在执行。客户对此速度表示不满意,请问如何优化?


首先通过Job看,有1542个Map需要执行,说明Hbase,有1542个分区(每个分区对应一个Map),这是一个知识点。

数据不存在热点,Hbase处理性能没有问题

有1542个Map需要执行,但是并行的只有14个,说明Map的数据量不够。

经过询问,他没有做配置,默认每台机器只有2个Map,所以并行度是7*2=14,也就是同时运行14个Map

所以提示他去配置文件重新配置,每台机器配置的Map数据量是CPU个,因为8个CPU,所以配置8个MAP。那么并行处理能力是7*8=56(同时56个Map)。

运行速度提升4倍。

参数修改:

conf/mapred-site.xml

1.0 版本是这个参数 mapred.tasktracker.map.tasks.maximum 配置Map

mapred.tasktracker.reduce.tasks.maximum 配置Reduce

https://hadoop.apache.org/docs/r1.0.4/mapred-default.html

2.0 版本是这个参数

mapreduce.map.cpu.vcores 配置 每个Map Task 需要的虚拟CPU的个数

http://hadoop.apache.org/docs/r2.4.1/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

反思: 

  1. Hadoop集群搭建好了,必须要做优化(优化需要根据你不同的业务场景来做优化)

  2. 一个Region对应一个Map,那么反过来,批量导入数据到Hbase,怎么优化呢?

© 著作权归作者所有

共有 人打赏支持
我是彩笔
粉丝 7
博文 23
码字总数 1936
作品 0
浦东
私信 提问
加载中

评论(1)

苏斌
苏斌
批量导入,用bulkload啊
HBase最佳实践之HBase查询优化

1.概述 HBase是一个实时的非关系型数据库,用来存储海量数据。但是,在实际使用场景中,在使用HBase API查询HBase中的数据时,有时会发现数据查询会很慢。本篇博客将从客户端优化和服务端优化...

刺猬一号
2018/08/06
0
0
Apache HBase 2015 年发展回顾与未来展望

编者按:高可用架构推出 2015 年度回顾系列文章,分享在架构领域具有典型意义的年度案例,本文由张虔熙分享。转载请注明来自高可用架构公众号「ArchNotes」。 张虔熙,Hulu 网,专注于分布式...

oschina
2016/01/05
3.3K
4
大数据Spark优化读取Hbase--region 提高并行数过程详细解析

一. Hbase 的 region 我们先简单介绍下 Hbase 的 架构和 region : 从物理集群的角度看,Hbase 集群中,由一个 Hmaster 管理多个 HRegionServer,其中每个 HRegionServer 都对应一台物理机器...

金铭鼎IT教育
2018/12/17
0
0
修改HBase的rowkey设计把应用的QPS从5W提升到50W

UTT是Aliexpress的营销消息运营平台,运营希望促销活动时APP消息推送的QPS达到34W。 UTT刚接入APP消息推送时,QPS只能达到5W,离运营的要求有很大的距离。 通过改造,QPS达到了50W,其中最主...

饭菜两光
2018/08/03
0
0
Hive 数据导入HBase的2种方法详解

最近经常被问到这个问题,所以简单写一下总结。 Hive数据导入到HBase基本有2个方案: 1、HBase中建表,然后Hive中建一个外部表,这样当Hive中写入数据后,HBase中也会同时更新 2、MapReduce...

王二铁
2015/08/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

自定义线程池

自定义线程工厂: public class CustomThreadFactory implements ThreadFactory { private static final Logger LOGGER = LoggerFactory.getLogger(CustomThreadFactory.class); pu......

hensemlee
13分钟前
1
0
【剑指offer纪念版】-- 面试题目录

2.实现Singleton模式 3.二维数组中的查找 4.替换空格 5.从尾到头打印链表 6.重建二叉树 7.用两个栈实现队列 8.旋转数组的最小数字 9.斐波那契数列 10.二进制中1的个数 11.数值的整数次方 12...

细节探索者
26分钟前
1
0
记一次oom内核优化记录:vm.lower_zone_protection

情景 最近gitlab服务会偶发性500,当前机器部署了gitlab、nfs等服务,经过排查发现是nfsd引发oom,导致系统运行不畅。处理过程如下: 事故现场 开发在使用gitlab的时候发现,偶发性的出现500...

阿dai
58分钟前
4
0
Spring Batch JSON 支持

Spring Batch 4.1 开始能够支持 JSON 格式了。这个发布介绍了一个新的数据读(item reader)能够读取一个 JSON 资源,这个资源按照下面的格式: [  {    "isin": "123",    ...

honeymose
今天
0
0
浏览器缓存

HTTP缓存类型 200 from cache:直接从本地缓存获取响应,可细分为from disk cache, from memory cache 304 Not Modified:协商缓存,本地未命中发送校验数据到服务端,如果服务端数据没有改变,则读...

关元
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部