大数据数据库之HBase:集群安装部署

2023-11-06


前言

Hive的学习告一段落,接下来开始了解大数据主流NoSql数据库HBase,本文主要讲解HBase集群的安装部署,为后续Hbase学习作准备。


1. HBase是什么(5分钟)

1.1 HBase的概念

  • HBase基于Google的BigTable论文,是建立的HDFS之上,提供高可靠性高性能列存储可伸缩实时读写的分布式数据库系统。
  • 在需要实时读写随机访问超大规模数据集时,可以使用HBase。

1.2 HBase的特点

  • 海量存储
    • 可以存储大批量的数据
  • 列式存储
    • HBase表的数据是基于列族进行存储的,列族是在列的方向上的划分。
  • 极易扩展
    • 底层依赖HDFS,当磁盘空间不足的时候,只需要动态增加datanode节点就可以了
    • 可以通过增加服务器来对集群的存储进行扩容
  • 高并发
    • 支持高并发的读写请求
  • 稀疏
    • 稀疏主要是针对HBase列的灵活性,在列族中,你可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的。
  • 数据的多版本
    • HBase表中的数据可以有多个版本值,默认情况下是根据版本号去区分,版本号就是插入数据的时间戳
  • 数据类型单一
    • 所有的数据在HBase中是以字节数组进行存储

2. HBase集群安装部署

2.1 准备安装包

  • 下载安装包并上传到node01服务器

  • 安装包下载地址:

    http://archive.cloudera.com/cdh5/cdh/5/hbase-1.2.0-cdh5.14.2.tar.gz

  • 将安装包上传到node01服务器/kkb/soft路径下,并进行解压

[hadoop@node01 ~]$ cd /kkb/soft/
[hadoop@node01 soft]$ tar -xzvf hbase-1.2.0-cdh5.14.2.tar.gz -C /kkb/install/

2.2 修改HBase配置文件

2.2.1 hbase-env.sh
  • 修改文件
[hadoop@node01 soft]$ cd /kkb/install/hbase-1.2.0-cdh5.14.2/conf/
[hadoop@node01 conf]$ vim hbase-env.sh
  • 修改如下两项内容,值如下
export JAVA_HOME=/kkb/install/jdk1.8.0_141
export HBASE_MANAGES_ZK=false

在这里插入图片描述
在这里插入图片描述

2.2.2 hbase-site.xml
  • 修改文件
[hadoop@node01 conf]$ vim hbase-site.xml
<configuration>
	<property>
		<name>hbase.rootdir</name>
		<value>hdfs://node01:8020/hbase</value>  
	</property>
	<property>
		<name>hbase.cluster.distributed</name>
		<value>true</value>
	</property>
	<!-- 0.98后的新变动,之前版本没有.port,默认端口为60000 -->
	<property>
		<name>hbase.master.port</name>
		<value>16000</value>
	</property>
	<property>
		<name>hbase.zookeeper.quorum</name>
		<value>node01,node02,node03</value>
	</property>
    <!-- 此属性可省略,默认值就是2181 -->
	<property>
		<name>hbase.zookeeper.property.clientPort</name>
		<value>2181</value>
	</property>
	<property>
		<name>hbase.zookeeper.property.dataDir</name>
		<value>/kkb/install/zookeeper-3.4.5-cdh5.14.2/zkdatas</value>
	</property>
    <!-- 此属性可省略,默认值就是/hbase -->
	<property>
		<name>zookeeper.znode.parent</name>
		<value>/hbase</value>
	</property>
</configuration>
2.2.3 regionservers
  • 修改文件
[hadoop@node01 conf]$ vim regionservers
  • 指定HBase集群的从节点;原内容清空,添加如下三行
node01
node02
node03
2.2.4 back-masters
  • 创建back-masters配置文件,里边包含备份HMaster节点的主机名,每个机器独占一行,实现HMaster的高可用
[hadoop@node01 conf]$ vim backup-masters

2.3 分发安装包

  • 将node01上的HBase安装包,拷贝到其他机器上
[hadoop@node01 conf]$ cd /kkb/install
[hadoop@node01 install]$ scp -r hbase-1.2.0-cdh5.14.2/ node02:$PWD
[hadoop@node01 install]$ scp -r hbase-1.2.0-cdh5.14.2/ node03:$PWD

2.4 创建软连接

  • **注意:三台机器**均做如下操作

  • 因为HBase集群需要读取hadoop的core-site.xml、hdfs-site.xml的配置文件信息,所以我们三台机器都要执行以下命令,在相应的目录创建这两个配置文件的软连接

ln -s /kkb/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop/core-site.xml  /kkb/install/hbase-1.2.0-cdh5.14.2/conf/core-site.xml

ln -s /kkb/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop/hdfs-site.xml  /kkb/install/hbase-1.2.0-cdh5.14.2/conf/hdfs-site.xml
  • 执行完后,出现如下效果,以node01为例
    在这里插入图片描述

2.5 添加HBase环境变量

  • **注意:三台机器**均执行以下命令,添加环境变量
sudo vim /etc/profile
  • 文件末尾添加如下内容
export HBASE_HOME=/kkb/install/hbase-1.2.0-cdh5.14.2
export PATH=$PATH:$HBASE_HOME/bin
  • 重新编译/etc/profile,让环境变量生效
source /etc/profile

2.6 HBase的启动与停止

  • 需要提前启动HDFS及ZooKeeper集群

  • 第一台机器node01(HBase主节点)执行以下命令,启动HBase集群

[hadoop@node01 ~]$ start-hbase.sh
  • 启动完后,jps查看HBase相关进程

    node01、node02上有进程HMaster、HRegionServer

    node03上有进程HRegionServer

  • 警告提示:HBase启动的时候会产生一个警告,这是因为jdk7与jdk8的问题导致的,如果linux服务器安装jdk8就会产生这样的一个警告

在这里插入图片描述

  • 可以注释掉所有机器的hbase-env.sh当中的

    “HBASE_MASTER_OPTS”和“HBASE_REGIONSERVER_OPTS”配置 来解决这个问题。

    不过警告不影响我们正常运行,可以不用解决

  • 我们也可以执行以下命令,单节点启动相关进程

#HMaster节点上启动HMaster命令
hbase-daemon.sh start master

#启动HRegionServer命令
hbase-daemon.sh start regionserver

2.7 访问WEB页面

在这里插入图片描述

1.8 停止HBase集群

  • 停止HBase集群的正确顺序
  • node01上运行
[hadoop@node01 ~]$ stop-hbase.sh
  • 若需要关闭虚拟机,则还需要关闭ZooKeeper、Hadoop集群

总结

Hbase集群搭建完成了,接下来就可以开始愉快的学习Hbase了。

获取更多干货,请关注我的个人公众号,关注领取福利
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大数据数据库之HBase:集群安装部署 的相关文章

  • 将多个前缀行过滤器设置为扫描仪 hbase java

    我想创建一台扫描仪 它可以为我提供带有 2 个前缀过滤器的结果例如 我想要其键以字符串 x 开头或以字符串 y 开头的所有行 目前我知道只能使用一个前缀 方法如下 scan setRowPrefixFilter prefixFiltet 在
  • Firebase 数据库 - 编码错误

    我是 Firebase 的新手 我想使用他们的数据库 但编码似乎存在一些问题 这是我使用 UTF 8 编码的示例 json Stack This is madness Overflow 666 这就是当我将 json 导入 Firebase
  • Apache Cassandra 如何进行聚合操作?

    总的来说 我对 Apache Cassandra 和 nosql 相当陌生 在 SQL 中 我可以执行聚合操作 例如 SELECT country sum age count AS averageAge FROM people GROUP
  • 计算 HBase 表中列族的记录数

    我正在寻找一个 HBase shell 命令来计算指定列族中的记录数 我知道我可以运行 echo scan table name hbase shell grep column family name wc l 然而 这将比标准计数命令运行
  • 在不知道对象键的情况下进行 Cosmos DB 查询

    单个文档示例 id xxxxxx properties a prop type names value John b prop type score value 5 5 c prop type names value Steve 问题 如何
  • 获取行 HBase 的特定列族中的列

    我正在编写一个应用程序 通过 JSP 显示 HBase 中特定表中的数据 我想获取一行的特定列族中的所有列 有什么办法可以做到这一点吗 public String getColumnsInColumnFamily Result r Stri
  • 在 Amazon EMR 上使用 java 中的 hbase 时遇到问题

    因此 我尝试使用作为 MapReduce 步骤启动的自定义 jar 来查询 Amazon ec2 上的 hbase 集群 我的 jar 在地图函数内 我这样调用 Hbase public void map Text key BytesWri
  • 如何使用c#从数据桶中获取所有文档?

    如何获取数据桶中的所有文档 我尝试过一个示例 但我只能获得一个特定的文档 这是我的代码 CouchbaseClient oclient oclient new CouchbaseClient vwspace data bucket name
  • 删除对象时删除嵌套字段中的索引

    我仍在使用 Firebase 这次我有一个与删除对象相关的问题 我有如下结构 users UsErId1 name Jack email email protected cdn cgi l email protection UsErId2
  • 通过updateTable创建多个GSI

    我在用着更新表 http docs aws amazon com AWSJavaScriptSDK latest AWS DynamoDB html updateTable property根据 DynmaoDB 的规定 根据文档 如果我们
  • 无法通过 Hbase 客户端从 Titan 连接到 Google Bigtable

    我正在尝试使用 Hadoop 2 HBase 1 0 2 客户端 连接到 Titan 1 0 0 可在https github com thinkaurelius titan wiki Downloads https github com
  • Hector 和 Cassandra 问题 NoSuchFieldError:DEFAULT_MEMTABLE_THROUGHPUT_IN_MB

    我正在通过 Hector 测试与 Cassandra 数据库的连接 但是当我运行 Junit 测试时 我不断收到以下消息 java lang NoSuchFieldError DEFAULT MEMTABLE THROUGHPUT IN M
  • 国外收藏的查找和排序

    所以我有一个收藏users 并且此集合中的每个文档以及其他属性都有另一个集合中文档的 id 数组 workouts 集合中的每个文档workouts有一个名为date 这就是我想要得到的 对于特定用户 我想要获取属于该用户的锻炼的 work
  • Cassandra 与 ZooKeeper 的事务 - 这有效吗?

    我正在尝试在 ZooKeeper 的帮助下为 Cassandra 实现一个事务系统 由于我认为我在数据库实现方面没有足够的经验 所以我想知道我的想法原则上是否可行 或者是否有任何重大缺陷 以下是步骤的高级描述 识别所有要编辑的行 键 和列
  • 连接到在 Docker 中运行的 HBase

    我无法连接到 Windows 上 Docker 中运行的 HBase banno hbase 独立 https registry hub docker com u banno hbase standalone 图像 但是 我可以连接到本地安
  • 非关系数据库设计[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有兴趣了解您使用过的设计策略非关系型 nosql 数据库 也就是说 不使用传统关系设计或 SQL 的 大多数是新的 数据存储类 例如
  • Hadoop - 直接从 Mapper 写入 HBase

    我有一个 hadoop 作业 其输出应写入 HBase 我并不真正需要减速器 我想要插入的行类型是在映射器中确定的 如何使用 TableOutputFormat 来实现此目的 从所有示例中 我看到的假设是 reducer 是创建 Put 的
  • 有没有多核利用NoSQL系统?

    我从昨天开始就开始使用 MongoDB 并且非常喜欢它 我正在尝试导入大量数据 20 亿行 并为其建立索引 但它似乎没有使用我的系统拥有的 8 个核心 并且导入以正常速率 60000 条记录 秒 进行 我只能想象索引这个集合中的两列可能需要
  • 如何停止在 mongodb 集合中插入重复文档

    让我们有一个MongoDB包含三个文档的集合 db collection find id user A title Physics Bank Bank A id user A title Chemistry Bank Bank B id u
  • appengine python (bigtable) 中的父->子关系

    我仍在学习有关 bigtable nosql 中的数据建模的课程 并且希望得到一些反馈 如果我经常需要跨父母处理孩子的聚合 那么我应该在数据建模中避免父母 gt 孩子的关系吗 举个例子 假设我正在构建一个由许多作者贡献的博客 每个作者都有帖

随机推荐

  • 修改主机名(/etc/hostname和/etc/hosts区别)

    ubuntu永久修改主机名 1 查看主机名 在Ubuntu系统中 快速查看主机名有多种方法 其一 打开一个GNOME终端窗口 在命令提示符中可以看到主机名 主机名通常位于 符号后 其二 在终端窗口中输入命令 hostname或uname n
  • Visual Stdio 2017 Community 中文版哪里下载方便

    嫌官网不好用的话 推荐先下一个腾讯电脑管家 腾讯电脑管家自带了软件下载中心 可以去那里获取Visual Stdio 2017 Community 具体步骤如下 1 安装腾讯电脑管家 2 打开腾讯电脑管家 点击软件管理 如图 3 搜索Visu
  • 寻找环——指针法

    一 在一条链中找环 bool judge int a 存在返回ture 否则返回false int slow 0 fast 0 do slow a slow fast a a fast while slow fast a fast 1 if
  • 嵌入式数据库-SQLite3的基本指令及用C语言操作数据库

    SQLite简介 轻量化 易用的嵌入式数据库 用于设备端的数据管理 可以理解成单点的数据库 传统服务器型数据 库用于管理多端设备 更加复杂 SQLite是一个无服务器的数据库 是自包含的 这也称为嵌入式数据库 这意味着数据库引擎作为应用程序
  • DEMO:修改外向交货单BAPI_OUTB_DELIVERY_CHANGE_SAP刘梦_新浪博客

    简单demo 交货单数量 1 然后维护上序列号 有的公司没有启用序列号就不需要了 REPORT zdemo vl02n TABLES likp lips PARAMETERS p vbeln TYPE vbeln vl PARAMETER
  • 若依源码DataScopeAspect数据权限

    目录 源代码 使用场景 代码解析 源代码 从这里可以看出 表sys role dept 的用途 之前一起不清楚 role dept关联表的含义 自定义数据权限时 DATA SCOPE CUSTOM 通过角色 可以管理哪几个部门 来实现的 A
  • qt中的setStyleSheet的基本用法(按钮的几种状态)

    参考博客 https blog csdn net qq 42250189 article details 105199339 https blog csdn net weixin 38169769 article details 99894
  • 在打印ASCII值是26的字符的时候,输出的结果不认识

    现象 解决办法 32其实是一种转义字符 后面的32是8进制的 8进制的32代表的就是2 8 0 3 8 1 结果为十进制的26 在ASCII表里边0 31个字符 开头的32个字符 以及第127个字符 最后一个字符 都是不可见的 无法显示 但
  • 封装 x-spreadsheet 带样式导入导出

    接上两篇 vue 下使用 exceljs x spreadsheet 带样式导入Excel vue 下使用 exceljs x spreadsheet 带样式导出Excel 下面封装好一个组件
  • gan与dcgan训练自己的数据集

    gan https blog csdn net weixin 50113231 article details 122959899 dcgan 源码地址 https github com carpedm20 DCGAN tensorflow
  • freertos---软定时器

    一 软件定时器介绍 freeRTOS软件定时器的时基是基于系统时钟节拍实现的 可以创建很多个 在硬件定时器资源不充足的情况下非常有用 软件定时器一般用作周期性地执行函数 在创建软件定时器时指定软件定时器的回调函数 在回调函数中实现相应的功能
  • Unity TrailRenderer 画出轮胎压痕

    需求 在车拐弯的时候出现轮胎压痕 压痕出现条件 轮胎触碰到地板 轮胎角度有偏移 轮胎在转动 胎痕是断续的 所以每一段胎痕是单独的一个TrailRenderer 轮胎的转动跟角度可以通过wheelCollider来判断 轮胎触碰地板可以通过W
  • C++指针(坚持更新c++内容的第1天)

    概述 c c 语言强大 效率高 很大的程度是体现在指针的灵活运用上面 即便是有经验的程序员使用指针也会因指针的错误而受折磨 本文参考各位大佬的资料来记录一下有关于指针的概念以及相关用法 1 什么是指针 复合类型 compound type
  • 输出1~100,每五个显示在一行

    include
  • Python基础(笔记1)

    1 数据类型 字符串类型 单引号 双引号只能在一行显示 三引号可以在多行显示 数据类型转换 转换为字符串str 转int 转浮点数float 将str转int必须为整数串 浮点串不可以转 输入函数 a input 请输入一个数 str类型
  • 层次分析法(AHP法)

    目录 一 介绍 二 层次分析法的基本原理 三 层次分析法的主要步骤 四 层次分析法评价过程 1 建立多级阶梯的层次结构 2 求判断矩阵A 3 计算相对权重 1 求和法 2 求根法 4 结果 5 综合重要度计算 一 介绍 层次分析法 AHP
  • 彩色点云显示方法(ArcScene)

    使用ArcScene显示彩色点云 撰写论文时想添加几张点云图片 但是利用cloudcompare显示的点云图像看起来实在是low 故曲线救国 探索了一种看起来稍微不那么low的显示方法 先对点云赋色 然后利用ArcScene显示 为避免自己
  • PFC电源设计与电感设计计算学习笔记

    PFC电源设计与电感设计计算 更新于2018 11 30 课程概览 常见PFC电路和特点1 常见PFC电路和特点1 CRM PFC电路设计计算 CCM PFC电路设计计算 CCM Interleave PFC电感纹波电流计算 DCM CRM
  • 3)minikube玩转k8s集群之创建k8s集群

    配套视频教程 1 Minikube介绍 简单说 创建k8s集群很麻烦 minikube可以让我们快速搭建一个k8s集群用于学习 Minikube 是一种可以让您在本地轻松运行 Kubernetes 的工具 Minikube 在笔记本电脑上的
  • 大数据数据库之HBase:集群安装部署

    文章目录 前言 1 HBase是什么 5分钟 1 1 HBase的概念 1 2 HBase的特点 2 HBase集群安装部署 2 1 准备安装包 2 2 修改HBase配置文件 2 2 1 hbase env sh 2 2 2 hbase