【大数据学习 | HBASE高级】hbase的API操作
首先引入hbase的依赖
<dependencies><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-server</artifactId><version>2.4.13</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.30</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>
</dependencies>
将hbase-site.xml放入到resouces文件夹中
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
/** Licensed to the Apache Software Foundation (ASF) under one* or more contributor license agreements. See the NOTICE file* distributed with this work for additional information* regarding copyright ownership. The ASF licenses this file* to you under the Apache License, Version 2.0 (the* "License"); you may not use this file except in compliance* with the License. You may obtain a copy of the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/
-->
<configuration><!--The following properties are set for running HBase as a single process on adeveloper workstation. With this configuration, HBase is running in"stand-alone" mode and without a distributed file system. In this mode, andwithout further configuration, HBase and ZooKeeper data are stored on thelocal filesystem, in a path under the value configured for `hbase.tmp.dir`.This value is overridden from its default value of `/tmp` because manysystems clean `/tmp` on a regular basis. Instead, it points to a path withinthis HBase installation directory.Running against the `LocalFileSystem`, as opposed to a distributedfilesystem, runs the risk of data integrity issues and data loss. NormallyHBase will refuse to run in such an environment. Setting`hbase.unsafe.stream.capability.enforce` to `false` overrides this behavior,permitting operation. This configuration is for the developer workstationonly and __should not be used in production!__See also https://hbase.apache.org/book.html#standalone_dist-->
<property><name>hbase.rootdir</name><value>hdfs://ns1/hbase</value>
</property>
<!-- hbase在hdfs中的存储位置 -->
<property><name>hbase.cluster.distributed</name><value>true</value>
</property>
<!-- 开启hbase的全分布式 -->
<property><name>hbase.zookeeper.property.clientPort</name><value>2181</value>
</property>
<!-- zookeeper的端口号 -->
<property><name>hbase.zookeeper.quorum</name><value>nn1,nn2,s1</value>
</property>
<!-- zookeeper集群的主机名 -->
<property><name>hbase.tmp.dir</name><value>./tmp</value>
</property>
<!-- hbase的临时文件存储路径 -->
<property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value>
</property>
<!-- 开启配置防止hmaster启动问题 -->
<property><name>hbase.master.info.port</name><value>60010</value>
</property>
<!-- 监控页面端口 -->
</configuration>
整体代码如下:
package com.hainiu.hbase;import org.apache.hadoop.hbase.CompareOperator;
import org.apache.hadoop.hbase.NamespaceDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.filter.ColumnValueFilter;
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
import org.apache.hadoop.hbase.util.Bytes;import java.io.IOException;
import java.util.ArrayList;
import java.util.List;public class TestHbase {public static Connection connection;static{try {connection = ConnectionFactory.createConnection();//创建链接} catch (IOException e) {throw new RuntimeException(e);}}public static void TestCreateNameSpace() throws IOException {Admin admin = connection.getAdmin();//获取管理员对象NamespaceDescriptor desc = NamespaceDescriptor.create("test").build();//创建命名空间描述admin.createNamespace(desc);}public static void TestSearchNameSpace()throws Exception{Admin admin = connection.getAdmin();//获取管理员对象String[] spaces = admin.listNamespaces();for (String space : spaces) {System.out.println(space);}}public static void TestCreateTable()throws Exception{Admin admin = connection.getAdmin();TableDescriptorBuilder build = TableDescriptorBuilder.newBuilder(TableName.valueOf("test:student"));//创建表描述对象ColumnFamilyDescriptor info = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("info")).build();//创建列描述对象TableDescriptor desc = build.setColumnFamily(info).build();//将列和表融合admin.createTable(desc);}public static void TestListTable() throws Exception{Admin admin = connection.getAdmin();List<TableDescriptor> tableDescriptors = admin.listTableDescriptors();//创建表查询对象for (TableDescriptor tableDescriptor : tableDescriptors) {TableName name = tableDescriptor.getTableName();System.out.println(name);}}public static void TestDeleteTable()throws Exception{Admin admin = connection.getAdmin();admin.disableTable(TableName.valueOf("test:student"));admin.deleteTable(TableName.valueOf("test:student"));}public static void TestInsertData() throws Exception{Table table = connection.getTable(TableName.valueOf("test:student"));Put put = new Put(Bytes.toBytes("001"));//创建插入对象put.addColumn(Bytes.toBytes("info"),Bytes.toBytes("name"),Bytes.toBytes("zhangsan"));put.addColumn(Bytes.toBytes("info"),Bytes.toBytes("age"),Bytes.toBytes("20"));//增加列值table.put(put);}public static void TestInsertDataBatch() throws Exception{Table table = connection.getTable(TableName.valueOf("test:student"));List<Put> list = new ArrayList<Put>();for(int i=0;i<100;i++){Put put = new Put(Bytes.toBytes(i));put.addColumn(Bytes.toBytes("info"),Bytes.toBytes("name"),Bytes.toBytes("zhangsan"+i));put.addColumn(Bytes.toBytes("info"),Bytes.toBytes("age"),Bytes.toBytes(i));list.add(put);}table.put(list);}public static void TestGetData()throws Exception{Table table = connection.getTable(TableName.valueOf("test:student"));Get get = new Get(Bytes.toBytes(1));Result result = table.get(get);//获取一行内容数据byte[] name = result.getValue(Bytes.toBytes("info"), Bytes.toBytes("name"));byte[] age = result.getValue(Bytes.toBytes("info"), Bytes.toBytes("age"));//列和列族的数据必须是字节数组String name_str = Bytes.toString(name);int age_int = Bytes.toInt(age);//查询完毕的数据要转换为string或者int的原类型System.out.println(name_str+","+age_int);}public static void TestScan()throws Exception{Table table = connection.getTable(TableName.valueOf("test:student"));Scan scan = new Scan();ResultScanner res = table.getScanner(scan);//创建扫面对象for(Result r:res){byte[] name = r.getValue(Bytes.toBytes("info"), Bytes.toBytes("name"));byte[] age = r.getValue(Bytes.toBytes("info"), Bytes.toBytes("age"));String name_str = Bytes.toString(name);int age_int = Bytes.toInt(age);System.out.println(name_str+","+age_int);}}public static void TestScanLimit()throws Exception{Table table = connection.getTable(TableName.valueOf("test:student"));Scan scan = new Scan();scan.withStartRow(Bytes.toBytes(10));scan.withStopRow(Bytes.toBytes(30));//增加rowkey的扫描范围ResultScanner res = table.getScanner(scan);for(Result r:res){byte[] name = r.getValue(Bytes.toBytes("info"), Bytes.toBytes("name"));byte[] age = r.getValue(Bytes.toBytes("info"), Bytes.toBytes("age"));String name_str = Bytes.toString(name);int age_int = Bytes.toInt(age);System.out.println(name_str+","+age_int);}}public static void TestScanWithFilter()throws Exception{Table table = connection.getTable(TableName.valueOf("test:student"));Scan scan = new Scan();
// ColumnValueFilter filter = new ColumnValueFilter(Bytes.toBytes("info"), Bytes.toBytes("age"), CompareOperator.EQUAL, Bytes.toBytes(30));SingleColumnValueFilter filter = new SingleColumnValueFilter(Bytes.toBytes("info"), Bytes.toBytes("age"),
//增加过滤器,ColumnValueFilter只能显示出一列,SingleColumnValueFilter能够显示出来所有的列CompareOperator.EQUAL, Bytes.toBytes(20));scan.setFilter(filter);ResultScanner res = table.getScanner(scan);for(Result r:res){byte[] name = r.getValue(Bytes.toBytes("info"), Bytes.toBytes("name"));byte[] age = r.getValue(Bytes.toBytes("info"), Bytes.toBytes("age"));String name_str = Bytes.toString(name);int age_int = Bytes.toInt(age);System.out.println(name_str+","+age_int);}}public static void deleteData() throws Exception{Table table = connection.getTable(TableName.valueOf("test:student"));Delete delete = new Delete(Bytes.toBytes(20));table.delete(delete);}public static void main(String[] args) throws Exception{
// TestCreateNameSpace();
// TestSearchNameSpace();
// TestCreateTable();
// TestListTable();
// TestDeleteTable();
// TestInsertData();
// TestInsertDataBatch();
// TestGetData();
// TestScan();
// TestScanLimit();
// TestScanWithFilter();
// deleteData();connection.close();}
}
相关文章:
【大数据学习 | HBASE高级】hbase的API操作
首先引入hbase的依赖 <dependencies><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-server</artifactId><version>2.4.13</version></dependency><dependency><groupId>org.slf4j<…...
C++(Qt)软件调试---内存泄漏分析工具MTuner (25)
C(Qt)软件调试—内存泄漏分析工具MTuner (25) 文章目录 C(Qt)软件调试---内存泄漏分析工具MTuner (25)[toc]1、概述🐜2、下载MTuner🪲3、使用MTuner分析qt程序内存泄漏🦧4、相关地址ὁ…...
python核心语法
目录 核⼼语法第⼀节 变量0.变量名规则1.下⾯这些都是不合法的变量名2.关键字3.变量赋值4.变量的销毁 第⼆节 数据类型0.数值1.字符串2.布尔值(boolean, bool)3.空值 None 核⼼语法 第⼀节 变量 变量的定义变量就是可变的量,对于⼀些有可能会经常变化的数据&#…...
MATLAB用CNN-LSTM神经网络的语音情感分类深度学习研究
全文链接:https://tecdat.cn/?p38258 在语音处理领域,对语音情感的分类是一个重要的研究方向。本文将介绍如何通过结合二维卷积神经网络(2 - D CNN)和长短期记忆网络(LSTM)构建一个用于语音分类任务的网络…...
智能网页内容截图工具:AI助力内容提取与可视化
我们每天都会接触到大量的网页内容。然而,如何从这些内容中快速提取关键信息,并有效地进行整理和分享,一直是困扰我们的问题。本文将介绍一款我近期完成的基于AI技术的智能网页内容截图工具,它能够自动分析网页内容,截…...
Axure设计之文本编辑器制作教程
文本编辑器是一个功能强大的工具,允许用户在图形界面中创建和编辑文本的格式和布局,如字体样式、大小、颜色、对齐方式等,在Web端实际项目中,文本编辑器的使用非常频繁。以下是在Axure中模拟web端富文本编辑器,来制作文…...
【MyBatis源码】深入分析TypeHandler原理和源码
🎮 作者主页:点击 🎁 完整专栏和代码:点击 🏡 博客主页:点击 文章目录 原始 JDBC 存在的问题自定义 TypeHandler 实现TypeHandler详解BaseTypeHandler类TypeReference类型参考器43个类型处理器类型注册表&a…...
号卡分销系统,号卡系统,物联网卡系统源码安装教程
号卡分销系统,号卡系统,物联网卡系统,,实现的高性能(PHP协程、PHP微服务)、高灵活性、前后端分离(后台),PHP 持久化框架,助力管理系统敏捷开发,长期持续更新中。 主要特性 基于Auth验证的权限…...
常用命令之LinuxOracleHivePython
1. 用户改密 passwd app_adm chage -l app_adm passwd -x 90 app_adm -> 执行操作后,app_adm用户的密码时间改为90天有效期--查看该euser用户过期信息使用chage命令 --chage的参数包括 ---m 密码可更改的最小天数。为零时代表任何时候都可以更改密码。 ---M 密码…...
从dos上传shell脚本文件到Linux、麒麟执行报错“/bin/bash^M:解释器错误:没有那个文件或目录”
[rootkylin tmp]#./online_update_wars-1.3.0.sh ba51:./online_update_wars-1.3.0.sh:/bin/bash^M:解释器错误:没有那个文件或目录 使用scp命令上传文件到麒麟系统,执行shell脚本时报错 “/bin/bash^M:解释器错误:没有那个文件或目录” 解决方法: 执行…...
使用 Go 实现将任何网页转化为 PDF
在许多应用场景中,可能需要将网页内容转化为 PDF 格式,比如保存网页内容、生成报告、或者创建网站截图。使用 Go 编程语言,结合一些现有的库,可以非常方便地实现这一功能。本文将带你一步一步地介绍如何使用 Go 语言将任何网页转换…...
文件操作和IO
目录 一. 文件预备知识 1. 硬盘 2. 文件 (1) 概念 (2) 文件路径 (3) 文件类型 二. 文件操作 1. 文件系统操作 [1] File常见的构造方法 [2] File的常用方法 [3] 查看某目录下所有的目录和文件 2. 文件内容操作 (1) 打开文件 (2) 关闭文件 (3) 读文件 (4) 写文件 …...
【C++滑动窗口】1248. 统计「优美子数组」|1623
本文涉及的基础知识点 C算法:滑动窗口及双指针总结 LeetCode1248. 统计「优美子数组」 给你一个整数数组 nums 和一个整数 k。如果某个连续子数组中恰好有 k 个奇数数字,我们就认为这个子数组是「优美子数组」。 请返回这个数组中 「优美子数组」 的数…...
C语言导航 4.1语法基础
第四章 顺序结构程序设计 第一节 语法基础 语句概念 语句详解 程序详解 4.1.1语句概念 说明:构成高级语言源程序的基本单位。 特征:在C语言中语句以分号作为结束标志。 分类: (1)简单语句:空语句、…...
使用 Python 和 Py2Neo 构建 Neo4j 管理脚本
Neo4j 是一个强大的图数据库,适合处理复杂的关系型数据。借助 Python 的 py2neo 库,我们可以快速实现对 Neo4j 数据库的管理和操作。本文介绍一个功能丰富的 Python 脚本,帮助用户轻松管理 Neo4j 数据库,包含启动/停止服务、清空数…...
Centos 7 安装wget
Centos 7 安装wget 最小化安装Centos 7 的话需要上传wget rpm包之后再路径下安装一下。rpm包下载地址(http://mirrors.163.com/centos/7/os/x86_64/Packages/) 1、使用X-ftp 或者WinSCP等可以连接上传的软件都可以首先连接服务器,这里我用的…...
定时器的小应用
第一个项目 第一步,RCC开启时钟,这个基本上每个代码都是第一步,不用多想,在这里打开时钟后,定时器的基准时钟和整个外设的工作时钟就都会同时打开了 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);第二步&…...
linux企业中常用NFS、ftp服务
1.静态ip配置 修改ip地址为静态vim /etc/sysconfig/network-scripts/ifcfg-enxxx BOOTPROTO"static" IPADDR192.168.73.10 GATEWAY192.168.73.2 # 该配置与虚拟机网关一致 NETMASK255.255.255.0重启网卡:systemctl restart network.service ping不通域名…...
数据结构与算法分析模拟试题及答案5
模拟试题(五) 一、单项选择题(每小题 2 分,共20分) (1)队列的特点是( )。 A)先进后出 B)先进先出 C)任意位置进出 D࿰…...
.NET 9.0 中 System.Text.Json 的全面使用指南
以下是一些 System.Text.Json 在 .NET 9.0 中的使用方式,包括序列化、反序列化、配置选项等,并附上输出结果。 基本序列化和反序列化 using System; using System.Text.Json; public class Program {public class Person{public string Name { get; se…...
Python自动检测requests所获得html文档的编码
使用chardet库自动检测requests所获得html文档的编码 使用requests和BeautifulSoup库获取某个页面带来的乱码问题 使用requests配合BeautifulSoup库,可以轻松地从网页中提取数据。但是,当网页返回的编码格式与Python默认的编码格式不一致时,…...
11.12机器学习_特征工程
四 特征工程 1 特征工程概念 特征工程:就是对特征进行相关的处理 一般使用pandas来进行数据清洗和数据处理、使用sklearn来进行特征工程 特征工程是将任意数据(如文本或图像)转换为可用于机器学习的数字特征,比如:字典特征提取(特征离散化)、文本特征提取、图像特征提取。 …...
RAG经验论文《FACTS About Building Retrieval Augmented Generation-based Chatbots》笔记
《FACTS About Building Retrieval Augmented Generation-based Chatbots》是2024年7月英伟达的团队发表的基于RAG的聊天机器人构建的文章。 这篇论文在待读列表很长时间了,一直没有读,看题目以为FACTS是总结的一些事实经验,阅读过才发现FAC…...
【配置后的基本使用】CMake基础知识
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀各种软件安装与配置_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1.…...
ollama+springboot ai+vue+elementUI整合
1. 下载安装ollama (1) 官网下载地址:https://github.com/ollama/ollama 这里以window版本为主,下载链接为:https://ollama.com/download/OllamaSetup.exe。 安装完毕后,桌面小图标有一个小图标,表示已安装成功&…...
【项目开发】理解SSL延迟:为何HTTPS比HTTP慢?
未经许可,不得转载。 文章目录 前言HTTP与HTTPS的耗时差异TCP握手HTTPS的额外步骤:SSL握手使用curl测量SSL延迟性能与安全的权衡前言 在互联网发展的早期阶段,Netscape公司设计了SSL(Secure Sockets Layer)协议,为网络通信提供加密和安全性。有人曾提出一个大胆的设想:…...
2.STM32之通信接口《精讲》之USART通信
有关通信详解进我主页观看其他文章!【免费】SPIIICUARTRS232/485-详细版_UART、IIC、SPI资源-CSDN文库 通过以上可以看出。根据电频标准,可以分为TTL电平,RS232电平,RS485电平,这些本质上都属于串口通信。有区别的仅是…...
Bootstrap和jQuery开发案例
目录 1. Bootstrap和jQuery简介及优势2. Bootstrap布局与组件示例:创建一个响应式的表单界面 3. jQuery核心操作与事件处理示例:使用jQuery为表单添加交互 4. Python后端实现及案例代码案例 1:用户登录系统Flask后端代码前端代码 5. 设计模式…...
Qt 之 qwt和QCustomplot对比
QWT(Qt Widgets for Technical Applications)和 QCustomPlot 都是用于在 Qt 应用程序中绘制图形和图表的第三方库。它们各有优缺点,适用于不同的场景。 以下是 QWT 和 QCustomPlot 的对比分析: 1. 功能丰富度 QWT 功能丰富&a…...
【STM32】MPU6050简介
文章目录 MPU6050简介MPU6050关键块带有16位ADC和信号调理的三轴MEMS陀螺仪具有16位ADC和信号调理的三轴MEMS加速度计I2C串行通信接口 MPU6050对应的数据手册:MPU6050 陀螺仪加速度计 链接: https://pan.baidu.com/s/13nwEhGvsfxx0euR2hMHsyw?pwdv2i6 提取码: v2i6…...
郑州做网站推广价格/自助建站系统个人网站
在知乎看到一篇文章,https://zhuanlan.zhihu.com/p/357075502,里边提到model.eval模式不会影响各层的gradient计算行为,即gradient计算和存储与training模式一样,只是不进行反向传播(back probagation)。 这个地方的不…...
门户网站的注意要素/排名优化怎么做
第一章 基础知识 1.1 对称算法 对称算法使用一个密钥。给定一个明文和一个密钥,加密产生密文,其长度和明文大致相同。解密时,使用读密钥与加密密钥相同。 对称算法主要有四种加密模式: (1) 电子密码本模式 Electronic Code Bo…...
英文外贸网站/平台营销策略都有哪些
HTTP和FTP之间有哪些区别?本篇文章就给大家介绍HTTP和FTP是什么?让大家了解HTTP和FTP之间的区别,希望对你们有所帮助。 HTTP和FTP都是用于在客户端和服务器之间传输数据的文件传输协议,但它们之间还是存在差异的。在介绍HTTP和FTP…...
广州网站建设怎么样/免费的网站推广软件下载
什么是强化学习?强化学习(Reinforcement learning,简称RL)是和监督学习,非监督学习并列的第三种机器学习方法,如下图示:首先让我们举一个小时候的例子:你现在在家,有两个动作选择:打…...
17z一起做网站广州/网站是如何建立的
文章出处:www.net1980.com 案例描述 一台华为NE系列的路由器与其他厂商的路由器互连,并运行OSPF协议。配置完毕后,一切正常,并在相当长的时间内运转稳定。但两个月后,用户反馈网络中断。采用以下方式对问题定位…...
做暧暖爱视频每一刻网站/东莞网络推广策略
import os.path import os.path as op os.path.abspath(path) #返回path在当前系统中的绝对路径 os.path.normpath(path) #归一化path的表示形式,统一用\\分隔路径 os.path.relpath(path) #返回当前程序与文件之间的相对路径 os.path.dirname(path) #返回path中的目…...