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

docker 部署hbase 并且java Api连接

  1. 首先先运行容器

docker run -d --name hbase -p 2181:2181 -p 16010:16010 -p16000:16000 -p 16020:16020 -p 16030:16030 harisekhon/hbase

2.在本机的hosts中注册docker的id
因为docker内部集成了其他环境而其他环境 中的ip是docker id 所以需要在hosts中转换

192.168.80.120	dockerhbase sa445is094a

3.客户端连接依赖


<dependencies><!--        hbaseClient依赖包,需要排除日志log4j,不然和springboot的冲突了--><!-- https://mvnrepository.com/artifact/org.apache.hbase/hbase-client --><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-client</artifactId><version>2.5.4</version><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion></exclusions></dependency><!-- https://mvnrepository.com/artifact/org.apache.hbase/hbase --><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase</artifactId><version>2.5.4</version><type>pom</type></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency></dependencies>

俩个依赖出现log4j的依赖申明错误,所以这里需要排除,并且新建一个properties后缀的配置文件

log4j.rootLogger=debug, stdout, Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%nlog4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.loglog4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=5log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

4.java api 调用

public class Practice4 {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://192.168.249.132:8020/");configuration.set("hbase.zookeeper.quorum", "192.168.249.132");configuration.set("hbase.zookeeper.property.clientPort", "2181");try{connection = ConnectionFactory.createConnection(configuration);admin = connection.getAdmin();}catch (IOException e){e.printStackTrace();}}public static void close(){try{if(admin != null){admin.close();}if(null != connection){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("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 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 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(colFamily.getBytes(),col.getBytes());Result result = table.get(get);System.out.println(new String(result.getValue(colFamily.getBytes(),col==null?null:col.getBytes())));table.close();}}

相关文章:

  • Nginx安装与配置、使用Nginx负载均衡及动静分离、后台服务部署、环境准备、系统拓扑图
  • spark的算子
  • Web3与Web3.0: Web3指的是去中心化和基于区块链的网络,Web3.0指的是链接或语义网络。
  • 讲述 什么是鸿蒙 为什么需要鸿蒙 为什么要学习鸿蒙
  • 网络攻击的常见手段
  • DataFunSummit:2023年现代数据栈技术峰会-核心PPT资料下载
  • Unity开发之C#基础-File文件读取
  • 合肥中科深谷嵌入式项目实战——基于ARM语音识别的智能家居系统(三)
  • 机器视觉技术在现代汽车制造中的应用
  • 基本锁介绍
  • Multi-Modal Multi-Stream UNET Model for Liver Segmentation
  • HTML5 的离线储存怎么使用,工作原理
  • Vue网页中使用PDF.js弹窗显示pdf文档所有内容
  • Spark---转换算子、行动算子、持久化算子
  • 【C语言】函数(四):函数递归与迭代,二者有什么区别
  • C# 免费离线人脸识别 2.0 Demo
  • docker python 配置
  • extract-text-webpack-plugin用法
  • GraphQL学习过程应该是这样的
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • python3 使用 asyncio 代替线程
  • 回顾2016
  • 将回调地狱按在地上摩擦的Promise
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 以太坊客户端Geth命令参数详解
  • 应用生命周期终极 DevOps 工具包
  • 怎么将电脑中的声音录制成WAV格式
  • FaaS 的简单实践
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • ###C语言程序设计-----C语言学习(3)#
  • #14vue3生成表单并跳转到外部地址的方式
  • #Z2294. 打印树的直径
  • (03)光刻——半导体电路的绘制
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (MATLAB)第五章-矩阵运算
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (zhuan) 一些RL的文献(及笔记)
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (力扣)循环队列的实现与详解(C语言)
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (转)h264中avc和flv数据的解析
  • (转)关于多人操作数据的处理策略
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • (转)用.Net的File控件上传文件的解决方案
  • ./和../以及/和~之间的区别
  • .describe() python_Python-Win32com-Excel