Windows环境下安装HBase(Hadoop3.1.3、HBase2.2.5)与Linux环境下搭建HBase高可用集群
Windows环境下安装HBase
下载HBase
官网: https://hbase.apache.org/downloads.html
不同版本集合:https://archive.apache.org/dist/hbase/
配置HBase
修改hbase-env.cmd
set JAVA_HOME=D:\Development\Java\jdk1.8
# HBase内置zookeeper,使用内置zk,需要设置为true:由HBase自己管理zookeeper
set HBASE_MANAGES_ZK=true
set HADOOP_HOME=D:\Development\Hadoop
set HBASE_LOG_DIR=D:\Development\HBase\logs
修改hbase-site.xml
<configuration><!--HBase数据在hdfs上的存储根目录--><property><name>hbase.rootdir</name><value>hdfs://localhost:9000/hbase</value></property><!--是否为分布式模式部署,true表示分布式部署--><property><name>hbase.cluster.distributed</name><value>false</value></property><!--zookeeper集群的URL配置,多个host中间用逗号--><property><name>hbase.zookeeper.quorum</name><value>localhost:2181</value></property><!--HBase在zookeeper上数据的根目录znode节点--><property><name>zookeeper.znode.parent</name><value>/hbase</value></property><!-- zookeeper数据目录--><property><name>hbase.zookeeper.property.dataDir</name><value>D:\Development\HBase\data\tmp\zoo</value></property><!-- 本地文件系统tmp目录--><property><name>hbase.tmp.dir</name><value>D:\Development\HBase\data\tmp</value></property><!-- 使用本地文件系统设置为false,使用hdfs设置为true --><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property><!--HBase的Web界面访问端口--><property> <name>hbase.master.info.port</name><value>16010</value></property><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property>
</configuration>
启动HBase
注意:先启动Hadoop,再启动HBase
Windows安装Hadoop3.x及在Windows环境下本地开发
在HBase/bin目录操作,启动HBase
D:\Development\HBase\bin>start-hbase.cmd
shell操作HBase
D:\Development\HBase\bin>hbase shell
hbase(main):001:0> list
TABLE
0 row(s)
Took 1.7100 seconds
=> []
hbase(main):002:0>
访问web界面
访问:http://localhost/:16010
查看Hbase情况
Java操作HBase API
添加依赖
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-hdfs</artifactId><version>3.1.3</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>3.1.3</version></dependency><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-server</artifactId><version>2.2.5</version></dependency><!--java.lang.NoSuchMethodError: 'void org.apache.hadoop.security.HadoopKerberosName.setRuleMechanism(java.lang.String)'--><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-auth</artifactId><version>3.1.3</version></dependency><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-client</artifactId><version>2.2.5</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13</version></dependency></dependencies>
添加Hadoop和HBase的配置文件到项目Resources目录
core-site.xml
hbase-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.NamespaceDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;public class HBaseTest {/*** 获取HBase管理员类*/private Admin admin;/*** 获取数据库连接*/private Connection connection;/*** 初始化*/@Beforepublic void init() throws IOException {Configuration configuration = HBaseConfiguration.create();this.connection = ConnectionFactory.createConnection(configuration);this.admin = connection.getAdmin();}/*** 资源释放*/@Afterpublic void destory() throws IOException {if (admin != null) {admin.close();}if (connection != null) {connection.close();}}/*** 查询所有表的信息*/@Testpublic void listTables() throws IOException {TableName[] tableNames = admin.listTableNames();for (TableName tableName : tableNames) {System.out.println("tableName:" + tableName);}}
}
关键异常记录
异常1:
util.FSUtils: Waiting for dfs to exit safe mode...
退出Hadoop安全模式
hadoop dfsadmin -safemode leave
异常2:
Caused by: org.apache.hbase.thirdparty.io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: Coding/192.168.138.245:16000
Caused by: java.net.ConnectException: Connection refused: no further information
最坑爹的一个问题,折腾太久太久,Hadoop与HBase版本不匹配,更换版本。本次搭建使用Hadoop3.1.3与HBase2.2.5
注意:官网给出的版本兼容不可靠,任然有Bug
Linux环境下搭建HBase高可用集群
节点 | HMasterActive | HMasterStandBy | HRegionServer | Zookeeper |
---|---|---|---|---|
node01 | * | * | * | |
node02 | * | * | * | |
node03 | * | * |
注意:Hadoop集群、ZooKeeper集群、Hive集群正常运行,时间同步
下载安装HBase
官网: https://hbase.apache.org/downloads.html
不同版本集合:https://archive.apache.org/dist/hbase/
修改集群环境
vim hbase-env.sh
export HBASE_LOG_DIR=${HBASE_HOME}/logs
export JAVA_HOME=/usr/local/jdk1.8
# 告诉HBase它是否应该管理自己的ZooKeeper实例
export HBASE_MANAGES_ZK=false
export HADOOP_HOME=/usr/local/program/hadoop
修改配置文件
vim hbase-site.xml
<configuration><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property><!--设置HBase表数据,也就是真正的HBase数据在hdfs上的存储根目录--><property><name>hbase.rootdir</name><value>hdfs://my-hdfs/hbase</value></property><!--是否为分布式模式部署,true表示分布式部署--><property><name>hbase.cluster.distributed</name><value>true</value></property><!--zookeeper集群的URL配置,多个host中间用逗号--><property><name>hbase.zookeeper.quorum</name><value>node001:2181,node002:2181,node003:2181</value></property><!--HBase在zookeeper上数据的根目录znode节点--><property><name>zookeeper.znode.parent</name><value>/hbase</value></property><!-- 本地文件系统tmp目录,一般配置成local模式的需要设置,建议设置 --><property><name>hbase.tmp.dir</name><value>/usr/local/program/hbase/tmp</value></property><!-- 使用本地文件系统设置为false,使用hdfs设置为true --><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property>
</configuration>
vim regionservers
node001
node002
node003
备用Master节点
vim backup-masters
node002
修改环境变量
vim /etc/profile
export HBASE_HOME=/usr/local/program/hbase
export PATH=$HBASE_HOME/bin:$PATH
使生效 source /etc/profile
拷贝Hadoop配置文件
cp /usr/local/program/hadoop/etc/hadoop/core-site.xml /usr/local/program/hbase/conf/cp /usr/local/program/hadoop/etc/hadoop/hdfs-site.xml /usr/local/program/hbase/conf/
软件分发其他节点
[root@node002 ~]# scp -r root@node001:/usr/local/program/hbase /usr/local/program[root@node003 ~]# scp -r root@node001:/usr/local/program/hbase /usr/local/program[root@node001 conf]# scp /etc/profile root@node002:/etc/profile[root@node001 conf]# scp /etc/profile root@node003:/etc/profile
使配置生效:source /etc/profile
启动集群
启动zookeeper
zkServer.sh start
启动Hadoop
start-all.sh
启动HBase
start-hbase.sh
web界面
访问:http://node001:16010
查看Hbase集群情况
Windows环境下安装HBase(Hadoop3.1.3、HBase2.2.5)与Linux环境下搭建HBase高可用集群相关推荐
- Redis创建高可用集群教程【Windows环境】
模仿的过程中,加入自己的思考和理解,也会有进步和收获. 在这个互联网时代,在高并发和高流量可能随时爆发的情况下,单机版的系统或者单机版的应用已经无法生存,越来越多的应用开始支持集群,支持分布式部署了. ...
- Redis高可用集群-哨兵模式(Redis-Sentinel)搭建配置教程【Windows环境】
================================================= 人工智能教程.零基础!通俗易懂!风趣幽默!大家可以看看是否对自己有帮助! 点击查看高清无码教程 == ...
- Haoop之hbase高可用集群的 安装与使用
Haoop之hbase高可用集群的 安装与使用 实验目的.要求 掌握完全分布模式的整合平台中HBase的高可用完全分布模式的安装 1.完成HBase的高可用完全分布模式的安装 2.HBase的相关服务 ...
- centOS 7下安装与配置heartbeat高可用集群
Heartbeat项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实 ...
- 内网环境下手动部署kubernetes(v1.26.3)高可用集群
这篇博客主要是记录了手动部署一个高可用的Kubernetes集群的过程.旨在帮助自己及初学者学习kubernetes,并记录下具体的操作过程和总结的知识点.文中可能存在一些问题或不足之处,仅供参考. ...
- Hadoop(二): YARN(资源管理器 RM)、HBase高可用集群搭建
目录 一.Hadoop的高可用原理概述 1.1 原理概述 1.2 实验环境要求 二.高可用集群的搭建 2.1 搭建Zookeeper 2.2 搭建HA的高可用 2.3 YARN(资源管理器 RM)高可 ...
- Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase)
一.服务器环境 主机名 IP 用户名 密码 安装目录 master 192.168.142.124 root xxx /usr/hadoop-2.6.5/ slave1 192.168.142.125 ...
- HBase 高可用集群整合 Phoenix 配置
HBase 高可用集群整合 Phoenix 配置 接上文:HBase 高可用集群配置 命令行参考:https://blog.csdn.net/ubuntu64fan/article/details/8 ...
- Linux: CentOS 7下搭建高可用集群
转载: http://linux.cn/article-3963-1.html 本文以两台机器实现双集热备高可用集群,主机名node1的IP为192.168.122.168 ,主机名node2的IP为 ...
最新文章
- Recovering unassigned shards on elasticsearch 2.x——副本shard可以设置replica为0在设置回来...
- Windows文件目录DOS窗口
- python拷贝文件夹目录和文件_Python 拷贝文件及文件夹到远程主机目录
- linux指令快速复制粘贴[龟速更新中]
- Cortex-M3-复位(序列)
- 程序猿永远就是程序员的命么?
- makefile初步制作,arm-linux- (gcc/ld/objcopy/objdump)详解
- !!只保留文本中的中英文和符号.,其余都删除
- Chrome 咕咕牛懒器(guge niú lǎn qì) 安装 及助手插件操作
- 当前安全设置不允许下载该文件的解决办法
- win10计算机用户怎么删除,Win10系统怎么管理的家庭成员账户? Win10删除账户的教程...
- 10 分钟把你的 Web 应用转为桌面端应用
- 【深度学习】基于MindSpore和pytorch的Softmax回归及前馈神经网络
- Massve MIMO波束成形
- TemplateBinding和Binding的区别
- 股票交易接口开发原理是什么?
- 微信小程序之 打印json数据或者object类型的数据技巧
- WIFI MAC地址规则常见问题(WIFI MAC)
- sakai项目中chat子模块解读
- html5 交互作品,20个交互动效很棒的网页设计例子