HBase Region分区、数据压缩及与Sqoop集成操作

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 笔记

一、HBase表region预分区的几种方式


第一种:创建5个region分区表

create_namespace 'track'
create 'track:stu', 'info', SPLITS => ['10', '20', '30', '40']

第二种:split强制拆分

split 'tableName', 'splitKey'
split 'track:stu', '50'

第三种:将拆分的key值放在文件中

create 'track:stu_1', 'info', SPLITS_FILE => '/opt/datas/splits.txt'

第四种:

create 't1', 'f1', {NUMREGIONS => 15, SPLITALGO => 'HexStringSplit'}


二、HBase表数据的压缩配置


首先Hadoop安装snappy,详细请见博客:

https://blog.csdn.net/weixin_45366499/article/details/109271630

查看hbase是否支持压缩

bin/hbase --config ~/conf_hbase org.apache.hadoop.util.NativeLibraryChecker
Native library checking:
hadoop:  true /opt/modules/hadoop-2.6.0-cdh5.9.3/lib/native/libhadoop.so.1.0.0
zlib:    true /lib64/libz.so.1
snappy:  true /opt/modules/hadoop-2.6.0-cdh5.9.3/lib/native/libsnappy.so.1
lz4:     true revision:99
bzip2:   false 
openssl: true /lib64/libcrypto.so

配置HBase表数据的压缩

ln -s  /opt/modules/hadoop/lib/native  /opt/modules/hbase/lib/native/Linux-amd64-64

创建HBase表

create 'stu_snappy','info'

修改表的属性为snappy压缩

alter "stu_snappy",{NAME => 'info',COMPRESSION => 'SNAPPY'}

可以使用CompressionTest工具来验证snappy的压缩器可用于HBase:

bin/hbase  org.apache.hadoop.hbase.util.CompressionTest hdfs://bigdata-pro-m01:9000/user/caizhengjie/datas/snappy snappy


三、HBase与Sqoop集成


通常来说HBase与Sqoop集成,是将mysql的数据导入到HBase中

mysql -> HBase

第一步:在sqoop的sqoop-env.sh文件里添加

export HBASE_HOME=/opt/modules/hbase

第二步:创建MySQL数据表并创建数据

CREATE TABLE  user_info_hbase (
  id varchar(20) DEFAULT NULL,
  username varchar(20) DEFAULT NULL,
  address varchar(20) DEFAULT NULL
)
insert into user_info_hbase values('0001','admin','admin');
insert into user_info_hbase values('0002','wang','111111');
insert into user_info_hbase values('0003','zhang','000000');
insert into user_info_hbase values('0004','lili','000000');
insert into user_info_hbase values('0005','henry','000000');
insert into user_info_hbase values('0006','cherry','000000');

第三步:创建hbase表

create 'user_info','info'


第四步:可以查看HBase与Sqoop集成之间的参数

HBase arguments:
   --column-family <family>    Sets the target column family for the
                               import
   --hbase-bulkload            Enables HBase bulk loading
   --hbase-create-table        If specified, create missing HBase tables
   --hbase-row-key <col>       Specifies which input column to use as the
                               row key
   --hbase-table <table>       Import to <table> in HBase

第五步:通过sqoop导入数据

bin/sqoop import \
--connect jdbc:mysql://bigdata-pro-m01:3306/db_sqoop \
--username root \
--password 199911 \
--table user_info_hbase \
--column-family info \
--hbase-bulkload \
--hbase-row-key id -m 1 \
--hbase-table user_info

第六步:查看运行结果

hbase(main):012:0> scan 'user_info'
ROW                                    COLUMN+CELL                                                                                                  
 0001                                  column=info:address, timestamp=1605251319678, value=admin                                                    
 0001                                  column=info:username, timestamp=1605251319678, value=admin                                                   
 0002                                  column=info:address, timestamp=1605251319678, value=111111                                                   
 0002                                  column=info:username, timestamp=1605251319678, value=wang                                                    
 0003                                  column=info:address, timestamp=1605251319678, value=000000                                                   
 0003                                  column=info:username, timestamp=1605251319678, value=zhang                                                   
 0004                                  column=info:address, timestamp=1605251319678, value=000000                                                   
 0004                                  column=info:username, timestamp=1605251319678, value=lili                                                    
 0005                                  column=info:address, timestamp=1605251319678, value=000000                                                   
 0005                                  column=info:username, timestamp=1605251319678, value=henry                                                   
 0006                                  column=info:address, timestamp=1605251319678, value=000000                                                   
 0006                                  column=info:username, timestamp=1605251319678, value=cherry                                                  
6 row(s) in 0.3670 seconds


相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
&nbsp; 相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情:&nbsp;https://cn.aliyun.com/product/hbase &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
7月前
|
存储 分布式数据库 数据库
Hbase学习二:Hbase数据特点和架构特点
Hbase学习二:Hbase数据特点和架构特点
105 0
|
3月前
|
缓存 监控 Shell
如何使用 HBase Shell 进行数据的实时监控和备份?
如何使用 HBase Shell 进行数据的实时监控和备份?
|
3月前
|
Shell 分布式数据库 Hbase
如何使用 HBase Shell 进行数据的批量导入和导出?
如何使用 HBase Shell 进行数据的批量导入和导出?
242 5
|
7月前
|
缓存 监控 Shell
使用 HBase Shell 进行数据的实时监控和备份
使用 HBase Shell 进行数据的实时监控和备份
131 6
|
7月前
|
Shell 分布式数据库 Hbase
使用 HBase Shell 进行数据的批量导入和导出
使用 HBase Shell 进行数据的批量导入和导出
695 6
|
6月前
|
存储 分布式计算 分布式数据库
《HBase MapReduce之旅:我的学习笔记与心得》——跟随我的步伐,一同探索HBase世界,揭开MapReduce的神秘面纱,分享那些挑战与收获,让你在数据的海洋里畅游无阻!
【8月更文挑战第17天】HBase是Apache顶级项目,作为Bigtable的开源版,它是一个非关系型、分布式数据库,具备高可扩展性和性能。结合HDFS存储和MapReduce计算框架,以及Zookeeper协同服务,HBase支持海量数据高效管理。MapReduce通过将任务拆解并在集群上并行执行,极大提升处理速度。学习HBase MapReduce涉及理解其数据模型、编程模型及应用实践,虽然充满挑战,但收获颇丰,对职业发展大有裨益。
72 0
|
7月前
|
DataWorks 数据管理 大数据
DataWorks操作报错合集之在连接HBase时出现超时问题,该怎么解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
7月前
|
存储 Java 分布式数据库
HBase构建图片视频数据的统一存储检索
HBase构建图片视频数据的统一存储检索
|
8月前
|
Java 大数据 API
【大数据】HDFS、HBase操作教程(含指令和JAVA API)
【大数据】HDFS、HBase操作教程(含指令和JAVA API)
168 0
【大数据】HDFS、HBase操作教程(含指令和JAVA API)
|
9月前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版操作报错合集之使用 Event Time Temporal Join 关联多个 HBase 后,Kafka 数据的某个字段变为 null 是什么原因导致的
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
189 0

热门文章

最新文章