接上一篇,对hbase参数进行优化,主要是调整与查询效率相关的参数
count
select count(1) from hbase_table;
部分字段切表
insert overwrite table hive_table select a,b,c,d from hbase_table;
全字段切表
insert into table test_table partition(part='aa') select * from hbase_table;
hive至hive切表
create table test_table2 like test_table;
insert into table test_table2 partition(part) select * from test_table;
优化修改参数
<property>
<name>hbase.regionserver.handler.count</name>
<value>100</value>
<description>Count of RPC Listener instances spun up on RegionServers.
Same property is used by the Master for count of master handlers.
Default is 10.
</description>
</property>
<property>
<name>hfile.block.cache.size</name>
<value>0.4</value>
<description>
Percentage of maximum heap (-Xmx setting) to allocate to block cache
used by HFile/StoreFile. Default of 0.25 means allocate 25%.
Set to 0 to disable but it's not recommended.
</description>
</property>
<property>
<name>hbase.client.scanner.caching</name>
<value>1000</value>
<description>Number of rows that will be fetched when calling next
on a scanner if it is not served from (local, client) memory. Higher
caching values will enable faster scanners but will eat up more memory
and some calls of next may take longer and longer times when the cache is empty.
Do not set this value such that the time between invocations is greater
than the scanner timeout; i.e. hbase.regionserver.lease.period
</description>
</property>
切表
优化前后 | 字段全量与否 | case | 数据量 | cpu cost(minutes,seconds) | 执行cost(seconds) |
前 | 部分 | hbase->hive | 1616374 | 10 , 18 | 359.162 |
后 | 部分 | hbase->hive | 1616374 | 3 , 24 | 281.975 |
后 | 部分 | hbase->hive | 1616374 | 2 , 38 | 232.391 |
后 | 部分 | hbase->hive | 2608626 | 4 , 39 | 263.206 |
后 | 全量 | hbase->hive | 2608626 | 7 , 53 | 820.914 |
后 | 部分 | hbase->hive | 12230528 | 13 , 22 | 765.262 |
后 | 全量 | hbase->hive | 12230528 | 22 , 59 | 1305.236 |
后 | 全量 | hive->hive | 12230528 | 10 , 41 | 580.522 |
count
优化前后 | 表类型 | 数据量 | cpu cost(minutes,seconds) | 执行cost(seconds) |
优化前 | hbase | 1616374 | 10 , 45 | 728.647 |
| hive | 1616374 | 0 , 25 | 64.815 |
优化后 | hbase | 1616374 | 4 , 9 | 609.28 |
优化后 | hbase | 12230528 | 13 , 10 | 907.44 |
| hive | 12230528 | 3 , 18 | 422.138 |
总结
hive&hbase表的统计计算性能远低于hive表的统计计算,相差3倍乃至以上。
hbase参数优化前后有查询统计效率成倍提升,但与hive表相比也存在差距。
hive&hbase表切成hive表部分字段由于全量字段。
...
综上,hive的hbase存储结构不善于统计计算;hive表的hbase存储结构切换成hive普通的存储结构,随着数据量增加,性能也令人堪忧(如上测试也可以看到,即使是hive与hive表的切表数据量大也是很耗时的)。hbase方案具体是选择居于hive&hbase表统计计算,还是选择hive&hbase表切换成hive表后统计计算,需要权衡,或者是否有其他更好hive与hbase关联方案,需要继续研究。
分析:随着数据量越来越大,每天都进行hbase—>hive的切表,这是不切合实际的选择,但终究我们需要将hbase表转化成hive表,或许我们可以选择数据“冷热”、以及部分字段切表来优化。
备注:测试还不全面,待完善,特别是hive&hbase复杂sql的统计计算。
分享到:
相关推荐
由于HIVE和HBASE的特点不同,导致它们在处理数据时存在一定的差异,但通过整合HIVE和HBASE,可以发挥它们各自的优势,实现更好的数据处理和存储。 在HIVE中创建HBASE的外表,是实现HIVE和HBASE整合的关键步骤。外表...
将Hive与HBase整合,可以实现离线分析与实时查询的结合,提升数据分析效率。 **1. 配置整合** 为了使Hive能够与HBase交互,我们需要在Hive的配置文件`hive-site.xml`中添加相关的JAR路径,以便Hive能够识别HBase的...
被编译的hive-hbase-handler-1.2.1.jar,用于在Hive中创建关联HBase表的jar,解决创建Hive关联HBase时报FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org.apache.hadoop....
在大数据处理领域,Hive和HBase都是广泛使用的工具,各有其特定的优势。Hive作为一个基于Hadoop的数据仓库工具,适合于数据批处理和分析,而HBase则是一款分布式、高性能的NoSQL数据库,适用于实时数据查询。本文将...
Scala、Hive与HBase是大数据处理领域中的关键组件,它们在Java开发环境中扮演着重要角色。本压缩包"scala-hive-HBASE-Api.7z"包含了2019年8月至10月间用于工作的相关jar包,主要用于支持Scala、Hive和HBase的集成...
例如,为了提高数据导入速度,可以考虑使用多线程并行处理数据;为了保证数据一致性,可能需要实现事务或补偿机制。 在项目`hive-bulkload-hbase-master`中,你将找到一个示例项目,它演示了上述步骤的实现。这个...
在数据处理过程中,经常需要将数据从 Hive 导入到 HBase 中。本文将详细介绍 Hive 数据导入 HBase 的方法。 一、Hive 关联 HBase 表方式 这种方法适用于数据量不大的情况(小于 4TB),通过 Hive 创建一个关联 ...
标题 "Hive整合HBase资源文件...在大数据处理中,Hive与HBase的集成是常见的实践,它能提供一种强大的数据处理和分析解决方案。通过学习和理解这种集成方式,开发者和数据工程师能够更好地管理和利用大规模的数据资源。
### 大数据工具篇之Hive与HBase整合完整教程 #### 一、引言 在大数据处理领域,Hive 和 HBase 是两种非常重要的工具。Hive 是一种数据仓库工具,可以用来进行数据提取、转换和加载(ETL),同时提供了一种 SQL ...
hive和hbase整合的时候,如果出现不兼容的情况需要手动编译:hive-hbase-hander-1.2.2.jar把这个jar替换掉hive/lib里的那个jar包
Hive、Hbase和MySQL是三种不同类型的数据库系统,它们各自在数据处理和存储方面有着独特的特性和应用场景。 1. Hive与Hbase的区别: - Hive是一个基于Hadoop的数据仓库工具,它允许用户使用SQL-like语言(HQL)对...
本文档详细记录了一次从自建Hadoop集群到华为云MRS(Managed Service for Big Data)的大规模数据迁移项目,涉及到了Hive、Kudu和HBase这三种不同类型的数据存储系统。以下是针对这些系统的迁移策略、流程和解决方案...
Hadoop的运行痕迹.doc**、**Hadoop学习总结之二:HDFS读写过程解析.doc**:这些文档详细介绍了Hadoop分布式文件系统(HDFS)的基本概念、工作流程以及MapReduce的执行过程,帮助理解Hadoop如何存储和处理数据。...
hive0.8.1和hbase0.92.0集成的hive-hbase-handler.Jar包,里面包含:hbase-0.92.0.jar、hbase-0.92.0-tests.jar、hive-hbase-handler-0.9.0-SNAPSHOT.jar。经测试没有问题。
【描述】:本压缩包包含Apache Hive 1.2.2和HBase 1.2.6的安装包,旨在介绍如何在大数据处理环境中将这两个组件结合使用,实现高效的数据存储和查询。 【标签】:Hive、HBase、大数据、数据仓库、NoSQL数据库、集成...
Hive与Hbase的整合,集中两者的优势,使用HiveQL语言,同时具备了实时性
hive和hbase的整合所需要的编译后的jar包。 注意:这里的hbase版本为:1.2.1 hive的版本为:1.2.1
该文档保护了目前比较流行的大数据平台的原理过程梳理。Hadoop,Hive,Hbase,Spark,MapReduce,Storm