HBase2.5.4单机模式与伪分布式的安装与配置(Ubuntu系统)

HBase的安装也分为三种,单机模式、伪分布式模式、完全分布式模式;我们先来安装单机版。

一、环境准备

1. 系统要求

  • Ubuntu 20.04/22.04 LTS

  • Java 8(必须,HBase不兼容更高版本)

  • Hadoop(单机模式不需要,伪分布式模式和分布式模式需要)

  • SSH

  • Vim编辑器

如果以上内容没有安装,请回到Hadoop3.3.5的安装参考如何安装。

2. 验证基础环境

java -version  # 需显示1.8.xssh localhost   # 确保SSH免密登录正常

二、HBase下载安装

1.下载HBase

点击下面的地址下载HBase2.5.4安装文件HBase官网下载地址,找到hbase-2.5.4-bin.tar.gz文件,下载到本地。

2.安装HBase

使用FinalShell工具将hbase-2.5.4-bin.tar.gz文件上传至虚拟机目录:/home/wll/下载

解压安装包hbase-2.5.4-bin.tar.gz至路径 /usr/local,命令如下:

sudo tar -zxf /home/wll/下载/hbase-2.5.4-bin.tar.gz -C /usr/local

下面把hbase目录权限赋予给wll用户:

sudo chown -R wll /usr/local/hbase-2.5.4

3. 配置环境变量

将hbase2.5.4下的bin目录添加到path中,这样启动hbase就无需到/usr/local/hbase目录下,大大的方便了hbase的使用。

编辑~/.bashrc文件

vim ~/.bashrc

如果没有引入过PATH,请在~/.bashrc文件尾行添加如下内容: 

export HBASE_HOME=/usr/local/hbase-2.5.4
export PATH=$PATH:{HBASE_HOME}/bin

如果已经引入过PATH请在export PATH这行追加/usr/local/hbase/bin,“:”是分隔符。如下图: 

编辑完成后,再执行source命令使上述配置在当前终端立即生效,命令如下: 

source ~/.bashrc

4. 查看HBase版本

确定hbase安装成功,命令如下

/usr/local/hbase-2.5.4/bin/hbase version

 三、HBase单机模式的配置

1. 配置文件/usr/local/hbase-2.5.4/conf/hbase-env.sh 

配置JAVA环境变量,并添加配置HBASE_MANAGES_ZK为true,用vi命令打开并编辑hbase-env.sh,命令如下:

vim /usr/local/hbase2.5.4/conf/hbase-env.sh

在hbase-env.sh 文件头部中添加如下代码:

export JAVA_HOME=/usr/local/jdk1.8.0_161
export HBASE_MANAGES_ZK=true             #使用HBase内置ZooKeeper

 添加完成后:wq命令保存退出即可。 

2. 配置文件/usr/local/hbase-2.5.4/conf/hbase-site.xml

用vi命令打开并编辑hbase-site.xml,命令如下:

vim /usr/local/hbase-2.5.4/conf/hbase-site.xml

在启动HBase前需要设置属性hbase.rootdir,用于指定HBase数据的存储位置,因为如果不设置的话,hbase.rootdir默认为/tmp/hbase-${user.name},这意味着每次重启系统都会丢失数据。此处设置为HBase安装目录下的hbase-tmp文件夹即(/usr/local/hbase-2.5.4/hbase-tmp),配置如下:

<configuration><property><name>hbase.rootdir</name><value>file:///usr/local/hbase-2.5.4/hbase-tmp</value></property>
</configuration>

 3.启动与验证HBase

首先切换目录至HBase安装目录/usr/local/hbase;再启动HBase。命令如下:

cd /usr/local/hbase-2.5.4
bin/start-hbase.sh
bin/hbase shell

上述三条命令中, bin/start-hbase.sh用于启动HBase,bin/hbase shell用于打开shell命令行模式,用户可以通过输入shell命令操作HBase数据库。成功启动HBase,截图如下:


exit退出Hbase shell命令行模式:

若想停止HBase运行,命令如下:

bin/stop-hbase.sh

 注意:如果在操作HBase的过程中发生错误,可以通过{HBASE_HOME}目录(/usr/local/hbase-2.5.4)下的logs子目录中的日志文件查看错误原因。

四、HBase伪分布模式的配置

1.配置/usr/local/hbase-2.5.4/conf/hbase-env.sh

用命令vim打开并编辑hbase-env.sh,命令如下:

vim /usr/local/hbase-2.5.4/conf/hbase-env.sh

配置JAVA_HOME,HBASE_CLASSPATH,HBASE_MANAGES_ZK,
HBASE_CLASSPATH设置为本机HBase安装目录下的conf目录(即/usr/local/hbase-2.5.4/conf)

export JAVA_HOME=/usr/local/jdk1.8.0_161
export HBASE_CLASSPATH=/usr/local/hbase-2.5.4/conf 
export HBASE_MANAGES_ZK=true

2.配置/usr/local/hbase-2.5.4/conf/hbase-site.xml

用命令vim打开并编辑hbase-site.xml,命令如下:

vim /usr/local/hbase-2.5.4/conf/hbase-site.xml

修改hbase.rootdir,指定HBase数据在HDFS上的存储路径;将属性hbase.cluter.distributed设为true。若当前Hadoop集群运行在伪分布式模式下,在本机上运行,NameNode运行在9000端口。

<configuration><property><name>hbase.rootdir</name><value>hdfs://localhost:9000/hbase</value></property><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property>
</configuration>

hbase.rootdir指定HBase的存储目录;hbase.cluster.distributed设置集群处于分布式模式.
另外,上面配置文件中,hbase.unsafe.stream.capability.enforce这个属性的设置,是为了避免出现启动错误。也就是说,如果没有设置hbase.unsafe.stream.capability.enforce为false,那么,在启动HBase以后,会出现无法找到HMaster进程的错误。

3.测试运行HBase

第一步:启动Hadoop集群

启动Hadoop集群的程序在/usr/local/hadoop-3.3.5/sbin/目录下,由于我们配置了HDDOOP环境变量,所以可以在任意目录下输入start-dfs.sh命令启动hadoop集群,jps查看启动进程。

start-dfs.sh

第二步:启动HBase

启动HBase的程序在/usr/local/hbase-2.5.4/bin/目录下,由于我们配置了HBase的环境变量,所以可以在任意目录下输入start-hbase.sh命令启动hadoop集群,jps查看启动进程,hbase-shell启动shell命令行窗口。

start-hbase.sh      #启动HBase
jps                 #查看启动进程
hbase-shell         #启动hbase shell

 第三步:停止HBase运行

stop-hbase.sh
jps

若出现关闭HBase时,输入stop-hbase.sh命令一直处于等待状态。

解决方法:

首先停止HBase的主进程master,然后再执行停止命令。

hbase-daemon.sh stop masterstop-hbase.sh

注意:如果在操作HBase的过程中发生错误,可以通过{HBASE_HOME}目录(/usr/local/hbase-2.5.4)下的logs子目录中的日志文件查看错误原因。
这里启动关闭Hadoop和HBase的顺序一定是:

启动Hadoop—>启动HBase—>关闭HBase—>关闭Hadoop

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/89448.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/89448.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Honeywell霍尼韦尔DV-10 变速器放大器 输入 15-28 VDC,输出 +/- 10VDC 060-6881-02

Honeywell霍尼韦尔DV-10 变速器放大器 输入 15-28 VDC,输出 /- 10VDC 060-6881-02

腾讯位置商业授权鸿蒙地图SDK工程配置

工程配置 安装 DevEco Studio 开发环境 手机HarmonyOS系统&#xff1a;OpenHarmony-5.0.0.71及以上DevEco Studio版本&#xff1a;DevEco Studio NEXT Release(Build Version: 5.0.3.900)及以上 获取key与生成秘钥 获取key 登录腾讯位置服务控制台&#xff0c;未注册过账号可…

RocketMQ源码级实现原理-Commitlog刷盘机制

刷盘机制 同步刷盘 代码实现 写入线程 写入线程可能同时有多个&#xff0c;但是刷盘线程至始至终就是一个单线程 刷盘线程&#xff0c;始终是操作双缓冲区域&#xff0c;一个用来刷盘&#xff0c;另一个用来接收多个写入线程同时写入刷盘请求 刷盘线程 通过这种方式&#xff0…

Java与Vue技术搭建的SRM招标采购管理系统,提供源码,涵盖招标、投标、评标全流程,助力企业高效规范采购管理

前言&#xff1a;在当今竞争激烈的商业环境中&#xff0c;高效、透明、规范的招标采购流程对于企业的成本控制、供应链稳定以及整体运营效率至关重要。SRM招标采购管理系统应运而生&#xff0c;它借助先进的信息技术&#xff0c;整合了招标采购的各个环节&#xff0c;实现了采购…

Kotlin集合分组

集合的分组&#xff08;Grouping&#xff09; 在之前的学习中&#xff0c;我们已经学会了如何对集合进行过滤、排序或执行聚合操作。 在本节中&#xff0c;我们将学习如何对集合元素进行分组&#xff0c;以便以最适合我们任务的方式呈现信息。分组&#xff08;Grouping&#xf…

阿里云ssh证书过期,如果更换并上传到服务器

登录阿里云平台&#xff0c;在控制台中找到“数字证书管理服务”进入频道后&#xff0c;选择“SSL证书管理”点击“创建证书”&#xff0c;创建成功后&#xff0c;进入证书详情页选择“下载”板块&#xff0c;根据自身服务器类型&#xff0c;下载相应的证书即可服务器更新证书登…

【软件系统架构】系列七:系统性能——计算机性能深入解析

目录 一、什么是计算机性能&#xff1f; 二、计算机性能核心指标 1. CPU性能指标 2. 内存性能指标 3. 存储子系统性能 4. 网络性能指标 5. 系统资源使用与并发能力 三、性能瓶颈分析方法 四、计算机性能评测与对比 常见性能测试指标与工具&#xff1a; 五、计算机性…

基于现代R语言【Tidyverse、Tidymodel】的机器学习方法

机器学习已经成为继理论、实验和数值计算之后的科研“第四范式”&#xff0c;是发现新规律&#xff0c;总结和分析实验结果的利器。机器学习涉及的理论和方法繁多&#xff0c;编程相当复杂&#xff0c;一直是阻碍机器学习大范围应用的主要困难之一&#xff0c;由此诞生了Python…

Python暑期学习笔记5

时间&#xff1a;2025.7.18学习内容&#xff1a;【语法基础】while循环与循环嵌套一、循环语句循环流程图二、while循环基本格式&#xff1a;while条件&#xff1a;循环体&#xff08;条件满足时段做的事情&#xff09;改变变量死循环while True:循环体&#xff08;要循环做的事…

world models and Human–Object Interaction (HOI)

Author: Chatgpt Here are several key research papers that explore the intersection of world models and Human–Object Interaction (HOI)—especially ones that build structured, object-centric representations from videos or use world-model-based learning to p…

无人值守共享自习室物联系统安全防线:从设备到数据的全面防护策略!

在“全民学习”浪潮的推动下&#xff0c;无人值守共享自习室凭借24小时开放、灵活预约和沉浸式体验&#xff0c;已成为城市学习空间的新形态。而当人力值守被物联网设备替代后&#xff0c;安全风险却从物理世界延伸到了数字世界。一套完整的自习室物联网系统包含门禁、传感器、…

【27】MFC入门到精通——MFC 修改用户界面登录IP IP Address Control

界面搭建 将【IP Address Control】控件&#xff0c;【Edit Control】控件和两个【button】控件分别拖入主界面 将ID分别修改为&#xff1a;IDC_IP_ADDRESS IDC_IPADDRESS_EDIT IDC_GET_BUTTON IDC_CLEAN_BUTTON添加变量 为【IP Address Control】控件添加变量【m_IPaddress】&…

MacOS安装linux虚拟机

在学习docker时用的云环境本身就是一个容器&#xff0c;启动docker总是各种问题&#xff0c;所以直接在本机上装一个虚拟机。 当前系统环境&#xff1a; 安装虚拟机软件 安装UTM 下载官网&#xff1a;https://mac.getutm.app/ uname -m查看一下指令架构&#xff0c;下载…

TimSort:论Java Arrays.sort的稳定性

TimSort 是一种混合的、稳定的排序算法&#xff0c;结合了归并排序&#xff08;Merge Sort&#xff09;和二分插入排序&#xff08;Binary Insertion Sort&#xff09;的优点&#xff0c;尤其适用于部分有序的数据。在 Java 中&#xff0c;Arrays.sort() 对对象数组排序时内部使…

企业数据生命周期安全架构设计

数据是企业的生命线&#xff0c;而安全则是这条生命线的保护神。今天我们就来聊聊如何为企业数据的一生一世构建一套坚不可摧的安全防护体系。 &#x1f4da; 文章目录 为什么需要数据生命周期安全架构数据生命周期全景图安全架构设计的核心原则各阶段安全防护策略整体安全架构…

【Java】字符串常量池

文章目录一.字符串常量池(StringTable)1.1 定义1.2 演示示例1.3 intern方法一.字符串常量池(StringTable) 1.1 定义 字符串常量词本质是一个固定大小的HashTable。当用一个字符串构造String对象时&#xff0c;首先会去StringTable中查看是否存在在字符串&#xff0c;如果存在…

数据通信与计算机网络——模拟传输

主要内容数字到模拟转换幅移键控ASK频移键控FSK相移键控PSK正交振幅调制QAM模拟信号调制调幅AM调频FM调相PM一、数字到模拟转换数字信号需要低通通道&#xff0c;如果现实应用中只有带通通道&#xff0c;只能选择模拟信号进行传输。将数字数据转换为带通模拟信号&#xff0c;传…

如何用Python并发下载?深入解析concurrent.futures 与期物机制

concurrent.futures模块的核心价值 Python的concurrent.futures模块提供了线程池&#xff08;ThreadPoolExecutor&#xff09;和进程池&#xff08;ProcessPoolExecutor&#xff09;两种并发模型&#xff0c;通过高层接口简化并发编程。其核心优势在于&#xff1a; 自动管理资源…

MMKV 存储json list数据(kotlin)

1、添加依赖与初始化 首先在 build.gradle 中添加 MMKV 依赖: implementationcom.tencent:mmkv:1.2.12 在 Application 类中初始化 MMKV: import android.app.Application import com.tencent.mmkv.MMKVclass MyApp : Application() { override fun onCreate() { super.o…

C++ -- STL-- stack and queue

////// 欢迎来到 aramae 的博客&#xff0c;愿 Bug 远离&#xff0c;好运常伴&#xff01; ////// 博主的Gitee地址&#xff1a;阿拉美 (aramae) - Gitee.com 时代不会辜负长期主义者&#xff0c;愿每一个努力的人都能达到理想的彼岸。1. stack的介绍和使用 2. queue的介绍…