完全分布式HBase搭建指南

需积分: 1 0 下载量 195 浏览量 更新于2024-07-20 收藏 630KB DOCX 举报
"该文档是关于从零搭建HBase分布式环境的教程,涵盖了规划、所需软件、操作系统安装以及虚拟机的配置。" 在构建HBase完全分布式环境时,首先需要进行详细的规划。规划包括对Hadoop、Zookeeper的布局设计,以确保整个集群的稳定性和高效性。HBase是构建在Hadoop之上的分布式数据库,而Zookeeper作为协调服务,对于HBase集群的管理和运行至关重要。因此,在开始搭建之前,你需要明确每个组件的节点数量、硬件资源配置以及它们之间的交互方式。 在所需的软件列表中,主要包括以下几个关键组件: 1. JDK:Java Development Kit,HBase基于Java开发,所以需要安装JDK 8或更高版本。 2. Zookeeper:提供分布式协调服务,HBase依赖它来管理元数据和选举Master节点。 3. Hadoop:HBase的数据存储层,需要安装对应的Hadoop版本。 4. HBase:主构建,负责数据存储和访问。 操作系统的选择是CentOS 6.8,这是一个稳定且广泛使用的Linux发行版。在宿主机上安装VirtualBox,然后通过克隆和导入的方式创建多个虚拟机实例,用于模拟分布式环境。安装过程中,需要注意虚拟机的内存设置,以及使用已存在的虚拟硬盘文件来节省空间和时间。 在虚拟机的网络配置中,你需要确保每个节点之间可以正常通信。这通常涉及设置虚拟机的网络模式(如NAT或桥接),以及确保每个虚拟机的MAC地址唯一且与网络配置文件中的MAC地址一致。在CentOS系统中,这涉及到修改`/etc/udev/rules.d/70-persistent-net.rules`和`/etc/sysconfig/network-scripts/ifcfg-eth0`文件,以及重启网络服务。 此外,还需要对每个节点的hostname和hosts文件进行配置。在`/etc/sysconfig/network`中设置HOSTNAME,并在`/etc/hosts`文件中添加各个节点的IP和hostname映射,以实现节点间的无DNS查找通信。 在所有基础工作完成后,接下来就是安装和配置JDK、Zookeeper、Hadoop和HBase。这通常包括解压软件包,设置环境变量,初始化和格式化HDFS,启动Zookeeper服务,以及配置HBase的相关参数(如HBase-site.xml,hbase-env.sh等)。最后,启动HBase集群并验证其运行状态,确保所有节点都能正常参与集群操作。 这个过程虽然复杂,但通过逐步配置和验证,可以成功搭建一个稳定的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 上传