用MR来对hbase的表数据进行分布式计算。有两点配置可以优化操作,提升性能。它们分别是:
(1)scan.setCacheBlocks(false);
然后调用下面这句来初始化map任务 TableMapReduceUtil.initTableMapperJob
这个配置项是干什么的呢? 本次mr任务scan的所有数据不放在缓存中,一方面节省了交换缓存的操作消耗,可以提升本次mr任务的效率,另一方面,一般mr任务scan的数据都是一次性或者非经常用到的,因此不需要将它们替换到缓存中,缓存中还是放一些正常的多次访问的数据,这样可以提升查询性能。
(2)conf.setBoolean("mapred.map.tasks.speculative.execution", false);
这个 "mapred.map.tasks.speculative.execution" 配置项是干什么用的呢?
是否开启mr的map备用任务机制,如果设为true,则如果一个map任务占用时间较其他的明显长很多(策略由内部设置),在其他TT节点上新建一个map任务,两个一起做,谁先做完,便结束。
优化项是将其设为false,为何呢,跟hbase存储机制有关,hbase本地存储机制,即hbase会尽量把hdfs上的数据文件和rs上对应region存在一台机器上,即当前的map的数据肯定在当前的机器上有本地数据,不需要网络传输。如果启用备用任务机制,则新创建备用任务时,很有可能新建备用任务的机器上没有所需要的数据的备份,如此便需要网络传输数据,增加了网络的开销,其效率会大大的降低,还不如不开启备用任务,就让原来的map任务正常做呢。当然,即便关闭了此机制,如果创建map失败(比如由于oom异常)仍然会在其他节点上重新创建此map任务。
相关推荐
在HBase中,MapReduce主要用于批量导入/导出数据、查询优化以及复杂的分析任务。通过HBase的TableInputFormat和TableOutputFormat,MapReduce作业可以直接读取和写入HBase表。Map阶段可以对表中的行或列族进行操作,...
Hbase安装部署及优化知识点详细解析: 一、Hbase概述 Hbase是建立在Apache HDFS上的NoSQL分布式数据库系统。它具备高可靠性、高性能、列存储、可伸缩、实时读写等特点。Hbase支持海量数据的存储和处理,并且能够...
HBase是一个分布式的、面向列的数据库,构建在Apache Hadoop和Apache ZooKeeper之...综上所述,HBase的官方文档涵盖了从基础操作、集群配置到高级主题如性能优化和故障处理的广泛内容,这些都是掌握HBase技术的关键点。
1. HBase与Hadoop的关系非常紧密,HBase依赖于Hadoop的HDFS来提供数据存储服务,并且使用MapReduce框架来进行数据分析和处理。HDFS为HBase提供了高容错性的文件系统,能够存储大量数据并保证数据的一致性和可靠性。...
5. **HBase的MapReduce支持**:HBase提供了与MapReduce的集成,允许用户使用MapReduce进行批量数据处理。例如,可以使用MapReduce进行数据导入导出、数据转换或复杂分析。 6. **HBase的监控与调优**:HBase内置了...
行计数示例**:通过一个简单的例子来演示如何使用MapReduce来计算HBase表中的行数。 - **50. Map 任务分割**:解释了如何优化MapReduce作业中Map任务的分割策略。 - **51. HBase MapReduce 示例**:提供了几个使用...
- **HBase提供的MapReduce作业**,介绍了如何使用HBase内置的MapReduce作业。 - **HFiles直接写入**,提供了批量导入数据时如何直接写入HFiles的详细指南。 - **示例和案例研究**,包括如何在MapReduce作业中访问...
在这个实例中,MapReduce从Hbase中读取数据,可能涉及到使用Hbase的API来扫描表,获取千万级别的记录。 接着,我们来到了**MapReduce** 阶段。MapReduce包含两个主要阶段:Map阶段和Reduce阶段。在Map阶段,原始...
HBase利用Hadoop的HDFS作为其文件存储系统,并且使用Hadoop MapReduce来处理HBase中的数据,同时能够与Hadoop生态中的其他工具无缝集成。 在HBase中,列族(Column Family)是表数据模型中一个非常重要的概念。列族...
这部分讨论了如何将HBase与MapReduce框架结合使用,包括如何在HBase上执行MapReduce作业,如何对HBase作为数据源和数据接收器进行操作,以及如何在批量导入过程中直接写入HFiles。 ### 安全配置 HBase的安全配置...
- **Map-Task 分割**:解释 HBase 如何与 MapReduce 结合使用以优化任务处理流程。 - **HBase MapReduce 示例**:给出具体的应用案例。 - **在 MapReduce 工作中访问其他 HBase 表**:指导如何在 MapReduce 任务中...
- **示例与访问其他表**:提供了使用HBase与MapReduce结合的实例代码,以及如何在一个MapReduce作业中访问多个HBase表的方法。 - **推测执行**:介绍了MapReduce作业中如何利用推测执行来提高整体性能。 #### 八、...
《Hadoop之HBase从入门到精通》是一个深入学习Hadoop和HBase的全面指南,旨在帮助初学者和有经验的开发者快速掌握这两个强大的大数据处理工具。Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它允许在廉价...
- 对于内存敏感的应用,可以设置溢写策略,如使用MapReduce的`mapreduce.task.io.sort.mb`和`io.sort.factor`来控制排序阶段的内存使用。 总之,理解和优化YARN的内存和CPU分配是提升Hadoop集群效率的关键。通过...
这两部分资料旨在帮助读者深入理解HBase的设计原理、操作实践以及在实际场景中的应用。 HBase是构建于Hadoop之上的开源NoSQL数据库,它提供了高可靠性、高性能、可伸缩的分布式存储。HBase基于谷歌的Bigtable设计,...
总的来说,HBase的二级索引和事务处理是两个关键的优化点,它们能够提升查询效率并支持更复杂的业务逻辑。"hbase-transactional-tableindexed-master"项目可能是对此类技术的一个具体实践,对于理解和掌握HBase的...
10. **读写操作**:HBase提供了多种API,如Java API、Thrift、REST,供应用程序进行数据读写。读操作通常是实时的,写操作通过WAL(Write-Ahead Log)保证原子性和持久性。 11. **数据分区与负载均衡**:Region是...