Hadoop之HBase

news2024/11/26 20:38:24

文章目录

  • 一、HBase简介
  • 二、HBase结构
    • 1.1HBase逻辑结构
    • 1.2HBase物理结构
    • 1.3HBase基础架构
  • 三、HBase安装配置
    • 3.1单机模式
    • 3.2集群搭建
  • 四、HBase JAVA API


一、HBase简介

《HBase官方文档》的原文地址是:http://hbase.apache.org/book.html
W3Cschool.cn进行整理翻译 https://www.w3cschool.cn/hbase_doc/
HBase是Apache的Hadoop项目的子项目,是Hadoop Database的简称。
下载:https://www.apache.org/dyn/closer.cgi/hbase/

HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。

HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库,HBase基于列的而不是基于行的模式

二、HBase结构

1.1HBase逻辑结构

行切片 列转列族

在这里插入图片描述

1.2HBase物理结构

在这里插入图片描述

1.3HBase基础架构

在这里插入图片描述

三、HBase安装配置

HBASE分为单机模式,伪分布模式,集群模式:

3.1单机模式

1.上传并解压
tar -zxvf hbase-2.4.15-bin.tar.gz -C /opt/modules/
2.修改配置文件 conf/hbase-site.xml 
#前三行是默认的,有分布式需求的话,可以把hbase.cluster.distributed改成true
......
<property>
    <name>hbase.cluster.distributed</name>
    <value>false</value>
  </property>
  <property>
    <name>hbase.tmp.dir</name>
    <value>./tmp</value>
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>
 
<!--指定hbase管理页面的端口号-->
<property>
     <name>hbase.master.info.port</name>
       <value>16010</value>
 </property>
<!--指定hdfs的地址-->
<property>
        <name>hbase.rootdir</name>
         <value>hdfs://sunshuo:8020/hbase</value>
 </property>
 <property>
	<name>hbase.zookeeper.property.dataDir</name>
	<value>/home/hadoop/zookeeper</value>
</property>
.......
3.启动服务
bin/start-hbase.sh
bin/hbase shell #shell操作

3.2集群搭建

HBase集群建立在Hadoop集群的基础上,而且依赖于ZooKeeper,因此在搭建HBase集群之前,需要将Hadoop集群和ZooKeeper集群搭建好。

1.	上传解压HBase安装包
$ tar -zxf hbase-2.4.15-bin.tar.gz -C /opt/modules/
2.	hbase-env.sh文件配置
......
#conf/hbase-env.sh,配置HBase关联的JDK,并禁用HBase自带的ZooKeeper,
export JAVA_HOME=/opt/modules/jre1.8.0_361
#禁用HBase自带的ZooKeeper,使用外部独立ZooKeeper
export HBASE_MANAGES_ZK=false
......
3.	hbase-site.xml文件配置
......
<configuration>
  <!--需要与HDFS NameNode端口一致-->
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://centos1:9820/hbase</value>
  </property>
  <!--开启分布式-->
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <!--ZooKeeper节点列表 -->
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>centos1:2181,centos2:2181,centos3:2181</value>
  </property>
  <!--ZooKeeper数据存放目录-->
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/opt/modules/hbase-2.4.9/zkData</value>
  </property>
   <!--在分布式环境下设置为false,为解决启动HMaster无法初始化WAL的问题-->
  <property>
     <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>
  <property>
    <name>hbase.wal.provider</name>
    <value>filesystem</value>
  </property>
</configuration>
......
4.	regionservers文件配置 #conf/regionservers
......
centos1
centos2
centos3
......
5.复制HBase到其他节点
scp -r hbase-2.4.15/  centos2:/opt/modules/
scp -r hbase-2.4.15/  centos5:/opt/modules/
6.启动
bin/start-hbase.sh
7.启动后shell命令
bin/hbase shell

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

四、HBase JAVA API

# pom.xml
<dependency>
  <groupId>org.apache.hbase</groupId>
  <artifactId>hbase-client</artifactId>
  <version>2.4.15</version>
</dependency>
package hdfs.demo;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;

public class HBaseCreateTable{
    public static void main(String[] args) throws Exception {
        //创建HBase配置对象
        Configuration conf= HBaseConfiguration.create();
        //指定ZooKeeper集群地址
        conf.set("hbase.zookeeper.quorum", "192.168.10.101:2181,192.168.10.102:2181,192.168.10.105:2181");
        //创建连接对象Connection
        Connection conn= ConnectionFactory.createConnection(conf);
        //得到数据库管理员对象
        Admin admin=conn.getAdmin();
        //创建表描述,并指定表名
        TableName tableName=TableName.valueOf("t2");
        HTableDescriptor desc=new HTableDescriptor(tableName);
        //创建列族描述
        HColumnDescriptor family=new HColumnDescriptor("f1");
        //指定列族
        desc.addFamily(family);
        //创建表
        admin.createTable(desc);
        System.out.println("create table success!!");
    }
}

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

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

相关文章

C++linux高并发服务器项目实践 day6

Clinux高并发服务器项目实践 day6exec函数族介绍execlexeclp其他进程控制进程退出孤儿进程僵尸进程进程回收wait()函数waitpid()函数exec函数族 介绍 exec函数族的作用是根据指定的文件名找到可执行文件&#xff0c;并用它来取代调用进程的内容&#xff0c;换句话说&#xff…

【路径规划】Dubins路径

简介 在无障碍物的情况下&#xff0c;路径规划中最简单的形式&#xff0c;就是将路径看作是由直线段和常曲率圆弧段组成&#xff0c;这就是Dubins路径。Dubins路径可以简单的理解为&#xff1a;在最大曲率限制下&#xff0c;平面内两个由方向的点间的最短可行路径是 CLC 路径或…

[STM32F103C8T6]基于LCD和DHT11、HC08的温湿度检测系统并上传服务器

项目实际图 本次项目需要整合LCD1602、DHT11、HC08、继电器 1.首先是LCD1602显示程序 封装管脚&#xff0c;这样的话写时序的时候不用随时都在哪儿HAL_GPIO_WritePin #define RS_GPIO_Port GPIOB #define RW_GPIO_Port GPIOB #define EN_GPIO_Port GPIOB #define RS_Pin GPI…

PP模块-生产主数据之一-物料主数据

物料主数据的配置主要在 MM 模块中进行管理&#xff0c;一般由MM顾问或MDM的顾问负责流程梳理、规则讨论、并主导完成数据收集工作。所以在SAP系统项目的实施过程中&#xff0c;根据系统对物料主数据数特有的配置对象要求&#xff0c;与业务负责人进行讨论并达成一致&#xff0…

FreeRTOS如何解决访问冲突/线程不安全(临界段、互斥锁、挂起调度、看门人任务)

在多任务&#xff08;多线程&#xff09;系统中&#xff0c;存在一个隐患&#xff0c;那就是多线程的访问&#xff08;在FreeRTOS中就是任务&#xff09;。当一个任务A开始访问一个资源&#xff08;外设、一块内存等&#xff09;&#xff0c;但是A还没有完成访问&#xff0c;B任…

精通 TensorFlow 2.x 计算机视觉:第二部分

原文&#xff1a;Mastering Computer Vision with TensorFlow 2.x 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 深度学习 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 不要担心自己的形象&#xff0c;…

【RabbitMQ学习日记】—— 再见RabbitMQ

一、发布确认高级篇 在生产环境中由于一些不明原因&#xff0c;导致 rabbitmq 重启&#xff0c;在 RabbitMQ 重启期间生产者消息投递失败&#xff0c;导致消息丢失&#xff0c;需要手动处理和恢复如何才能进行 RabbitMQ 的消息可靠投递呢&#xff1f; 特别是在这样比较极端的情…

MYSQL:数据类型与运算符、MySQL函数

一.部分需要学会的操作&#xff08;以举例形式列出&#xff09;&#xff1a; insert into tmp15 values(This is good,50); /*向tmp15插入note 为 “This is good”&#xff0c;price为50的元素*/ 注&#xff1a;需要严格对应字段和元素属性的位置 select * from tmp15 /*查…

【Diffusion Model】Learning notes

来自 扩散模型 Diffusion Model 1-1 概述 扩散模型是什么&#xff1f; 本质是生成模型&#xff0c;拟合目标分布&#xff0c;然后生成很多数据符合这个分布 训练测试阶段&#xff1f; 和 GAN 相比优势是什么&#xff1f; generator 和 discriminator 两者都得训练的比较均衡…

JDK8到JDK17有哪些吸引人的新特性?

作者&#xff1a;京东零售 刘一达 前言 2006年之后SUN公司决定将JDK进行开源&#xff0c;从此成立了OpenJDK组织进行JDK代码管理。任何人都可以获取该源码&#xff0c;并通过源码构建一个发行版发布到网络上。但是需要一个组织审核来确保构建的发行版是有效的, 这个组织就是J…

Excel VBA 之Interior 对象设置底色

Interior 对象 代表一个对象的内部 针对interior对象&#xff0c;我们用得最多的是它的颜色&#xff0c;下面就来讨论一下。 1.ColorIndex 索引颜色值 Sub 索引颜色值()For i 1 To 56Cells(i, 1).Interior.ColorIndex iCells(i, 2) iNext iFor i 1 To 56Cells(i, 3).Interi…

算法训练第六十天 | 84.柱状图中最大的矩形

单调栈part0384.柱状图中最大的矩形题目描述思路暴力解法双指针解法单调栈84.柱状图中最大的矩形 题目链接&#xff1a;84.柱状图中最大的矩形 参考&#xff1a;https://programmercarl.com/0084.%E6%9F%B1%E7%8A%B6%E5%9B%BE%E4%B8%AD%E6%9C%80%E5%A4%A7%E7%9A%84%E7%9F%A9%E…

《Kubernetes部署篇:Ubuntu20.04基于containerd二进制部署K8S 1.24.12集群(一主多从)》

一、架构图 如下图所示&#xff1a; 如下图所示&#xff1a; 二、环境信息 1、部署规划 主机名IP地址操作系统内核版本软件说明etcd01192.168.1.62Ubuntu 20.04.5 LTS5.15.0-69-genericetcdetcd02192.168.1.63Ubuntu 20.04.5 LTS5.15.0-69-genericetcdetcd03192.168.1.64Ubunt…

kettle链接mysql Public Key Retrieval is not allowed

kettle 报错信息页面&#xff1a; 出现 Public Key Retrieval 的场景可以概括为在禁用 SSL/TLS 协议传输切当前用户在服务器端没有登录缓存的情况下&#xff0c;客户端没有办法拿到服务器的公钥。具体的场景如下&#xff1a; 新建数据库用户&#xff0c;首次登录&#xff1b;数…

课程推荐 | 机器视觉与边缘计算应用

点击蓝字关注我们,让开发变得更有趣文案 | 李擎排版 | 李擎文案来源 | https://www.icourse163.org/course/FUDAN-1456632162OpenVINO™╱ 前言 ╱机器视觉是目前人工智能重要的应用领域&#xff0c;在很多领域都有丰富的成功应用案例。其中深度学习的目标检测算法是非常实用的…

ubuntu(20.04)-shell脚本(1)-基本概念

目录 1.概述 2.shell脚本调用形式 3.shell语法初识 3.1 定义以开头&#xff1a;#&#xff01;/bin/bash 3.2 单个“#”号代表注释当前行 4.变量 4.1 只读变量 4.2 环境变量&#xff1a; env 4.3 预测变量&#xff1a; 4.4 变量扩展&#xff1a; 是否存在&#xff0c;字符串…

通过JMH框架 测试公平锁与非公平锁的性能(附测试代码和源码分析)

目录 先上测试代码&#xff1a; 上依赖&#xff1a; 输出结果&#xff1a;(注意不要debug运行&#xff0c;直接运行代码&#xff0c;否则报错) 源码-公平锁的 lock 方法&#xff1a; 源码-非公平锁的lock方法&#xff1a; 总结 非公平锁和公平锁的两处不同&#xff1a; …

docker入门之一:docker基础概念与安装

1. Docker简单介绍 1.1. 什么是docker&#xff1f;1.2. Docker和传统虚拟机1.3. 为什么使用docker1.4. docker架构 2. Docker安装 2.1. docker版本命名2.2. docker安装2.3. docker卸载2.4. docker镜像加速器 1. Docker简单介绍 1.1. 什么是docker&#xff1f; google go语言…

24-Tomcat

目录 1.Tomcat是什么&#xff1f; 2.版本号 3.下载 4.目录介绍 4.1.bin目录 4.2.conf目录 4.3.logs目录 4.4.webapps目录 5.启动服务器 PS&#xff1a;解决Tomcat乱码问题 PS&#xff1a;Tomcat点击启动&#xff0c;控制台一闪而过&#xff0c;啥也没有解决方案 PS…

【花雕学AI】4月5日,ChatGPT中国财经背景分析:昨天沪指重返3300点,这说明了什么?

在这里插入图片描述 附录&#xff1a; 一、ChatGPT是一个可以和你聊天的人工智能程序&#xff0c;它可以用文字回答你的问题&#xff0c;也可以根据你的提示写出文章、歌词、代码等内容。ChatGPT是由一个叫OpenAI的机构开发的&#xff0c;它使用了一种叫做GPT的技术&…