HBase入门与实战指南:非关系型数据库详解

需积分: 14 3 下载量 22 浏览量 更新于2024-09-07 收藏 360KB DOC 举报
HBase学习笔记提供了对这个强大NoSQL数据库的全面概述。HBase是一款基于内存、面向列族的分布式数据库,它特别适合处理大量结构化和半结构化数据,支持MapReduce计算模型。以下是从文章中提炼的关键知识点: 1. **HBase简介**: - HBase是非关系型数据库,其设计目标是高效处理大规模数据,特别是行式数据。 - 它是内存驱动的,这使得它可以快速访问和处理数据。 - 支持MapReduce编程模型,这意味着它能够处理大数据集的并行计算任务。 2. **HBase架构**: - HBase依赖于Hadoop框架进行存储,提供了一个可靠的数据存储层。 - 架构由Master和RegionServer组成,Master负责全局管理和协调,如表分割、服务器注册等。 - RegionServer负责处理客户端的读写请求,并管理已分割的Region,即数据的物理存储区域。 3. **Zookeeper集成**: - HBase高度依赖Zookeeper,这是一个分布式协调服务,用于维护节点的健康状态和配置信息。 - Master和RegionServer在Zookeeper中注册,确保服务发现和集群的稳定性。 4. **安装与使用步骤**: - 用户需要下载HBase镜像,然后解压并配置`hbase-site.xml`文件,设置数据目录。 - 启动HBase可以通过`start-hbase.sh`脚本,启动后,Master和Zookeeper都在单机模式下运行。 - 使用`hbaseshell`工具登录HBase,可以查看帮助文档并创建表、插入数据和查询数据。 5. **基本操作**: - `create`命令用于创建表,例如`create 'test', 'cf'`,定义表名和列族。 - `put`命令用于向表中插入数据,如`put 'test', 'row1', 'cf:a', 'value1'`,指定行键、列族和列名。 - `scan`和`get`命令分别用于查询表中所有数据和特定行的数据,如`scan 'test'`和`get 'test', 'row1'`。 HBase的学习和实践需要理解其分布式特性、数据模型和与Hadoop生态系统的紧密集成。通过这些基础操作,用户可以逐渐掌握如何在实际项目中高效地使用HBase来存储和处理海量数据。

org.apache.hadoop.hbase.DoNotRetryIOException: Unable to load configured region split policy 'org.apache.phoenix.schema.MetaDataSplitPolicy' for table 'SYSTEM.CATALOG' Set hbase.table.sanity.checks to false at conf or table descriptor if you want to bypass sanity checks at org.apache.hadoop.hbase.util.TableDescriptorChecker.warnOrThrowExceptionForFailure(TableDescriptorChecker.java:296) at org.apache.hadoop.hbase.util.TableDescriptorChecker.sanityCheck(TableDescriptorChecker.java:109) at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:2025) at org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:657) at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:413) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133) at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:338) at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:318) org.apache.hadoop.hbase.DoNotRetryIOException: Unable to load configured region split policy 'org.apache.phoenix.schema.MetaDataSplitPolicy' for table 'SYSTEM.CATALOG' Set hbase.table.sanity.checks to false at conf or table descriptor if you want to bypass sanity checks at org.apache.hadoop.hbase.util.TableDescriptorChecker.warnOrThrowExceptionForFailure(TableDescriptorChecker.java:296) at org.apache.hadoop.hbase.util.TableDescriptorChecker.sanityCheck(TableDescriptorChecker.java:109) at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:2025) at org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:657) at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:413) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133) at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:338) at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:318)

2023-07-14 上传

23/07/23 16:19:48 ERROR AsyncProcess: Failed to get region location org.apache.hadoop.hbase.DoNotRetryIOException: java.lang.NoClassDefFoundError: Could not initialize class org.apache.hadoop.hbase.util.ByteStringer at org.apache.hadoop.hbase.client.RpcRetryingCaller.translateException(RpcRetryingCaller.java:241) at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:214) at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.call(ScannerCallableWithReplicas.java:364) at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.call(ScannerCallableWithReplicas.java:338) at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:137) at org.apache.hadoop.hbase.client.ResultBoundedCompletionService$QueueingFuture.run(ResultBoundedCompletionService.java:65) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.hadoop.hbase.util.ByteStringer at org.apache.hadoop.hbase.protobuf.RequestConverter.buildRegionSpecifier(RequestConverter.java:1041) at org.apache.hadoop.hbase.protobuf.RequestConverter.buildScanRequest(RequestConverter.java:492) at org.apache.hadoop.hbase.client.ClientSmallReversedScanner$SmallReversedScannerCallable.call(ClientSmallReversedScanner.java:291) at org.apache.hadoop.hbase.client.ClientSmallReversedScanner$SmallReversedScannerCallable.call(ClientSmallReversedScanner.java:276) at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:212) ... 7 more

2023-07-24 上传