15-Linux部署HBase集群

Linux部署HBase集群

简介

HBase 是一种分布式、可扩展、支持海量数据存储的 NoSQL 数据库。

和Redis一样,HBase是一款KeyValue型存储的数据库。

不过和Redis设计方向不同

  • Redis设计为少量数据,超快检索
  • HBase设计为海量数据,快速检索

HBase在大数据领域应用十分广泛,现在我们来在node1、node2、node3上部署HBase集群。

HBase官网:https://hbase.apache.org/

安装

  1. HBase依赖Zookeeper、JDK、Hadoop(HDFS),请确保已经完成前面

    • 集群化软件前置准备(JDK)
    • Zookeeper
    • Hadoop
    • 可参考如下文章
    • 11-Linux部署集群准备:http://t.csdnimg.cn/zWbnd
    • 12-Linux部署Zookeeper集群:http://t.csdnimg.cn/dOvt5
    • 14-Linux部署Hadoop集群:http://t.csdnimg.cn/ptHa3
  2. 【node1执行】下载HBase安装包

    • 下载
    wget --no-check-certificate http://archive.apache.org/dist/hbase/2.1.0/hbase-2.1.0-bin.tar.gz
    
    • 解压
    tar -zxvf hbase-2.1.0-bin.tar.gz -C /export/server
    
    • 软链接
    ln -s /export/server/hbase-2.1.0 /export/server/hbase
    
  3. 【node1执行】,修改配置文件,修改conf/hbase-env.sh文件

    # 在28行配置JAVA_HOME
    export JAVA_HOME=/export/server/jdk
    # 在126行配置:
    # 意思表示,不使用HBase自带的Zookeeper,而是用独立Zookeeper
    export HBASE_MANAGES_ZK=false
    # 在任意行,比如26行,添加如下内容:
    export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"
    
  4. 【node1执行】,修改配置文件,修改conf/hbase-site.xml文件

    # 将文件的全部内容替换成如下内容:
    <configuration><!-- HBase数据在HDFS中的存放的路径 --><property><name>hbase.rootdir</name><value>hdfs://node1:8020/hbase</value></property><!-- Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面 --><property><name>hbase.cluster.distributed</name><value>true</value></property><!-- ZooKeeper的地址 --><property><name>hbase.zookeeper.quorum</name><value>node1,node2,node3</value></property><!-- ZooKeeper快照的存储位置 --><property><name>hbase.zookeeper.property.dataDir</name><value>/export/server/apache-zookeeper-3.6.0-bin/data</value></property><!--  V2.1版本,在分布式情况下, 设置为false --><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property>
    </configuration>
    
  5. 【node1执行】,修改配置文件,修改conf/regionservers文件

    # 填入如下内容
    node1
    node2
    node3
    
  6. 【node1执行】,分发hbase到其它机器

    scp -r /export/server/hbase-2.1.0 node2:/export/server/
    scp -r /export/server/hbase-2.1.0 node3:/export/server/
    
  7. 【node2、node3执行】,配置软链接

    ln -s /export/server/hbase-2.1.0 /export/server/hbase
    
  8. 【node1、node2、node3执行】,配置环境变量

    • 编辑profile配置文件
    vim /etc/profile
    
    • 配置在/etc/profile内,追加如下两行
    export HBASE_HOME=/export/server/hbase
    export PATH=$HBASE_HOME/bin:$PATH
    
    • 刷新环境变量
    source /etc/profile
    
  9. 【node1执行】启动HBase

    • 【node1、node2、node3】启动zookeeper
    /export/server/zookeeper/bin/zkServer.sh start
    
    • 【node1】启动Hadoop
    start-all.sh
    

    请确保:Hadoop HDFS、Zookeeper是已经启动了的

    start-hbase.sh# 如需停止可使用
    stop-hbase.sh
    

    由于我们配置了环境变量export PATH= P A T H : PATH: PATH:HBASE_HOME/bin

    start-hbase.sh即在$HBASE_HOME/bin内,所以可以无论当前目录在哪,均可直接执行

  10. 验证HBase

    浏览器打开:http://192.168.149.131:16010,即可看到HBase的WEB UI页面

    image-20240229093921180

  11. 简单测试使用HBase

    【node1执行】

    hbase shell# 创建表
    create 'test', 'cf'# 插入数据
    put 'test', 'rk001', 'cf:info', 'bowen'# 查询数据
    get 'test', 'rk001'# 扫描表数据
    scan 'test'
    

    image-20240229091804805

问题:

hbase启动十几秒后,HMaster进程会被终止

image-20240228214241597

解决方案:

参考:http://t.csdnimg.cn/4adOh

查了一堆资料,有一篇说是要删除/etc/hosts中的127.0.0.1的地址,没用,最后根据上述参考重启了Zookeeper,启用zkCli.sh

/export/server/zookeeper/bin/zkCli.sh

查看所有节点ls /

[zk: localhost:2181(CONNECTED) 1] ls /
[admin, brokers, cluster, config, consumers, controller_epoch, feature, hbase, isr_change_notification, latest_producer_id_block, log_dir_event_notification, zookeeper]

删除hbase节点

[zk: localhost:2181(CONNECTED) 4] delete /hbase 
Node not empty: /hbase

重启zookeeper

/export/server/zookeeper/bin/zkServer.sh stop
/export/server/zookeeper/bin/zkServer.sh start

启动hbase

[root@node1 conf]# start-hbase.sh 
running master, logging to /export/server/hbase/logs/hbase-root-master-node1.out
node3: running regionserver, logging to /export/server/hbase/bin/../logs/hbase-root-regionserver-node3.out
node2: running regionserver, logging to /export/server/hbase/bin/../logs/hbase-root-regionserver-node2.out
node1: running regionserver, logging to /export/server/hbase/bin/../logs/hbase-root-regionserver-node1.out

查看进程jps

[root@node1 conf]# jps
2629 NodeManager
3014 WebAppProxyServer
5383 Jps
1752 NameNode
5081 HRegionServer
1898 DataNode
4140 QuorumPeerMain
2477 ResourceManager
4989 HMaster
2222 SecondaryNameNode
[root@node1 conf]# ssh node2
Last login: Thu Feb 29 08:46:40 2024 from 192.168.149.1
[root@node2 ~]# jps
2369 HRegionServer
1508 QuorumPeerMain
1621 DataNode
1735 NodeManager
2540 Jps
[root@node2 ~]# ssh node3
Last login: Thu Feb 29 08:46:41 2024 from 192.168.149.1
[root@node3 ~]# jps
2417 HRegionServer
2594 Jps
1609 DataNode
1723 NodeManager
1503 QuorumPeerMain
[root@node3 ~]# exit
登出
Connection to node3 closed.
[root@node2 ~]# exit
登出
Connection to node2 closed.
[root@node1 conf]# 

hbase启动成功!!!!!

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

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

相关文章

数据结构:排序算法+查找算法

一、概念 程序数据结构算法 1.算法的特性和要求 特性&#xff1a; 确定性&#xff08;每次运行相同的输入都是同样的结果&#xff09;、有穷性、输入、输出、可行性 设计要求&#xff1a; 正确性、高效率、低存储、健壮性、可读性 2.时间复杂度 3.常见排序算法的时间复杂…

LeNet训练集详细实现

一、下载训练集 导包 import torch import torchvision import torch.nn as nn from model import LeNet import torch.optim as optim import torchvision.transforms as transforms import matplotlib.pyplot as plt import numpy as npToTensor()函数&#xff1a; 把图像…

视频二维码加密怎么设置?验证密码看内容的二维码做法

现在为了保障内容的私密性&#xff0c;很多人会采用生成二维码的方式来展现或者传递自己的内容&#xff0c;比如文件、视频、音频等等。如果我们想要制作一个视频二维码&#xff0c;并且给二维码加密后需要输入正确密码才能查看视频内容&#xff0c;这种类型的二维码的制作方式…

就业班 2401--3.5 Linux Day11--DNS解析

DNS域名解析服务 少壮不努力&#xff0c;老大徒伤悲。一、 1.DNS介绍 DNS 是域名系统 (Domain Name System) 的缩写&#xff0c;是因特网的一项核心服务&#xff0c;它作为可以将域名和IP地址相互映射的一个分布式数据库&#xff0c;能够使人更方便的访问互联网&#xff0c;…

numpy——基础知识(创建/类型/形状/运算)(python)

简介 NumPy 是一个 Python 包。它代表 Numeric Python。 它是一个由多维数组对象和用于处理数组的例程集合组成的库。 Numeric&#xff0c;即 NumPy 的前身&#xff0c;是由 Jim Hugunin 开发的。 也开发了另一个包 Numarray &#xff0c;它拥有一些额外的功能。 2005年&#…

VueCli的安装与卸载

文章目录 一.Node安装包的报读网盘提取码二、Vue脚手架Cli三、Vue-CLI使用步骤(自定义安装)1.转换路径并创建项目2.创建步骤的解释(保姆级)3.等待vue项目自己创建好(保姆级) 四、通过npm对vue的安装与卸载 一.Node安装包的报读网盘提取码 下面的链接为地址: Node的百度网盘提取…

Redis(5.0)

1、什么是Redis Redis是一种开源的、基于内存、支持持久化的高性能Key-Value的NoSQL数据库&#xff0c;它同时也提供了多种数据结构来满足不同场景下的数据存储需求。 2、安装Redis&#xff08;Linux&#xff09; 2.1、去官网&#xff08;http://www.redis.cn/&#xff09;下…

linux安装ngnix

一、将nginx-1.20.1.tar.gz上传至linux服务器目录下 二、将nginx安装包解压到/usr/local目录下 tar -zxvf /home/local/nginx-1.20.1.tar.gz -C /usr/local/三、预先安装依赖 yum -y install pcre-devel yum -y install openssl openssl-devel yum -y install gcc gcc-c auto…

二分查找算法:高效搜索有序数据的利器

二分查找算法&#xff1a;高效搜索有序数据的利器 在计算机科学中&#xff0c;搜索是一项基本而重要的操作。对于有序数据&#xff0c;二分查找算法是一种高效的搜索方法。本文将介绍二分查找算法的原理、实现以及其在实际应用中的优势&#xff0c;帮助读者理解和应用这一常用的…

C++学习第七天(string类)

1、学习string的原因&#xff1f; C语言中的字符串 C语言中&#xff0c;字符串是以‘\0’结尾的一些字符的集合&#xff0c;为了操作方便&#xff0c;C标准库中提供了一些str系列的库函数&#xff0c;但是这些库函数与字符串是分离开的&#xff0c;而且底层空间需要用户自己管…

13. C++类使用方式

【类】 C语言使用函数将程序代码模块化&#xff0c;C通过类将代码进一步模块化&#xff0c;类用于将实现一种功能的全局数据、以及操作这些数据的函数集中存储在一起&#xff0c;同时可以设置类成员的访问权限&#xff0c;禁止外部代码使用和篡改本类成员&#xff0c;类成员访…

3月每日一题笔记

感谢我的好朋友的鼓励 3月4日 两种等价方式?都是错误的 ->加减中不能使用等价无穷小? ->不全面。 两项无穷小相减, 那么两项无穷小比值的极限不等于 1 时, 或者两项无穷小相加时, 其比值极限不等于 −1 时, 代数和差各项可以用等价无穷小替换 等价无穷小不精确

腾达路由器检测环境功能破解MISP基础

在虚拟机上用qemu运行腾达路由器的网站固件会遇到无法识别网络的问题&#xff0c;这篇主要是破解这个功能&#xff0c;使腾达路由器成功在虚拟机上运行&#xff0c;方便漏洞复现 本次用到的腾达路由器版本&#xff1a; https://www.tenda.com.cn/download/detail-3683.html下…

数据伪列

目录 数据伪列 rownum 查询 emp 表中的记录并且取得第一行数据 取得 emp 表的前 5 行记录 rowid 面试题&#xff1a;表中有许多完全重复的数据&#xff0c;要求将重复的数据删除掉&#xff08;只剩最早的一个&#xff09; Oracle从入门到总裁:https://blog.csdn.net/weixin…

Guava处理异常

guava由Google开发&#xff0c;它提供了大量的核心Java库&#xff0c;例如&#xff1a;集合、缓存、原生类型支持、并发库、通用注解、字符串处理和I/O操作等。 异常处理 传统的Java异常处理通常包括try-catch-finally块和throws关键字。 遇到FileNotFoundException或IOExce…

嵌入式蓝桥杯做题总结

第十二届省赛 按键代码 ——自认为比较巧妙&#xff0c;定时器3被设置为10ms进入一次中断&#xff0c;代替了HAL_Delay(10)的方法消抖&#xff1b; 运用状态机机思想实现检测多个按键检测——且分为两个状态&#xff0c;其中一个状态PB&#xff11;和PB&#xff12;的按键不…

stable-diffusion-webui-forge 介绍,安装,运行

一 stable-diffusion-webui-forge 介绍 stable-diffusion-webui-forge 的作用和stable-diffusion-webui一样&#xff0c;但性能上作了优化&#xff0c;说得上是是stable-diffusion-webui优化版&#xff0c;本人在使用stable-diffusion-webui时偶尔会有内存不够报错。本人的环境…

手写分布式配置中心(四)增加实时刷新功能(长轮询)

上一篇文章中实现了短轮询&#xff0c;不过短轮询的弊端也很明显&#xff0c;如果请求的频率较高&#xff0c;那么就会导致服务端压力大&#xff08;并发高&#xff09;&#xff1b;如果请求的频率放低&#xff0c;那么客户端感知变更的及时性就会降低。所以我们来看另一种轮询…

Mysql面试总结

基础 1. 数据库的三范式是什么&#xff1f; 第一范式&#xff1a;强调的是列的原子性&#xff0c;即数据库表的每一列都是不可分割的原子数据项。第二范式&#xff1a;要求实体的属性完全依赖于主关键字。所谓完全 依赖是指不能存在仅依赖主关键字一部分的属性。第三范式&…

UDP通信发送和接收 || UDP实现全双工通信

recvfrom ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen); 功能: 从套接字中接收数据 参数: sockfd:套接字文件描述符 buf:存放数据空间首地址 …