当前位置: 首页 > news >正文

Win10 IDEA远程连接HBase

Win10 IDEA远程连接HBase

Win10 IDEA连接虚拟机中的Hadoop(HDFS)

关闭Hadoop和Hbase

如果已经关闭不需要走这一步

cd /usr/local/hbase
bin/stop-hbase.sh
cd /usr/local/hadoop
./sbin/stop-dfs.sh

获取虚拟机的ip

虚拟机终端输入

ip a

关闭虚拟机防火墙

sudo ufw disable

修改Hadoop的core-site.xml文件

将IP修改成自己的IP

# 位置可能不一样,和Hadoop安装位置有关
cd /usr/local/hadoop/etc/hadoop
vim core-site.xml
<configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><description>Abase for other temporary directories.</description></property><property><name>fs.defaultFS</name><value>hdfs://192.168.111.135:9000</value></property><property><name>hadoop.proxyuser.hadoop.hosts</name><value>*</value></property><property><name>hadoop.proxyuser.hadoop.groups</name><value>*</value></property>
</configuration>

在这里插入图片描述

修改Hbase的hbase-site.xml

将IP修改成自己的IP

# 位置可能不一样,和Hbase安装位置有关
cd /usr/local/hbase
vim /usr/local/hbase/conf/hbase-site.xml
<configuration><property><name>hbase.rootdir</name><value>hdfs://192.168.111.135:9000/hbase</value></property><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property><property><name>hbase.wal.provider</name><value>filesystem</value></property><property><name>hbase.zookeeper.quorum</name><value>192.168.111.135:2181</value></property><property><name>hbase.master.ipc.address</name><value>0.0.0.0</value></property><property><name>hbase.regionserver.ipc.address</name><value>0.0.0.0</value></property>
</configuration>

在这里插入图片描述

打开Hadoop和Hbase

cd /usr/local/hadoop
./sbin/start-dfs.sh
cd /usr/local/hbase
bin/start-hbase.sh
jps

在这里插入图片描述

IDEA 连接

创建Maven项目

IDEA自带Maven,如果需要自己安装Maven可以参考安装Maven
创建项目,选择Maven,模板选择第一个maven-archetype-archetype

添加依赖(pom.xml)

记得修改自己hbase的版本,我的是2.5.4
设置好后Reload一下

  <dependencies><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-client</artifactId><version>2.5.4</version></dependency></dependencies>

创建Java文件并运行

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import java.io.IOException;public class Test01 {public static Configuration configuration;public static Connection connection;public static Admin admin;public static void init(){System.setProperty("HADOOP_USER_NAME","hadoop");configuration  = HBaseConfiguration.create();// IP 需要修改configuration.set("hbase.zookeeper.quorum", "192.168.111.135");configuration.set("hbase.zookeeper.property.clientPort", "2181");// IP 需要修改configuration.set("hbase.rootdir","hdfs://192.168.111.135:9000/hbase");try{connection = ConnectionFactory.createConnection(configuration);admin = connection.getAdmin();}catch (IOException e){e.printStackTrace();}}/** 打印所有表名称* */public static  void  tableListPrint() throws IOException {TableName[] tableNames = admin.listTableNames();for(TableName tableName : tableNames){System.out.println(tableName.getNameAsString());}}public static void close(){try{if(admin != null){admin.close();}if(null != connection){connection.close();}}catch (IOException e){e.printStackTrace();}}public static void main(String[] args) throws IOException {init();tableListPrint();close();}
}

在这里插入图片描述

其他

HBase Shell命令

# 进入shell
bin/hbase shell
# 列出HBase中所有的表
list 
# 创建一个新表,表名为StudentInfo,包含两个列族Personal和Grades。
create 'StudentInfo', 'Personal', 'Grades' 
# 向StudentInfo表中插入一条记录,RowKey为2023001,Personal:Name列的值为张三,Grades:Math列的值为90。
put 'StudentInfo','2023001', 'Personal:Name','张三'
put 'StudentInfo','2023001', 'Grades:Math', 90
# 查询RowKey为2023001的所有信息。
get 'StudentInfo','2023001'
# 修改2023001的Grades:Math列的值为95。
put 'StudentInfo', '2023001', 'Grades:Math', '95'
# 删除2023001的Personal:Name列。
delete 'StudentInfo', '2023001', 'Personal:Name'
# 扫描StudentInfo表,查看所有记录。
scan 'StudentInfo'

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 Work01 {public static Configuration configuration;public static Connection connection;public static Admin admin;public static void main(String[] args) throws IOException {init();// 删除表 第一次运行请注释
//        deleteTable("EmployeeRecords");tableListPrint();createTable("EmployeeRecords",new String[]{"Info","Salary"});tableListPrint();insertData("EmployeeRecords","606","Info","Name","CY");insertData("EmployeeRecords","606","Info","Department","现代信息产业学院");insertData("EmployeeRecords","606","Info","Monthly","50000");getData("EmployeeRecords","606");updateData("EmployeeRecords","606","60000");getData("EmployeeRecords","606");deleteData("EmployeeRecords","606");close();}public static void init(){System.setProperty("HADOOP_USER_NAME","hadoop");configuration  = HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "192.168.111.135");configuration.set("hbase.zookeeper.property.clientPort", "2181");configuration.set("hbase.rootdir","hdfs://localhost:9000/hbase");// 避免乱码问题configuration.set("hbase.client.encoding.fallback", "UTF-8");try{connection = ConnectionFactory.createConnection(configuration);admin = connection.getAdmin();}catch (IOException e){e.printStackTrace();}}/** 打印所有表名称* */public static  void  tableListPrint() throws IOException {TableName[] tableNames = admin.listTableNames();System.out.print("所有表:");for(TableName tableName : tableNames){System.out.print(tableName.getNameAsString() + "\t");}System.out.println();}public static void createTable(String myTableName,String[] colFamily) throws IOException {TableName tableName = TableName.valueOf(myTableName);if(admin.tableExists(tableName)){System.out.println("talbe 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 deleteTable(String myTableName) throws IOException {TableName tableName = TableName.valueOf(myTableName);admin.disableTable(tableName);admin.deleteTable(tableName);}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(colFamily.getBytes(),col.getBytes(), val.getBytes());table.put(put);table.close();}public static void updateData(String tableName,String rowKey,String val) throws IOException {Table table = connection.getTable(TableName.valueOf(tableName));Put put = new Put(rowKey.getBytes());put.addColumn("Info".getBytes(),"Monthly".getBytes(), val.getBytes());table.put(put);table.close();}public static void getData(String tableName,String rowKey)throws  IOException{Table table = connection.getTable(TableName.valueOf(tableName));Get get = new Get(rowKey.getBytes());Result result = table.get(get);Cell[] cells = result.rawCells();System.out.print("行键:"+rowKey);for (Cell cell : cells) {//获取列名String colName = Bytes.toString(cell.getQualifierArray(),cell.getQualifierOffset(),cell.getQualifierLength());String value = Bytes.toString(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength());System.out.print("\t"+colName+":"+value);}System.out.println();table.close();}public static void deleteData(String tableName,String rowKey)throws  IOException{Table table = connection.getTable(TableName.valueOf(tableName));Delete delete = new Delete(rowKey.getBytes());table.delete(delete);System.out.println("删除成功");}public static void close(){try{if(admin != null){admin.close();}if(null != connection){connection.close();}}catch (IOException e){e.printStackTrace();}}
}

相关文章:

Win10 IDEA远程连接HBase

Win10 IDEA远程连接HBase Win10 IDEA连接虚拟机中的Hadoop&#xff08;HDFS&#xff09; 关闭Hadoop和Hbase 如果已经关闭不需要走这一步 cd /usr/local/hbase bin/stop-hbase.sh cd /usr/local/hadoop ./sbin/stop-dfs.sh获取虚拟机的ip 虚拟机终端输入 ip a关闭虚拟机…...

1.centos 镜像

centos 它有官网的下载地址&#xff1a;https://vault.centos.org/ 选择想要的版本&#xff0c;我选择 centos7.8 进入到镜像目录 isos 选择 x86_64 选择想要的版本&#xff0c;我选择 CentOS-7-x86_64-DVD-2003.iso 安装就正常安装就行。我选择虚拟机安装。这个参考&…...

electron 操作 cookie

前言&#xff1a;在 Electron 中操作 Cookie 可以使用electron模块提供的session对象来实现。 一、获取 Cookie 通过defaultSession获取默认会话对象&#xff0c;然后调用cookies.get方法并传入要获取 Cookie 的 URL 地址&#xff0c;以获取该 URL 对应的 Cookie。 const el…...

黑马软件测试第一篇_Linux

Linux 操作系统 说明: 所有硬件设备组装完成后的第⼀一层软件, 能够使⽤用户使⽤用硬件设备的软件 即为操作系统 常见分类 桌⾯面操作系统: Windows/macOS/Linux移动端操作系统: Android(安卓)/iOS(苹果)服务器器操作系统: Linux/Windows Server嵌⼊入式操作系统: Android(底…...

npm run dev 启动前端项目的原理

在一个使用 Vite 构建工具的 Vue 项目中&#xff0c;当你运行 npm run dev 时&#xff0c;实际执行的命令是 vite。为了理解这一过程&#xff0c;我们需要了解几个关键点&#xff1a; package.json 文件中的 scripts 字段: "scripts": {"dev": "vite&…...

【2024年SCI一区新算法:黑翅鸢优化算法 】分布式电网故障定位

1 场景介绍 使用10节点网络 2 故障设置 分为单重故障和两重故障 %% 2 故障设置 %% 1&#xff09;单重故障 I[1,-1,0,0,-1,-1,0,0,-1,-1]; % 区段1故障 节点状态实际编码&#xff08;是否流过故障电流&#xff09; % I[1,1,0,0,-1,-1,0,0,-1,-1]; % 区段2故障 % I[…...

PyTorch 中 12 种张量操作详解

创作不易&#xff0c;还请各位同学三连点赞&#xff01;&#xff01;收藏&#xff01;&#xff01;转发&#xff01;&#xff01;&#xff01; 对于刚入门学习Python还找不到方向的小伙伴可以试试我的这份学习方法和籽料&#xff0c;免费自取&#xff01;&#xff01; PyTorc…...

雷池WAF自动化实现安全运营实操案例终极篇

免责声明 本教程仅为合法的教学目的而准备&#xff0c;严禁用于任何形式的违法犯罪活动及其他商业行为&#xff0c;在使用本教程前&#xff0c;您应确保该行为符合当地的法律法规&#xff0c;继续阅读即表示您需自行承担所有操作的后果&#xff0c;如有异议&#xff0c;请立即停…...

微信小程序实现canvas电子签名

一、先看效果 小程序canvas电子签名 二、文档 微信小程序canvas 组件文档 微信小程序canvas API文档 H5Canvas文档 三、分析 1、初始话Canvas容器 2、Canvas触摸事件&#xff0c;bindtouchstart&#xff08;手指触摸动作开始&#xff09;、bindtouchmove&#xff08;手指触摸…...

【SpringCloud】Seata微服务事务

Seata微服务事务 分布式事务问题&#xff1a;本地事务分布式事务演示分布式事务问题&#xff1a;示例1 分布式事务理论CAP定理一致性可用性分区容错矛盾 Base理论解决分布式事务的思路 初识SeataSeata的架构部署TC服务微服务集成Seata引入依赖配置TC地址 其他服务 动手实践XA模…...

重新阅读《马说》,感悟“伯乐相马”背后的被选择与选择的大智慧

“初闻不识曲中意&#xff0c;再听已是曲终人”。世有伯乐&#xff0c;然后有千里马。千里马常有&#xff0c;而伯乐不常有。无论你是考研考公等考试大军中的一员&#xff0c;还是已步入社会的打工人或者领导&#xff0c;当你面临被人选择或者选择人时&#xff0c;皆可从《马说…...

深入拆解TomcatJetty(三)

深入拆解Tomcat&Jetty&#xff08;三&#xff09; 专栏地址&#xff1a;https://time.geekbang.org/column/intro/100027701 1 Tomcat组件生命周期 Tomcat如何如何实现一键式启停 Tomcat 架构图和请求处理流程如图所示&#xff1a; 对组件之间的关系进行分析&#xff0c;…...

MySQL 实现简单的性能优化

一&#xff1a;硬件优化 更高的网络带宽&#xff1a;在处理大规模的远程请求时可以提高MySQL服务器的响应速度&#xff1b; 更大的内存空间&#xff1a;有助于缓存更多的数据库数据&#xff0c;减少磁盘I/O操作&#xff0c;提高整体性能&#xff1b; 换用企业级SSD&#xff1…...

AB包资源管理器

简介 ABMgr&#xff08;Asset Bundle Manager&#xff09;类是一个用于管理 Unity 中 AssetBundle 资源加载的管理器。它通过字典缓存和管理加载的 AB 包&#xff0c;同时支持同步和异步加载。还包含了卸载和清理 AB 包的方法。 功能解析&#xff1a; 主包加载与依赖管理&…...

Centos7源报错问题

原因&#xff1a;是因为centos7在024年6月份停止维护&#xff0c;导致默认镜像不能使用&#xff0c;更改镜像即可mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/…...

Openlayers高级交互(2/20):清除所有图层的有效方法

Openlayers项目中&#xff0c;经常会放置很多的图层&#xff0c;在业务操作的时候&#xff0c;会做出删除所有图层的行为。这里面给出了一个详细的方法&#xff0c;能够有效的解决 清除所有图层的问题。 效果图 专栏名称内容介绍Openlayers基础实战 &#xff08;72篇&#xff…...

黑马JavaWeb-day02

什么是JavaScript&#xff1f; JavaScript&#xff1a;简称Js,是一门跨平台、面向对象的脚本语言。是用来控制网页行为的&#xff0c;它能使网页可交互 JavaScript和Java是完全不同的语言&#xff0c;无论是概念还是设计。但是基础语法类似。 JavaScript JavaScript引入方式…...

laravel清除不同缓存

1、清除应用程序缓存&#xff1a; php artisan cache:clear2、清除路由缓存&#xff1a; php artisan route:cache3、清除配置缓存&#xff1a; php artisan config:cache4、清除编译后的视图文件&#xff1a; php artisan view:clear5、清除事件和监听器缓存&#xff1a; ph…...

【Git】解决分支冲突、分支合并、版本回退、版本管理

解决本地冲突 1. 合并分支 假设你正在 main 分支上&#xff0c;想要合并 feature 分支。 git checkout main git merge feature如果两个分支都对同一文件做了不同的修改&#xff0c;Git 会提示你有冲突&#xff0c;并显示冲突文件。 2. 查看冲突文件 使用以下命令查看冲突…...

linux file结构体与inode结构体

在 Linux 系统中&#xff0c;inode 结构体和 file 结构体都是与文件系统相关的重要数据结构。它们各自承担着不同的角色&#xff0c;帮助操作系统管理文件和目录。以下是它们的异同点&#xff1a; inode 结构体 1.定义&#xff1a;inode&#xff08;索引节点&#xff09;是文件…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献&#xff1a; stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下&#xff0c;文章也主…...