- 浏览: 595817 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
如果知道Hbase数据表的key的分布情况,就可以在建表的时候对hbase进行region的预分区。这样做的好处是防止大数据量插入的热点问题,提高数据插入的效率。
1.规划hbase预分区
-------------------------
首先就是要想明白数据的key是如何分布的,然后规划一下要分成多少region,每个region的startkey和endkey是多少,然后将规划的key写到一个文件中。比如,key的前几位字符串都是从0001~0010的数字,这样可以分成10个region,划分key的文件如下:
为什么后面会跟着一个"|",是因为在ASCII码中,"|"的值是124,大于所有的数字和字母等符号,当然也可以用“~”(ASCII-126)。分隔文件的第一行为第一个region的stopkey,每行依次类推,最后一行不仅是倒数第二个region的stopkey,同时也是最后一个region的startkey。也就是说分区文件中填的都是key取值范围的分隔点,如下图所示:
2.hbase shell中建分区表,指定分区文件
-------------------------------------
在hbase shell中直接输入create,会看到如下的提示:
可以通过指定SPLITS_FILE的值指定分区文件,如果分区信息比较少,也可以直接用SPLITS分区。我们可以通过如下命令建一个分区表,指定第一步中生成的分区文件:
SNAPPY压缩
--------------------------------
这里注意,一定要将分区的参数指定单独用一个大括号扩起来,因为分区是针对全表,而不是针对某一个column family。
转自:http://blog.csdn.net/chaolovejia/article/details/46375849#
1.规划hbase预分区
-------------------------
首先就是要想明白数据的key是如何分布的,然后规划一下要分成多少region,每个region的startkey和endkey是多少,然后将规划的key写到一个文件中。比如,key的前几位字符串都是从0001~0010的数字,这样可以分成10个region,划分key的文件如下:
0001| 0002| 0003| 0004| 0005| 0006| 0007| 0008| 0009|
为什么后面会跟着一个"|",是因为在ASCII码中,"|"的值是124,大于所有的数字和字母等符号,当然也可以用“~”(ASCII-126)。分隔文件的第一行为第一个region的stopkey,每行依次类推,最后一行不仅是倒数第二个region的stopkey,同时也是最后一个region的startkey。也就是说分区文件中填的都是key取值范围的分隔点,如下图所示:
2.hbase shell中建分区表,指定分区文件
-------------------------------------
在hbase shell中直接输入create,会看到如下的提示:
Create a table with namespace=ns1 and table qualifier=t1 hbase> create 'ns1:t1', {NAME => 'f1', VERSIONS => 5} Create a table with namespace=default and table qualifier=t1 hbase> create 't1', {NAME => 'f1'}, {NAME => 'f2'}, {NAME => 'f3'} hbase> # The above in shorthand would be the following: hbase> create 't1', 'f1', 'f2', 'f3' hbase> create 't1', {NAME => 'f1', VERSIONS => 1, TTL => 2592000, BLOCKCACHE => true} hbase> create 't1', {NAME => 'f1', CONFIGURATION => {'hbase.hstore.blockingStoreFiles' => '10'}} Table configuration options can be put at the end. Examples: hbase> create 'ns1:t1', 'f1', SPLITS => ['10', '20', '30', '40'] hbase> create 't1', 'f1', SPLITS => ['10', '20', '30', '40'] hbase> create 't1', 'f1', SPLITS_FILE => 'splits.txt', OWNER => 'johndoe' hbase> create 't1', {NAME => 'f1', VERSIONS => 5}, METADATA => { 'mykey' => 'myvalue' } hbase> # Optionally pre-split the table into NUMREGIONS, using hbase> # SPLITALGO ("HexStringSplit", "UniformSplit" or classname) hbase> create 't1', 'f1', {NUMREGIONS => 15, SPLITALGO => 'HexStringSplit'} hbase> create 't1', 'f1', {NUMREGIONS => 15, SPLITALGO => 'HexStringSplit', CONFIGURATION => {'hbase.hregion.scan.loadColumnFamiliesOnDemand' => 'true'}} hbase> create 't1', {NAME => 'f1'}, {NAME => 'if1', LOCAL_INDEX=>'COMBINE_INDEX|INDEXED=f1:q1:8|rowKey:rowKey:10,UPDATE=true'}
可以通过指定SPLITS_FILE的值指定分区文件,如果分区信息比较少,也可以直接用SPLITS分区。我们可以通过如下命令建一个分区表,指定第一步中生成的分区文件:
create 'split_table_test', 'cf', {SPLITS_FILE => 'region_split_info.txt'}
SNAPPY压缩
--------------------------------
create 'split_table_test',{NAME =>'cf', COMPRESSION => 'SNAPPY'}, {SPLITS_FILE => '/tmp/region_split_info.txt'}
这里注意,一定要将分区的参数指定单独用一个大括号扩起来,因为分区是针对全表,而不是针对某一个column family。
转自:http://blog.csdn.net/chaolovejia/article/details/46375849#
发表评论
文章已被作者锁定,不允许评论。
-
Hadoop namenode的fsimage与editlog详解
2017-05-19 10:04 1175Namenode主要维护两个文件,一个是fsimage,一个是 ... -
Hadoop HBase行健(rowkey)设计原则学习
2017-05-15 10:34 1122Hbase是三维有序存储的,通过rowkey(行键),colu ... -
Hadoop HBase中split原理学习
2017-05-12 13:38 2268在Hbase中split是一个很重 ... -
Hadoop HBase中Compaction原理学习
2017-05-12 10:34 992HBase Compaction策略 RegionServer ... -
Hadoop HBase性能优化学习
2017-05-12 09:15 683一、调整参数 入门级的调优可以从调整参数开始。投入小,回报快 ... -
Hadoop 分布式文件系统学习
2017-05-10 15:34 497一. 分布式文件系统 分布式文件系统,在整个分布式系统体系中处 ... -
Hadoop MapReduce处理wordcount代码分析
2017-04-28 14:25 589package org.apache.hadoop.exa ... -
Hadoop YARN完全分布式配置学习
2017-04-26 10:27 570版本及配置简介 Java: J ... -
Hadoop YARN各个组件和流程的学习
2017-04-24 19:04 645一、基本组成结构 * 集 ... -
Hadoop YARN(Yet Another Resource Negotiator)详细解析
2017-04-24 18:30 1151带有 MapReduce 的 Apache Had ... -
Hive 注意事项与扩展特性
2017-04-06 19:31 7431. 使用HIVE注意点 字符集 Hadoop和Hive都 ... -
Hive 元数据和QL基本操作学习整理
2017-04-06 14:36 1015Hive元数据库 Hive将元数据存储在RDBMS 中,一般常 ... -
Hive 文件压缩存储格式(STORED AS)
2017-04-06 09:35 2297Hive文件存储格式包括以下几类: 1.TEXTFILE ... -
Hive SQL自带函数总结
2017-04-05 19:25 1138字符串长度函数:length ... -
Hive 连接查询操作(不支持IN查询)
2017-04-05 19:16 715CREATE EXTERNAL TABLE IF NOT ... -
Hive优化学习(join ,group by,in)
2017-04-05 18:48 1812一、join优化 Join ... -
Hive 基础知识学习(语法)
2017-04-05 15:51 894一.Hive 简介 Hive是基于 Hadoop 分布式文件 ... -
Hive 架构与基本语法(OLAP)
2017-04-05 15:16 1240Hive 是什么 Hive是建立在Hadoop上的数据仓库基础 ... -
Hadoop MapReduce操作Hbase范例学习(TableMapReduceUtil)
2017-03-24 15:37 1206Hbase里的数据量一般都 ... -
Hadoop MapReduce将HDFS文本数据导入HBase
2017-03-24 11:13 1218HBase本身提供了很多种数据导入的方式,通常有两种常用方式: ...
相关推荐
- **RegionServer**:存储HBase表的分区(Region),处理客户端的读写请求。 6. **测试与优化** - **启动与停止服务**:启动Hadoop和HBase服务,进行集群健康检查。 - **性能调优**:根据实际工作负载调整Hadoop...
### Hadoop之Hbase从入门到精通 #### HBase技术介绍与概述 HBase是一种分布式、高可靠性且高性能的列式存储系统,它基于Hadoop生态体系构建,并且能够支持大规模的数据存储需求。HBase的设计灵感来源于Google的...
此外,为了提高性能和可靠性,你可能还需要调整其他高级配置,如HDFS的块大小、HBase的 Region 分区策略等。这些都需要根据你的硬件配置、数据规模和应用需求来定制。 总之,理解和配置好Hadoop与HBase的参数是确保...
预分区表以减少Region分裂;使用合适的数据类型和列族策略。 3. **HBase配置调整**:例如增大`hbase.hregion.max.filesize`以控制Region大小,调整`hbase.regionserver.handler.count`以增加处理线程数,或者优化`...
- **Region:** 是Hbase表的逻辑分区,每个Region包含一个或多个列族。 #### 四、Hadoop+Hbase搭建云存储的整体方案 **1. 技术选型** - **Hadoop:** 作为基础的大数据处理框架,提供数据存储和处理能力。 - **...
消息被组织为HBase表中的行,每个分区对应一个Region,消息体作为KeyValue存储。写入和读取过程都经过优化,通过Coprocessor插件实现快速定位和顺序扫描,保证消息的有序性和一致性。 总结来说,一淘搜索系统利用...
通过Hadoop,可以快速处理和清洗预训练数据,为深度学习模型等AI应用提供基础。 7. **分布式系统的挑战**: 在分布式环境中,数据去重需要考虑网络延迟、节点故障、数据一致性等问题。项目HadoopDedup可能包含了...
6. **分布式计算原理**:了解并行计算的概念,如数据分区、任务调度和错误恢复,这些都是Hadoop和HBase中的重要概念。 7. **开发和调试Hadoop及HBase应用**:涉及编写MapReduce程序,理解HBase的API,以及使用...
2. **Region分配**:当新的Region需要被分配时,HBase利用ZooKeeper的选举机制选择一个合适的RegionServer来托管这个Region,从而保证数据分布的平衡。 3. **Master选举**:HBase Master是整个系统的协调者,负责...
5. Region服务器:RegionServer是HBase的数据节点,负责处理客户端请求,管理表的分区。 6. ZooKeeper:HBase依赖ZooKeeper进行元数据的协调和服务发现,确保集群的稳定运行。 Hadoop 2.x的集成意味着HBase可以利用...
在构建大数据处理环境时,Docker 提供了一个高效且便捷的方式,可以将复杂的应用程序如 Hadoop、Zookeeper 和 HBase 部署在隔离的容器中。本配置文件集专注于利用 Docker 搭建一个 HBase 集群,其中涉及到的关键知识...
大数据是21世纪信息技术领域的重要里程碑,它涵盖了海量数据的收集、存储、处理...通过对这些知识点的学习和练习,读者能够深入理解大数据处理流程,熟练掌握Hadoop、HBase和Hive的使用,提升在大数据领域的专业技能。
`org.apache.hadoop.hbase.regionserver.StoreFile`类管理每个列族的HFile,当一个Region的大小达到预设阈值时,`org.apache.hadoop.hbase.regionserver.HRegion`会触发分裂过程,这涉及到`org.apache.hadoop.hbase....
《大数据云计算技术系列:Hadoop之HBase从入门到精通》是一份全面深入的教程,旨在帮助读者理解和掌握HBase这一强大的分布式列式数据库。HBase是构建在Hadoop生态系统之上,专门处理大规模数据的非关系型数据库。这...
对于HBase的全量数据导入,尤其是从MySQL等传统关系型数据库进行迁移时,采用预分区、HFileOutputFormat、并行导入以及HBase参数优化等策略,可以显著提升数据导入的速度和效率。通过深入理解HBase的数据结构和...
2. **表和Region**:HBase如何通过分区(Region)管理大表,并保证数据分布均匀。 3. **RowKey设计**:如何有效地设计RowKey以优化查询性能。 4. **Scan和Get操作**:如何使用这两个基本操作进行数据检索。 5. **...
HBase是Apache Hadoop生态系统的一部分,它运行在Hadoop分布式文件系统(HDFS)之上,提供实时的数据访问和强大的读写性能。 ### 一、HBase概述 1. **NoSQL数据库**:HBase属于非关系型数据库(NoSQL),不遵循...
当Region的大小达到预设阈值时,HBase会自动执行Region切分,将一个大Region拆分为两个小Region,以避免单个Region过大导致性能下降。"region切分.png"可能展示了这个过程。 6. **RowKey设计**: RowKey是HBase中...
HBase利用Hadoop的HDFS作为底层存储,并通过RegionServer进行数据分区和负载均衡,确保数据访问的效率和一致性。 Kafka是一款高吞吐量的分布式消息系统,最初由LinkedIn开发,现已成为Apache项目。Kafka主要用于...