3、练习常用的HBase Shell命令+HBase 常用的Java API 及应用实例

news2024/9/29 16:43:01

目录

  • (一)练习常用的HBase Shell命令
    • 1、启动HBase
    • 2、练习shell命令
      • create scan list describe alter
      • put
      • get
      • delete
      • drop
    • 关于NoSQL数据库中的列族和列
    • 3、关闭hbase服务
  • (二)HBase 常用的Java API 及应用实例
    • 1、启动hbase服务
    • 2、启动eclipse
    • 3、新建java project
      • 导入jar包
      • 创建类文件
      • 常用Java API:
      • 打开hbase shell
      • 退出hbase shell ——exit
    • 4、关闭 hbase

(一)练习常用的HBase Shell命令

1、启动HBase

先启动HDFS 再启动HBase
在这里插入图片描述
进入shell交互式执行环境
在这里插入图片描述

2、练习shell命令

在这里插入图片描述

create scan list describe alter

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

put

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

get

在这里插入图片描述

delete

在这里插入图片描述

在这里插入图片描述

drop

删除表前要disable它
在这里插入图片描述

关于NoSQL数据库中的列族和列

这些数据库允许你以非常灵活的方式存储和检索数据
在这里插入图片描述

在这里插入图片描述

3、关闭hbase服务

在这里插入图片描述

(二)HBase 常用的Java API 及应用实例

1、启动hbase服务

在这里插入图片描述

2、启动eclipse

在这里插入图片描述

3、新建java project

导入jar包

在这里插入图片描述
导入/usr/local/hbase/lib中的所有jar包
再导入/usr/local/hbase/lib/client-facing-thirdparty中的所有jar 包
在这里插入图片描述

创建类文件

在这里插入图片描述

常用Java API:

在这里插入图片描述

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;
import java.io.IOException;

public class ExampleForHBase {
    public static Configuration configuration;
    public static Connection connection;
    public static Admin admin;

    public static void main(String[] args) throws IOException {
        init();
        createTable("student", new String[]{"score"});
        insertData("student", "zhangsan", "score", "English", "69");
        insertData("student", "zhangsan", "score", "Math", "86");
        insertData("student", "zhangsan", "score", "Computer", "77");
        getData("student", "zhangsan", "score", "English");
        close();
    }

    public static void init() {
        configuration = HBaseConfiguration.create();
        configuration.set("hbase.rootdir", "hdfs://localhost:9000/hbase");
        try {
            connection = ConnectionFactory.createConnection(configuration);
            admin = connection.getAdmin();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void close() {
        try {
            if (admin != null) {
                admin.close();
            }
            if (connection != null) {
                connection.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void createTable(String myTableName, String[] colFamily) throws IOException {
        TableName tableName = TableName.valueOf(myTableName);
        if (admin.tableExists(tableName)) {
            System.out.println("table is exists!");
        } else {
            TableDescriptorBuilder tableDescriptor = TableDescriptorBuilder.newBuilder(tableName);
            for (String str : colFamily) {
                ColumnFamilyDescriptor family = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes(str)).build();
                tableDescriptor.setColumnFamily(family);
            }
            admin.createTable(tableDescriptor.build());
        }
    }

    public static void insertData(String tableName, String rowKey, String colFamily, String col, String val) throws IOException {
        Table table = connection.getTable(TableName.valueOf(tableName));
        Put put = new Put(rowKey.getBytes());
        put.addColumn(Bytes.toBytes(colFamily), Bytes.toBytes(col), Bytes.toBytes(val));
        table.put(put);
        table.close();
    }

    public static void getData(String tableName, String rowKey, String colFamily, String col) throws IOException {
        Table table = connection.getTable(TableName.valueOf(tableName));
        Get get = new Get(rowKey.getBytes());
        get.addColumn(Bytes.toBytes(colFamily), Bytes.toBytes(col));
        Result result = table.get(get);
        System.out.println(new String(result.getValue(Bytes.toBytes(colFamily), Bytes.toBytes(col))));
        table.close();
    }
}

run——>run as application

打开hbase shell

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

退出hbase shell ——exit

4、关闭 hbase

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

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

相关文章

C++版本更新历史

前言 C语言发展至今已经迭代了很多版本,而在不同环境中编写代码时经常看到C标准的设定,比如 Leetcode 中可以看到版本信息: 这说明Leetcode已经支持最新C23标准了,但某些环境并不一定支持这些语法,如果不清楚使用的语法…

提示词工程 (Prompt Engineering) 最佳实践

prompt Engineering 概念解析 提示工程是一门较新的学科,关注提示词开发和优化,帮助用户将大语言模型(Large Language Model, LLM)用于各场景和研究领域。研究人员可利用提示工程来提升大语言模型处理复杂任务场景的能力&#xf…

Jetson nano (4GB版本)跑yolov8n(TensorRT 加速)网络

大家好,我是王硕,项目原因需要在Jetson nano平台上跑yolov8s ,需要使用TensorRt加速,看了网上的教程,写的太差了,资料零零散散的,故详细介绍一下步骤。 如果想使用jetson Nano平台部署yolov8&a…

Selenium与数据库结合:数据爬取与存储的技术实践

目录 一、Selenium与数据库结合的基础概念 1.1 Selenium简介 1.2 数据库简介 1.3 Selenium与数据库结合的优势 二、Selenium爬取数据的基本步骤 2.1 环境准备 2.2 编写爬虫代码 2.3 数据提取 2.4 异常处理 三、数据存储到数据库 3.1 数据库连接 3.2 数据存储 3.3 …

windows10录屏工具,四款新手必备软件!

今天要和大家聊的是-——win10的录屏工具。在Win10电脑上,那些让我们爱不释手的录屏神器有很多,不管是哪个行业的人,录屏软件简直是日常工作的得力助手,比如说对于程序员来说,不管是分享代码教程、记录bug复现&#xf…

RKLLM部署

RKLLM 写在前面:建议去阅读官方提供的RKLLM doc,本文基于官方的RKLLM doc制作而成(没有将flask相关内容添加进来),仅仅添加了完整流程的执行过程截图和在做这以流程过程中遇到的问题 RKLLM可以帮助用户快速将人工智能…

【vite】搭建完整项目流程、项目配置

文章目录 完整项目源码项目技术栈:项目地址: 一、创建项目二、安装scss三、安装路由router四、项目配置 参考文章:vite搭建完整项目 完整项目源码 觉得创建太麻烦就直接从github克隆吧,https://github.com/fruge365/vite-common…

金智维KRPA之Excel自动化

Excel自动化操作概述 Excel自动化主要用于帮助各种类型的企业用户实现Excel数据处理自动化,Excel自动化是可以从单元格、列、行或范围中读取数据,向其他电子表格或工作簿写入数据等活动。 通过相关命令,还可以对数据进行排序、进行格式…

开发者如何自主绑定和解除小程序和公众号长期/短期运营者微信号?

开发者如何自主绑定和解除小程序和公众号长期/短期运营者微信号? 1、什么是长期/短期运营者微信号? 为了让更多人管理公众号更方便与安全,每个公众号可由管理员添加绑定5个长期运营者微信号、20个短期运营者微信号,运营者微信号…

【sw2024】solidworks2024双击setup.exe无反应管理员运行也没反应解决方法

第一步 官网下载xxclean,打开xxclean最新版本,登录。官网xxclean.com或者自己浏览器搜。 第二步 点击扩展功能,点击 运行sw2024安装程序无反应 右边的开始 第三步 进度百分之百之后去双击setup就有界面了。

Tusi.Art:AI模型,comfyui工作流,一键同款!

前言 Tusi.Art:AI模型分享与在线运行平台的革命性体验 在当今迅速发展的AI绘图领域,模型的分享与应用变得尤为重要。Tusi.Art 就是这样一个平台,为用户提供了分享和在线运行 AI 模型的便捷服务。不仅如此,平台还具备强大的功能&…

现代易货交易:重塑价值交换的新趋势与未来展望“

在当今社会,随着经济的快速发展,一种新兴的交易方式——现代易货交易,正逐渐受到市场的青睐。这种模式不仅对传统的物品交换方式进行了现代化的改进,而且体现了对物品价值的重新评估和交换方法的创新。那么,什么是现代…

2. 将GitHub上的开源项目导入(clone)到(Linux)服务器上——深度学习·科研实践·从0到1

目录 1. 在github上搜项目 (以OpenOcc为例) 2. 转移到码云Gitee上 3. 进入Linux服务器终端 (jupyter lab) 4. 常用Linux命令 5. 进入对应文件夹中导入项目(代码) 注意:系统盘和数据盘 1. 在github上搜项目 (以OpenOcc为例) 把链接复制下…

无锡卓瓷X哲讯智能科技,SAP项目正式启动!

在数字化浪潮的推动下,高精密陶瓷行业的领军企业—无锡卓瓷科技有限公司,携手哲讯智能科技有限公司近期启动SAP&BI项目,以打造行业领先的数字化管理平台。这一战略举措标志着无锡卓瓷在数字化转型的道路上迈出了坚实的一步。 无锡卓瓷—…

LORA DASH -一种更高效的微调方式

LORA DASH -一种更高效的微调方式 概述 大型语言模型(LLMs)通过在大规模数据集上的预训练,能够捕捉和学习丰富的语言特征和模式。目前,尽管预训练模型在诸多任务上取得了显著的成果,但它们在特定任务上的表现仍有提升…

STM32 时钟树(基于 STM32F407)

目录 一、概述二、时钟树框图1、时钟源2、锁相环3、系统时钟4、时钟信号输出 MCO 三、时钟配置1、修改主频1.1 配置 HSE_VALUE1.2 调用 SystemInit 函数 2、STM32F4 时钟使能和配置 一、概述 STM32 内部也是由多种多样的电路模块组合在一起实现的。当一个电路越复杂&#xff0…

如何解决Google AdSense 无效流量?一文教你提高AdSense点击率

Google AdSense 点击率低得可怜?广告收入少得可怜?想知道怎么才能让 AdSense 收入飙升吗?如果你正遭受无效流量的困扰,或者你正愁着怎么提高点击率,那么这篇文章就是你的救星!快和我一起往下看吧~ 一、什么…

「接口自动化测试」高频面试题!

一、json和字典的区别? json就是一个文本、字符串;有固定的格式,格式长的像python字典和列表的组合;以key-value的键值对形式来保存数据,结构清晰,。可以说是目前互联网项目开发中最常用的一种数据交互格式…

[数据集][目标检测]猪数据集VOC-2856张

数据集格式:Pascal VOC格式(不包含分割的txt文件,仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数):2856 标注数量(xml文件个数):2856 标注类别数:1 标注类别名称:["pig"] 每个类别标注的框数&#xff1a…

【YOLO目标检测输电线路异物数据集】共4516张、已标注txt格式、有训练好的yolov5的模型

目录 说明图片示例 说明 数据集格式:YOLO格式 图片数量:4516 标注数量(txt文件个数):4516 标注类别数:4 标注类别名称:nest、kite、balloon、trash 数据集下载:输电线路异物数据集 图片示例 数据集…