Hbase Java API原理介绍

HBase | HBase从介绍到Java客户端开发 文章目录HBase入门认识HBase介绍HBaseHBase架构RegionServer集群结构HBase逻辑存储结构HBase物理存储结构HBase安装前期准备HBase安装步骤Hbase启动HBase验证备份masterHBase命令HBase 命令介绍HBase Shell命令介绍status命令命名空间namespace相关命令介绍create_namespace命令drop_namesp... 阅读详情

1.0 Hbase原理及基本说明

​HBase 数据模型的关键在于稀疏、分布式、多维、排序的映射。其中映射 map指代非关系型数据库的 key-Value 结构。

Hbase存储数据的原貌:

<pre class="prettyprint hljs ruby" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto;">"office_info":{         #列族
"tel":"010-1111111",    #tel列
"address":"atguigu"     #address列
}

数据模型介绍

(1)Name Spase数据模型:相当于Mysql中的database,下面可以存放多张表

(2)Table:相当于数据库中的表

(3)Row:HBase 表中的每行数据都由一个 RowKey 和多个 Column(列)组成,数据是按照 RowKey

​ 的字典顺序存储的,并且查询数据时只能根据 RowKey 进行检索,所以 RowKey 的设计十分重要。

(4)Column:每个列都由 Column Family(列族)和 Column Qualifier(列限定符)进行限定,例如 info: name,info:age。建表时,只需指明列族,而列限定符无需预先定义。

(5)Time Stamp:用于标识数据的不同版本(version),每条数据写入时,系统会自动为其加上该字段,

​ 其值为写入 HBase 的时间。

(6)Cell:由{rowkey, column Family:column Qualifier, timestamp} 唯一确定的单元。cell 中的数

​ 据全部是字节码形式存贮。

架构说明:

1)Master

实现类为 HMaster,负责监控集群中所有的 RegionServer 实例。主要作用如下:

(1)管理元数据表格 hbase:meta,接收用户对表格创建修改删除的命令并执行

(2)监控 region 是否需要进行负载均衡,故障转移和 region 的拆分。

通过启动多个后台线程监控实现上述功能:

①LoadBalancer 负载均衡器

​ 周期性监控 region 分布在 regionServer 上面是否均衡,由参数 hbase.balancer.period 控制周期时间,默认 5 分钟。

②CatalogJanitor 元数据管理器

​ 定期检查和清理 hbase:meta 中的数据。meta 表内容在进阶中介绍。

③MasterProcWAL master 预写日志处理器

​ 把 master 需要执行的任务记录到预写日志 WAL 中,如果 master 宕机,让 backupMaster读取日志继续干。

2)Region Server

Region Server 实现类为 HRegionServer,主要作用如下:

(1)负责数据 cell 的处理,例如写入数据 put,查询数据 get 等

(2)拆分合并 region 的实际执行者,有 master 监控,有 regionServer 执行。

3)Zookeeper

​ HBase 通过 Zookeeper 来做 master 的高可用、记录 RegionServer 的部署信息、并且存储有 meta 表的位置信息。 HBase 对于数据的读写操作时直接访问 Zookeeper 的,在 2.3 版本推出 Master Registry模式,客户端可以直接访问 master。使用此功能,会加大对 master 的压力,减轻对 Zookeeper的压力。

4)HDFS

​ HDFS 为 Hbase 提供最终的底层数据存储服务,同时为 HBase 提供高容错的支持。

2.0HbaseAPI的使用

2.1创建连接

​ HBase 的客户端连接由 ConnectionFactory 类来创建,用户使用完成之后需要 手动关闭连接 。同时连接是一个重量级的,推荐 一个进程使用一个连接 ,对 HBase的命令通过连接中的两个属性 Admin 和 Table 来实现 。使用类 单例模式 ,确保使用一个连接, 可以同时用于多个线程 。

<pre class="prettyprint hljs java" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto;">package com.fang.hbase;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import java.io.IOException;

public class  HbaseConnection{ 

    public static Connection connection=null;  //声明一个静态属性
    static { 

        //1.创建连接
        //默认使用同步连接

        try { 
            //使用读取本地文件的方式添加参数
            connection=ConnectionFactory.createConnection();
        } catch (IOException e) { 
            e.printStackTrace();
        }
    }

    public  static  void  closeConnection()  throws  IOException{ 
        //判断连接是否为null
        if (connection!=null){ 
            connection.close();
        }
    }

    public  static  void  main(String[] args)  throws  IOException  { 
        //直接使用创建好的连接,不要在main线程里面单独创建
        System.out.println(HbaseConnection.connection);

        //在main线程的最后记得关闭连接
        HbaseConnection.closeConnection();
    }

}

​<mark>还记得静态代码块的特点吗? 随着类的加载而执行,而且只执行一次</mark>

​ 静态代码块 :执行优先级高于非静态的初始化块,它会在类初始化的时候执行一次,执行完成便销毁,它仅能初始化类变量

2.2创建命名空间

在同一个包下创建HbaseDDL类,执行创建命名空间的功能,使用建造者模式

<pre class="prettyprint hljs java" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto;">package com.fang.hbase;

import org.apache.hadoop.hbase.NamespaceDescriptor;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;

import java.io.IOException;

public class  HBaseDDL  { 

    //声明一个静态属性,获取连接
    public static Connection connection = HbaseConnection.connection;

    /**
     * 创建命名空间,命名空间名称
     * @param namespase
     * admin的连接是轻量级的,不是线程安全的,不推荐池化或者缓存连接
     */
    public  static  void  createNamespace(String namespace)  throws  IOException  { 
        //1.获取admin
        Admin admin = connection.getAdmin();

        //2.调用方法创建命名空间,给一个描述
        //代码相对shell更加底层,shell实现的功能,代码一定能实现

        //2.1创建命名空间描述建造者=》设计师
        NamespaceDescriptor.Builder builder = NamespaceDescriptor.create(namespace);

        //2.2给命名空间添加需求
        builder.addConfiguration("user","fang");

        //2.3使用builder构造出对饮的创建一个命名空间描述
        admin.createNamespace(builder.build());

        //3.关闭admin
        admin.close();

    }

    public  static  void  main(String[] args)  throws  IOException  { 
        //测试创建命名空间
        createNamespace("fang");

        System.out.println("创建成功");

        //关闭Hbase连接
        HbaseConnection.closeConnection();

    }

}

执行情况:

在命令行中查看,创建过程,表示创建成功!!!

看这里,前面的代码你会发现,如果你再次执行代码就会发现会出现问题,原因是,创建的命名空间已经存在理论来说这个问题应该自己解决,并不是将异常直接抛出,可参考如下代码

<pre class="prettyprint hljs swift" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto;">package com.fang.hbase;

import org.apache.hadoop.hbase.NamespaceDescriptor;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;

import java.io.IOException;

public class  HBaseDDL  { 

    //声明一个静态属性,获取连接
    public static Connection connection = HbaseConnection.connection;

    /**
     * 创建命名空间,命名空间名称
     * @param namespase
     * admin的连接是轻量级的,不是线程安全的,不推荐池化或者缓存连接
     */
    public static void createNamespace(String namespace) throws IOException { 
        //1.获取admin
        Admin admin = connection.getAdmin();

        //2.调用方法创建命名空间,给一个描述
        //代码相对shell更加底层,shell实现的功能,代码一定能实现

        //2.1创建命名空间描述建造者=》设计师
        NamespaceDescriptor.Builder builder = NamespaceDescriptor.create(namespace);

        //2.2给命名空间添加需求
        builder.addConfiguration("user","fang");

        //2.3使用builder构造出对饮的创建一个命名空间描述
        //创建命名空间出现的问题,都属于
        try { 
            admin.createNamespace(builder.build());
        } catch (IOException e) { 
            System.out.println("命名空间已经存在");
            e.printStackTrace();
        }

        //3.关闭admin
        admin.close();
    }

    public static void main(String[] args) throws IOException { 
        //测试创建命名空间
        createNamespace("fang");

        System.out.println("执行完成");

        //关闭Hbase连接
        HbaseConnection.closeConnection();

    }

}
package com.fang.hbase;

import org.apache.hadoop.hbase.NamespaceDescriptor;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;

import java.io.IOException;

public class  HBaseDDL  { 

    //声明一个静态属性,获取连接
    public static Connection connection = HbaseConnection.connection;

    /**
     * 创建命名空间,命名空间名称
     * @param namespase
     * admin的连接是轻量级的,不是线程安全的,不推荐池化或者缓存连接
     */
    public static void createNamespace(String namespace) throws IOException { 
        //1.获取admin
        Admin admin = connection.getAdmin();

        //2.调用方法创建命名空间,给一个描述
        //代码相对shell更加底层,shell实现的功能,代码一定能实现

        //2.1创建命名空间描述建造者=》设计师
        NamespaceDescriptor.Builder builder = NamespaceDescriptor.create(namespace);

        //2.2给命名空间添加需求
        builder.addConfiguration("user","fang");

        //2.3使用builder构造出对饮的创建一个命名空间描述
        //创建命名空间出现的问题,都属于
        try { 
            admin.createNamespace(builder.build());
        } catch (IOException e) { 
            System.out.println("命名空间已经存在");
            e.printStackTrace();
        }

        //3.关闭admin
        admin.close();
    }

    public static void main(String[] args) throws IOException { 
        //测试创建命名空间
        createNamespace("fang");

        System.out.println("执行完成");

        //关闭Hbase连接
        HbaseConnection.closeConnection();

    }

}

2.3判断表格是否存在

自行将本代码块,放入上方代码中进行测试即可

<pre class="prettyprint hljs java" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto;">/**
     * 创建表格是否存在
     * @param namespace
     * @return
     * @throws IOException
     * trur表示存在 false表示不存在
     */
    public static boolean isTableExists(String namespace,String tableName) throws IOException {
        //1.获取admin
        Admin admin = connection.getAdmin();

        //2.使用方法判断表格是否存在
        boolean b = false;
        try {
            b = admin.tableExists(TableName.valueOf(namespace,tableName));
        } catch (IOException e) {
            e.printStackTrace();
        }

        admin.close();

        //3.返回结果
        return b;
    }

执行结果:

2.5创建表格(使用HBase1.3.1版本和2.4版本有所区别)

<pre class="prettyprint hljs typescript" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto;">/**
     * @param tableName 表格名称
     * @param families 列族名称,可以有多个
     */
    public static void createTable(String tableName,String... families) throws IOException { 

        //1.获取admin
        Admin admin = connection.getAdmin();

        //2.调用方法创建表格
        //2.1创建表格描述的建造者
        TableName tableName1 = TableName.valueOf(tableName);

        HTableDescriptor tableDescriptor=new HTableDescriptor(tableName); //表格描述器

        if (families==null||families.length==0){
  //如果没有填写列族,给一个info
            families=new String[1];
            families[0]="info";

        }

        for (String family : families) { 
            HColumnDescriptor columnDescriptor= new HColumnDescriptor(family);//列族描述器

            tableDescriptor.addFamily(columnDescriptor);
        }
        try { 
            admin.createTable(tableDescriptor);
        } catch (IOException e) { 
            System.out.println("表格已存在");
            e.printStackTrace();
        }

        //3.关闭admin
        admin.close();
    }

2.6插入数据

<pre class="prettyprint hljs java" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto;">package com.fang.hbase;

import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;

import java.io.IOException;

public class  HBaseDML  { 

    public static Connection connection=HbaseConnection.connection;  //声明一个静态属性

    /**
     * @param tableName 表名
     * @param rowKey 主键
     * @param family 列族名
     * @param columnName 列名
     * @param value 值
     */
    public  static  void  putCell(String tableName,String rowKey,String family,String columnName,String value)  throws  IOException  { 
        //1.获取table
        Table table = connection.getTable(TableName.valueOf(tableName));

        //2.调用相关方法添加数据
        Put put = new Put(Bytes.toBytes(rowKey));

        //3.给put对象添加属性
        put.addColumn(Bytes.toBytes(family),Bytes.toBytes(columnName),Bytes.toBytes(value));

        //4.将对象写入方法
        table.put(put);

        //5.关闭table
        try { 
            table.close();
        } catch (IOException e) { 
            System.out.println("表格是否存在");
            e.printStackTrace();
        }

    }

    public  static  void  main(String[] args)  throws  IOException  { 

        //测试添加数据
        putCell("shuju:huahua","1000","age","agga","43");
        System.out.println("其他代码");

        //关闭连接
        HbaseConnection.closeConnection();

    }
}

测试成功!

OpenFoam实用技巧——starccm网格高效转换openfoam格式全解析 本文详细解析了如何利用OpenFOAM官方工具`ccm26toFoam`,将STAR-CCM+生成的高质量网格高效、稳定地转换为OpenFOAM格式。内容涵盖从STAR-CCM+正确导出网格、执行转换命令、解读转换日志,到转换后关键的边界条件修复与网格质量检查等全流程,旨在帮助用户规避常见错误,实现无缝工作流衔接。 阅读详情

相关推荐

图像特征(一)——颜色特征(颜色直方图,颜色矩,颜色集,颜色聚合向量和颜色相关图)

本文主要是为了更好地理解图像特征,理解各方法的原理。转载请注明出处https://mp.youkuaiyun.com/console/editor/html/105090183 图像模式识别的一般步骤为:输入图像--图像预处理--特征提取--特征选择--图像分类--输出结果。 图像特征主要有:颜色特征、形状特征、纹理特征和空间关系特征。 本文主要介绍颜色特征,并给出matlab上实现的demo。 颜...

gloria_iris的博客 3万+

HBASE-JAVA-API

对象中的经度和纬度列中。这段代码是一个 Java 语言的方法,它的作用是从 HBase 数据库中的名为 “stu” 的表中扫描并返回行键在 “1500100888” 和 “1500100900” 之间的前 10 行数据。它的主要作用是根据指定的条件扫描表中的行,并返回符合要求的行数据。这段代码是一个 Java 语言的方法,它的作用是从 HBase 数据库中表名为 “t1” 的表中删除一行,该行的行键为 “rk1”。需要注意的是,如果某一行数据中包含的列的数量不固定,可以使用上述方式获取该行数据中的所有列。

m0_47310235的博客 1606

旋转矩阵的左乘与右乘

旋转矩阵左右乘的详细讲解

qq_46619194的博客 3327

Hbase Java API操作

Hbase有多种不同的客户端,如REST客户端,Thift客户端,ORM框架Kundera等等。Hbase也提供了Java的API来操作表与列簇等信息,它的shell就是对Java的API做了一层封装。我们还是直接看代码这样理解的更容易环境。

未来在这儿的专栏 3062

探针卡技术演进:从金线微针到MEMS探针的Wafer Sort革命

本文探讨了探针卡技术从传统金线微针到MEMS探针的演进,及其对晶圆测试(Wafer Sort)的革命性影响。随着芯片焊垫间距进入45微米以下,MEMS技术凭借其超高精度、超长寿命和卓越的信号完整性,成为应对高密度、高速及3D IC测试挑战的关键,显著提升了测试效率与稳定性。

lstm7chronicler的博客 365

一、C++反作弊对抗实战 (基础篇 —— 2.注册表注入DLL)

在Windows NT/XP操作系统中,当需要加载user32.dll的程序启动时,user32.dll会加载注册表键HLM\Software\Microsoft\WindowsNT\CurrentVersion\Windows\AppInit_dlls下面列出的所有模块。

Koma的主页 1096

HBase API——通过java连接HBase并创建命名空间

通过Java API实现连接HBase并创建命名空间

m0_55685698的博客 2327

【系统架构设计师】二十三、通信系统架构设计理论与实践①

通信网络主要形式:局域网、广域网、移动通信网。 局域网网络架构有 4 种类型:单核心架构、双核心架构、环型架构、层次型架构。 广域网属于多级网络,通常由骨干网、分布网、接入网组成。在网络规模较小时,可仅由骨干网和接入网组成。通常,在大型网络构建中,通过广域网将分布在各地域的局域网互连起来,形成一个大的网络。 移动通信网为移动互联网提供了强有力的支持,尤其是5G 网络为个人用户、垂直行业等 提供了多样化的服务。

帅次的博客 3761

HBase Java Api

任务目标 1.了解HBase语言的基本语法 2.了解HBase开发的原理 3.了解HBase Java API的使用 相关知识 HBase与Hadoop一样,都是用Java编写的,所以HBase对Java支持是必须的,HBase Java API核心类介绍如下: 1.HBaseConfiguration类 HBaseConfiguration是每一个HBase Client都会使用到的对象,它代表...

qq_42933029的博客 1094

基于Python的二手奢侈品电商平台商品保值率数据爬取与分析

本文旨在探讨如何利用Python网络爬虫技术获取二手奢侈品电商平台商品数据,并通过数据分析研究奢侈品的保值率特性。研究将使用最新的爬虫技术(包括Playwright、异步处理和数据清洗技术)来高效获取数据,并利用Pandas、Matplotlib等数据分析库进行深入的数据可视化分析。本文详细介绍了爬虫的设计思路、实现过程以及数据分析方法,为奢侈品投资和消费提供数据参考。关键词:Python爬虫、奢侈品保值率、数据分析、Playwright、异步处理。

2201_76125261的博客 511

杰理SDK入门教程(五):按键使用配置

摘要 杰理SDK提供IO按键和AD按键两种方案。IO按键通过GPIO电平检测实现,配置时需要设置板级宏定义和硬件连接,默认使用PB1引脚。AD按键基于ADC电压采样,通过电阻分压区分按键,需配置功能使能、硬件通道和键值适配。按键功能通过修改SDK中的key_table文件实现。两种方案适用于不同硬件场景,开发者可根据需求选择。

qq_42014563的博客 774

HBase的Java API操作

HBase的Java API操作代码,实现增删改查,过滤功能

qq_40078490的博客 2763

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Hbase Java API的简单使用+原理介绍

本文主要通过Hbase JavaAPI在Hbase中进行建表及插入数据及HBase的DDL和DML,让你更加了解关于Hbase的相关原理。

勇敢牛牛,不怕困难! 1450

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Hbase架构以及应用介绍

Hbase全称为Hadoop Database,即Hbase是Hadoop的数据库,是一个分布式的存储系统。Hbase利用Hadoop的HDFS作为其文件存储系统,利用Hadoop的MapReduce来处理Hbase中的海量数据。利用zookeeper作为其协调工具。 本篇文章将重点介绍Hbase三个方面的内容:Hbase体系结构(架构)的介绍、Hbase shell的操作、Hbase的Ja

什么最重要?算法!! 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

分布式NoSQL列存储数据库Hbase Java API(三)

文章目录分布式NoSQL列存储数据库Hbase(三)知识点01:课程回顾知识点02:课程目标知识点03:Java API:DML:Table知识点04:Java API:DML:Put知识点05:Java API:DML:Get知识点06:Java API:DML:Delete知识点07:Java API:DML:Scan知识点08:Java API:DML:Filter知识点09:存储设计:存储架构知识点10:存储设计:Table、Region、RegionServer的关系知识点11:存储设计:Regi

Maynor的博客 2555

Apache Hbase基本概念及Java API

一、Apache Hbase基本概述 Apache Hbase是一个基于Hadoop的数据库,它可靠、数据多版本、分布式适合结构化大数据的存储,Apache Hbase是Google BigTable开源实现,基于列储存的菲关系型数据库。 (1)列储存和行储存的区别 列储存和行储存是指数据子存储介质中的额储存方式 **·**关系型数据库(行储存):Oracle、mysql等 **·**非关系型数据库(列储存):Hbase、Redis (2)Hbase数据模型及概念 (1)主键rowkey:获取数据的唯一

qq_44962429的博客 683

HBase知识点总结

一、HBase简介 1.HBase概念 HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。 利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBase利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协调工具。 2.HBase特点 大:一个表可以有数十亿行,上百万列; 无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的

达娃里氏的博客 1979

HBase(第二节)HBase的JavaAPI、HBase底层原理和HBase的三个重要机制

HBase的JavaAPI 创建maven项目,pom文件如下: <repositories> <repository> <id>cloudera</id> <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url> </repository> </repositories> <dep

hwq317622817的博客 224

Hbase 的基础入门

Hbase 的基础入门 HBase 官网 本次安装部署的是 cdh 5.16.2 系列 1. HBase 部署 HBase 下载地址 1.1 HBase 部署前提 需要部署 Hadoop,HBase 的数据最终存储在 HDFS 上面 需要部署Zookeeper,HBase 的元数据存储在 Zookeeper 上面 1.2 HBase 下载以及修改配置文件 [root@bigdatatest01 ~]# cd software/ [root@bigdatatest01 software]# wget

qq_41301707的博客 1190

hbase语法和java_api操作hbase

#主键 rowkey设计-+ sqoop ->hbase hive ->hbase java api ->hbase console ->hbase #控制台建立访 问接口 hbase shell #存储结构 库:命名空间 namespace 表: table +列:列簇 column family htable...

Shixuefeng2410的博客 820

HBase精讲(上)

目录一、Hbase下载安装二、HBase 架构原理2.1、HBase 架构2.1.1、Client:客户端2.1.2、ZooKeeper2.1.3、HMaster2.1.4、HRegionServer2.1.5、HDFS2.1.6、Write-Ahead Logs2.1.7、HRegion2.1.8、Store2.1.9、MemStore2.1.10、HFile2.2、HBase 数据存储结构2.2.1、RowKey2.2.2、Column Family2.2.3、Cell2.2.4、Time Stamp2

绿萝蔓蔓绕枝生 384

Hadoop 综合揭秘——HBase的原理与应用

前言 现今互联网科技发展日新月异,大数据、云计算、人工智能等技术已经成为前瞻性产品,海量数据和超高并发让传统的 Web2.0 网站有点力不从心,暴露了很多难以克服的问题。为此,Google、Amazon 、Powerset 等各大平台纷纷推出 NoSQL 技术以应对市场的急速发展,近10年间NoSQL技术百花齐放,HBase、Redis、MongoDB、Cassandra 等技术纷纷涌现。本文主...

风尘浪子 249

HBase入门篇2

本篇文章讲述用HBase Shell命令和 HBase Java API 对HBase 服务器进行操作。在此之前需要对HBase的总体上有个大概的了解。比如说HBase服务器内部由哪些主要部件构成?HBase的内部工作原理是什么?我想学习任何一项知识、技术的态度不能只是知道如何使用,对产品的内部构建一点都不去关心,那样出了问题,很难让你很快的找到答案,甚至我们希望最后能对该项技术的领悟出自己的心得,为我所用,借鉴该项技术其中的设计思想创造出自己的解决方案,更灵活的去应对多变的计算场景与架构设计。以我目前的对

jackfor001的专栏 1177

java 链接为分布式 hbase_分布式系统HBase模块及Java API

HBase是基于列存储的,每个列族都由几个文件保存,不同列族的文件是分离的HBase只有一个索引——行键,通过巧妙的设计,HBase中的所有访问方法,或者通过行键访问,或者通过行键扫描,从而使得整个系统不会慢下来HBase是一个稀疏、多维度、排序的映射表,这张表的索引是行键、列族、列限定符和时间戳,数据坐标HBase中需要根据行键、列族、列限定符和时间戳来确定一个单元格,因此,可以视为一个"四维坐...

weixin_42347415的博客 166

Hbase的安装部署实践

1.安装Hbase 首先安装zookeeper 将压缩包放到桌面,使用tar命令解压到/usr/local目录下,使用vim修改用户根目录的配置文件,将zookeeper的安装目录添加进去,使用source命令使修改生效,配置完存储目录和日志输出目录后,使用zkServer.sh start命令启动zookeeper,使用jps命令检查,出现QuorumPeerMain进程即为成功 第二步,安装Hbase,解压压缩包文件,将Hbase安装路径添加到系统环境变量,修改hbase-env.sh和hbase-si

YTLDSS的博客 3880
上一篇: 全流程配置Ubuntu终端实现Maven中央仓库包上传
下一篇: Java深拷贝和浅拷贝,Cloneable接口
Java_ttcd
博客等级 码龄4年 198粉丝 190原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值