当前位置: 首页 > 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();}}
http://www.lryc.cn/news/239818.html

相关文章:

  • EasyExcel listener无法通过Autowired注入xxMapper
  • Android Spannable 使用​注意事项
  • Apache访问控制
  • 二、类与对象(二)
  • Pytorch从零开始实战10
  • 设计模式-单例模式实战
  • requests库出现AttributeError问题的修复与替代方法
  • opencv-2D直方图
  • 读像火箭科学家一样思考笔记06_初学者之心
  • 中职组网络安全 Server-Hun-1.img Server-Hun-2.img
  • 基于区域划分的GaN HEMT 准物理大信号模型
  • laravel引入element-ui后,blade模板中使用elementui时,事件未生效问题(下载element-ui到本地直接引入项目)
  • 【计算机网络笔记】路由算法之层次路由
  • 【华为OD机试python】分糖果【2023 B卷|100分】
  • ARM 汇编基础
  • 虹科Pico汽车示波器 | 汽车免拆检修 | 2017款东风本田XR-V车转向助力左右不一致
  • 阿里云服务器ECS经济型e实例优惠99元性能怎么样?
  • vue3引入vuex基础
  • C++二维数组中的查找
  • 【计算思维】蓝桥杯STEMA 科技素养考试真题及解析 2
  • Qt+sqlite3使用事务提升插入效率
  • 【深度学习】不用Conda在PP飞桨Al Studio三个步骤安装永久PyTorch环境
  • SpringBoot:kaptcha生成验证码
  • C/C++ 使用API实现数据压缩与解压缩
  • Visual Studio连接unity编辑器_unity基础开发教程
  • 2023亚太杯数学建模B题思路分析 - 玻璃温室中的微气候法规
  • 轻量封装WebGPU渲染系统示例<37>- 多个局部点光源应用于非金属材质形成的效果(源码)
  • 设备状态监测与故障诊断系统的作用
  • 浮点数运算精度丢失,如何解决
  • 使用微信小程序openMapApp接口,报错问题解决openMapApp:fail invaild coord