返回顶部
首页 > 资讯 > 数据库 >Jave Hbase API
  • 196
分享到

Jave Hbase API

JaveHbaseAPI 2019-05-27 19:05:50 196人浏览 才女
摘要

HBase api 类和数据模型的对应关系       HBaseAdmin   类:org.apache.hadoop.hbase.client.HBaseAdmin 作用:提供了一个接口来管理 HBase 数据库的表信息。它提供的

Jave Hbase API

HBase api 类和数据模型的对应关系

 

 

 

HBaseAdmin

 

类:org.apache.hadoop.hbase.client.HBaseAdmin

作用:提供了一个接口来管理 HBase 数据库的表信息。它提供的方法包括:创建表,删 除表,列出表项,使表有效或无效,以及添加或删除表列族成员等。

 

 

 

 

HBaseConfiguration

 

类:org.apache.hadoop.hbase.HBaseConfiguration

作用:对 HBase 进行配置

 

 

 

HTableDescriptor

 

类: org.apache.hadoop.hbase.HTableDescriptor

作用:包含了表的名字极其对应表的列族

 

 

 

 

 

HColumnDescriptor

 

 

类: org.apache.hadoop.hbase.HColumnDescriptor

作用:维护着关于列族的信息,例如版本号,压缩设置等。它通常在创建表或者为表添 加列族的时候使用。列族被创建后不能直接修改,只能通过删除然后重新创建的方式。 列族被删除的时候,列族里面的数据也会同时被删除。

 

 

 

 

 

 

HTable

 

 

 

 

 

 

 

 

Put

 

类: org.apache.hadoop.hbase.client.Put

作用:用来对单个行执行添加操作

 

 

 

 

 

 

Get

 

 

类: org.apache.hadoop.hbase.client.Get

作用:用来获取单个行的相关信息

 

 

 

 

Result

类: org.apache.hadoop.hbase.client.Result

作用:存储 Get 或者 Scan 操作后获取表的单行值。使用此类提供的方法可以直接获取值 或者各种 Map 结构( key-value 对)

 

 

创建表

 

 1 package com.shujia;
 2 
 3 import org.apache.hadoop.conf.Configuration;
 4 import org.apache.hadoop.hbase.HBaseConfiguration;
 5 import org.apache.hadoop.hbase.HColumnDescriptor;
 6 import org.apache.hadoop.hbase.HTableDescriptor;
 7 import org.apache.hadoop.hbase.TableName;
 8 import org.apache.hadoop.hbase.client.Admin;
 9 import org.apache.hadoop.hbase.client.Connection;
10 import org.apache.hadoop.hbase.client.ConnectionFactory;
11 
12 import java.io.IOException;
13 
14 public class Demo01 {
15     public static void main(String[] args) throws IOException {
16 
17         //创建配置,指定zk集群
18         Configuration conf = HBaseConfiguration.create();
19         conf.set("hbase.ZooKeeper.quorum","master,node1,node2");
20 
21         //创建连接
22         Connection coon = ConnectionFactory.createConnection(conf);
23 
24         //创建admin对象
25         Admin admin = coon.getAdmin();
26 
27         //创建表
28         HTableDescriptor test_api = new HTableDescriptor(TableName.valueOf("test_api"));
29 
30         //创建列簇
31         HColumnDescriptor cf1 = new HColumnDescriptor("cf1");
32 
33         //配置列簇
34         cf1.setTimeToLive(20); //设置死亡时间20s
35         cf1.setMaxVersions(3); //设置版本
36 
37         //增加列簇
38         test_api.addFamily(cf1);
39 
40         //创建表
41         admin.createTable(test_api);
42 
43         //关闭连接
44         coon.close();
45     }
46 }

 

 

  1 package com.shujia;
  2 
  3 import org.apache.hadoop.conf.Configuration;
  4 import org.apache.hadoop.hbase.HBaseConfiguration;
  5 import org.apache.hadoop.hbase.HColumnDescriptor;
  6 import org.apache.hadoop.hbase.HTableDescriptor;
  7 import org.apache.hadoop.hbase.TableName;
  8 import org.apache.hadoop.hbase.client.*;
  9 import org.apache.hadoop.hbase.util.Addressing;
 10 import org.apache.hadoop.hbase.util.Bytes;
 11 import org.junit.After;
 12 import org.junit.Before;
 13 import org.junit.Test;
 14 
 15 import javax.swing.tree.VariableHeightLayoutCache;
 16 import java.io.BufferedReader;
 17 import java.io.FileReader;
 18 import java.io.IOException;
 19 import java.util.ArrayList;
 20 
 21 public class Demo03API {
 22     Connection conn;
 23     TableName table=TableName.valueOf("test_api");
 24 
 25     @Before
 26     public void init() throws IOException {
 27         Configuration conf = HBaseConfiguration.create();
 28         conf.set("hbase.zookeeper.quorum","master,node1,node2");
 29 
 30         conn = ConnectionFactory.createConnection(conf);
 31     }
 32     //put
 33     @Test
 34     public void Put() throws IOException {
 35         Table test_api = conn.getTable(TableName.valueOf("test_api"));
 36         Put put = new Put("001".getBytes());
 37         put.addColumn("cf1".getBytes(),"name".getBytes(),"张三".getBytes());
 38         test_api.put(put);
 39     }
 40 
 41     // putAll 读取students.txt 并将数据写入HBase
 42     @Test
 43     public void PutAll() throws IOException {
 44         // 创建students表 info
 45         Admin admin = conn.getAdmin();
 46         TableName studentsT = TableName.valueOf("students");
 47         // 判断表是否存在
 48         if (!admin.tableExists(studentsT)) {
 49             HTableDescriptor students = new HTableDescriptor(studentsT);
 50             HColumnDescriptor info = new HColumnDescriptor("info");
 51             students.addFamily(info);
 52             admin.createTable(students);
 53         }
 54 
 55         Table stu = conn.getTable(studentsT);
 56 
 57 
 58         BufferedReader br = new BufferedReader(new FileReader("data/students.txt"));
 59         String line = null;
 60         ArrayList puts = new ArrayList();
 61         int batchSize = 11;
 62         while ((line = br.readLine()) != null) {
 63 
 64             // 读取每一行数据
 65             String[] split = line.split(",");
 66             String id = split[0];
 67             String name = split[1];
 68             String age = split[2];
 69             String gender = split[3];
 70             String clazz = split[4];
 71             Put put = new Put(id.getBytes());
 72             put.addColumn("info".getBytes(), "name".getBytes(), name.getBytes());
 73             put.addColumn("info".getBytes(), "age".getBytes(), age.getBytes());
 74             put.addColumn("info".getBytes(), "gender".getBytes(), gender.getBytes());
 75             put.addColumn("info".getBytes(), "clazz".getBytes(), clazz.getBytes());
 76             puts.add(put); // 将每条数据构建好的put对象加入puts列表
 77             if (puts.size() == batchSize) {
 78                 stu.put(puts); // 批量写入
 79                 puts = new ArrayList();
 80             }
 81         }
 82         if (puts.size() != 0) {
 83             stu.put(puts); // 批量写入
 84         }
 85 
 86     }
 87     //get
 88     @Test
 89     public void Get() throws IOException {
 90         Table test_api = conn.getTable(table);
 91         Get get = new Get("001".getBytes());
 92         Result rs = test_api.get(get);
 93         byte[] value = rs.getValue("cf1".getBytes(), "name".getBytes());
 94         System.out.println( Bytes.toString(value));
 95     }
 96 
 97 
 98     @Test//alter table 修改表
 99     public void alterTable() throws IOException {
100         Admin admin = conn.getAdmin();
101         //获取表原有的结果
102         HTableDescriptor tableDescriptor = admin.getTableDescriptor(table);
103         //获取所有列簇构成的数组
104         HColumnDescriptor[] columnFamilies = tableDescriptor.getColumnFamilies();
105         //遍历列簇
106         for (HColumnDescriptor columnFamily : columnFamilies) {
107             //获取列簇名称
108             String cfName = columnFamily.getNameAsString();
109             //对列簇名为cf1的进行修改
110             if("cf1".equals(cfName)){
111                 //修改TTL
112                 columnFamily.setTimeToLive(100000);
113             }
114         }
115         //修改表结构
116         admin.modifyTable(table,tableDescriptor);
117 
118 
119     }
120 
121     @After
122     public void closed() throws IOException {
123         conn.close();
124     }
125 }

 

您可能感兴趣的文档:

--结束END--

本文标题: Jave Hbase API

本文链接: https://lsjlt.com/news/8851.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Jave Hbase API
    Hbase API 类和数据模型的对应关系       HBaseAdmin   类:org.apache.hadoop.hbase.client.HBaseAdmin 作用:提供了一个接口来管理 HBase 数据库的表信息。它提供的...
    99+
    2019-05-27
    Jave Hbase API
  • Jave Hbase AP
    Hbase API 类和数据模型的对应关系       HBaseAdmin   类:org.apache.hadoop.hbase.client.HBaseAdmin 作用:提供了一个接口来管理 HBase 数据库的表信息。它提供的...
    99+
    2019-11-18
    Jave Hbase AP
  • HBase Client API 简析
    昨天在飞机上的2个小时看了一遍HBase的Client API,有几点心得:1.在Put小记录时最好关闭autoFlush,并合理设置WriterBuffer:因为每次Put都要进行一次RPC调用+WAL(...
    99+
    2024-04-02
  • java操作hbase api
    需要引入的jar包(这里的jar包括hbase,hive的UDF,hive的jdbc连接)java源码package com.hbase.jdbc; import java.util....
    99+
    2024-04-02
  • HBase API 操作范例
    package com.test.hbase.api;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.*...
    99+
    2024-04-02
  • HBase JAVA API使用(2.1.0-cdh6.2.0)
    集群版本:CDH6.2.0集群Hadoop版本:Hadoop 3.0.0-cdh6.2.0集群HBase版本:2.1.0-cdh6.2.0 操作系统:macOS 10.15.5 IntelliJ IDEA 版本:IntelliJ ...
    99+
    2015-09-01
    HBase JAVA API使用(2.1.0-cdh6.2.0)
  • hbase 2.0.2 java api怎么用
    这篇文章将为大家详细讲解有关hbase 2.0.2 java api怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。package com.hbase.test;import ja...
    99+
    2023-06-02
  • hbase访问方式之java api
    Hbase的访问方式Native Java API:最常规和高效的访问方式;HBase Shell:HBase的命令行工具,最简单的接口,适合HBase管理使用;Thrift Gateway:利用Thrift序列化技术,支持C++,PHP,...
    99+
    2023-05-31
    hbase java api
  • Javascript与Jave的区别有哪些
    本篇内容主要讲解“Javascript与Jave的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Javascript与Jave的区别有哪些”吧! ...
    99+
    2024-04-02
  • Jave中怎么对枚举进行操作
    这篇文章给大家介绍Jave中怎么对枚举进行操作,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。枚举其实就是一种类型,跟int, char 这种差不多,就是定义变量时限制输入的,你只能够赋enum里面规定的值。定义枚举 方...
    99+
    2023-06-17
  • IDEA远程连接HBase及其Java API实战详解
    开放端口 安全组没开放端口是原罪!!!导致好多BUG费时费力。Hbase悄悄咪咪的用了好多端口,比如被我抓到的42239,直接搜索报错药不对症。 Hbase安装 下载压缩包...
    99+
    2024-04-02
  • HBase内置过滤器java api的知识点总结
    这篇文章主要介绍“HBase内置过滤器java api的知识点总结”,在日常操作中,相信很多人在HBase内置过滤器java api的知识点总结问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HBase内置过滤...
    99+
    2023-06-19
  • 解决Java API不能远程访问HBase的问题
    目录Java API不能远程访问HBase配置Linux的hostname配置Linux的hosts配置访问windows的hosts最后附上Java代码示例Java AP...
    99+
    2024-04-02
  • HBase 监控 | HBase Metrics 初探(一)
    前言:对于任意一个系统而言,做好监控都是非常重要的,HBase也不例外。经常,我们会从JMX中获取相关指标来做展示、对HBase进行监控,那这些指标是怎么生成的呢?如果你想自定义自己的监控指标又该怎么做呢?基于好奇之心和学习的目...
    99+
    2022-02-03
    HBase 监控 | HBase Metrics 初探(一)
  • Hbase 中 hbase-site.xml 参数含义
    hbase.client.scanner.caching定义在扫描器中调用next方法时取回的行数。数值越大,在扫描时客户端需要对RegionServer发出的远程调用次数越少。数值越大,客户端消耗内存越大...
    99+
    2024-04-02
  • Hbase Shell
    Hbase Shell   1.创建表 语法:create , {NAME => , VERSIONS => } 创建一个‘table’表,info是它的列簇         2.查看表list           3.查看表详情de...
    99+
    2019-09-17
    Hbase Shell
  • Hadoop HBase
    一、概述: 1、定义:HBase是Google Bigtable的开源山寨版本。是建立的HDFS之上,提供高可靠性、高性能、列存储、可伸缩、实时、随机读写的数据库系统。   &...
    99+
    2024-04-02
  • hbase 0.90.4 + zookeeper 3.3.3 hbase 启动失败
    报错:Couldnt start ZK at requested address of 2181, instead got: 2182. Aborting. Why Because clients (eg ...
    99+
    2024-04-02
  • HBase 之HFileOutputFormat
       hadoop mr 输出需要导入hbase的话最好先输出成HFile格式, 再导入到HBase,因为HFile是HBase的内部存储格式, 所以导入效率很高,下面是一个示例 1. ...
    99+
    2024-04-02
  • HBase 转 json
      import com.alibaba.fastjson.JSON      Configuration conf ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作