DDL操作

表的增删改查

1、构建连接
2、从连接中取到一个表DDL操作工具admin
3、admin.createTable(表描述对象);
4、admin.disableTable(表名)
5、admin.deleteTable(表名);
6、admin.modifyTable(表名,表描述对象);

package demo;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.regionserver.BloomType;
import org.junit.Before;
import org.junit.Test;public class HbaseClientDDL {Connection conn = null;@Beforepublic void getConn() throws Exception{// 构建一个连接对象Configuration conf = HBaseConfiguration.create(); // 会自动加载hbase-site.xmlconf.set("hbase.zookeeper.quorum", "ip1:2181,ip2:2181,ip3:2181"); //设置管理Hbase的zookeeper对象conn = ConnectionFactory.createConnection(conf);}@Testpublic void testCreateTable() throws Exception{//添加表Admin admin = conn.getAdmin();// 构造DDL操作器HTableDescriptor hTableDescriptor = new HTableDescriptor(TableName.valueOf("table_info"));// 表描述对象HColumnDescriptor hColumnDescriptor_1 = new HColumnDescriptor("column_info");// 列族定义描述对象hColumnDescriptor_1.setMaxVersions(3); // 设置该列族中存储数据的最大版本数,默认是1hTableDescriptor.addFamily(hColumnDescriptor_1);// 将列族定义信息对象放入表定义对象中admin.createTable(hTableDescriptor);// 建表admin.close();conn.close();}@Testpublic void testDropTable() throws Exception{Admin admin = conn.getAdmin();admin.disableTable(TableName.valueOf("user_info"));// 停用表admin.deleteTable(TableName.valueOf("user_info"));// 删除表admin.close();conn.close();}@Testpublic void testAlterTable() throws Exception{//修改表Admin admin = conn.getAdmin();HTableDescriptor tableDescriptor = admin.getTableDescriptor(TableName.valueOf("table_info"));// 取出旧的表定义信息HColumnDescriptor hColumnDescriptor = new HColumnDescriptor("another_info");// 新构造一个列族定义hColumnDescriptor.setBloomFilterType(BloomType.ROWCOL); // 设置该列族的布隆过滤器类型tableDescriptor.addFamily(hColumnDescriptor);// 将列族定义添加到表定义对象admin.modifyTable(TableName.valueOf("table_info"), tableDescriptor);//admin提交admin.close();conn.close();}
}

DML操作

数据的增删改查

package demo;import java.util.ArrayList;
import java.util.Iterator;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellScanner;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;
import org.junit.Before;
import org.junit.Test;public class HbaseClientDML {Connection conn = null;@Beforepublic void getConn() throws Exception{Configuration conf = HBaseConfiguration.create(); // 会自动加载hbase-site.xmlconf.set("hbase.zookeeper.quorum", "ip1:2181,ip2:2181,ip3:2181");conn = ConnectionFactory.createConnection(conf);}@Testpublic void testPut() throws Exception{//插入数据Table table = conn.getTable(TableName.valueOf("table_info"));// 获取表格Put put = new Put(Bytes.toBytes("001"));// put对象既是rowkeyput.addColumn(Bytes.toBytes("base_info"), Bytes.toBytes("username"), Bytes.toBytes("xiaowang"));Put put2 = new Put(Bytes.toBytes("002"));put2.addColumn(Bytes.toBytes("base_info"), Bytes.toBytes("username"), Bytes.toBytes("xiaowei"));// 插如数据ArrayList<Put> puts = new ArrayList<>();puts.add(put);puts.add(put2);table.put(puts);table.close();conn.close();}@Testpublic void testDelete() throws Exception{//删除数据Table table = conn.getTable(TableName.valueOf("table_info"));Delete delete1 = new Delete(Bytes.toBytes("001"));// 构造一个对象封装要删除的数据信息Delete delete2 = new Delete(Bytes.toBytes("002"));delete2.addColumn(Bytes.toBytes("table_info"), Bytes.toBytes("username"));ArrayList<Delete> dels = new ArrayList<>();dels.add(delete1);dels.add(delete2);table.delete(dels);table.close();conn.close();}@Testpublic void testGet() throws Exception{Table table = conn.getTable(TableName.valueOf("table_info"));//获得表Get get = new Get("002".getBytes()); //创建列簇对象Result result = table.get(get);//获得列簇对应数据byte[] value = result.getValue("base_info".getBytes(), "age".getBytes());// 从列簇中取用户指定的某个key的valueSystem.out.println(new String(value));System.out.println("-------------------------");// 遍历整行结果中的所有kv单元格CellScanner cellScanner = result.cellScanner();while(cellScanner.advance()){Cell cell = cellScanner.current();byte[] rowArray = cell.getRowArray();  //本kv所属的行键的字节数组byte[] familyArray = cell.getFamilyArray();  //列族名的字节数组byte[] qualifierArray = cell.getQualifierArray();  //列名的字节数据byte[] valueArray = cell.getValueArray(); // value的字节数组System.out.println("行键: "+new String(rowArray,cell.getRowOffset(),cell.getRowLength()));System.out.println("列族名: "+new String(familyArray,cell.getFamilyOffset(),cell.getFamilyLength()));System.out.println("列名: "+new String(qualifierArray,cell.getQualifierOffset(),cell.getQualifierLength()));System.out.println("value: "+new String(valueArray,cell.getValueOffset(),cell.getValueLength()));}table.close();conn.close();}@Testpublic void testScan() throws Exception{Table table = conn.getTable(TableName.valueOf("table_info"));Scan scan = new Scan("10".getBytes(), "10000\001".getBytes());// 包含起始行键,不包含结束行键,但是如果真的想查询出末尾的那个行键,那么,可以在末尾行键上拼接一个不可见的字节(\000)ResultScanner scanner = table.getScanner(scan);Iterator<Result> iterator = scanner.iterator();while(iterator.hasNext()){Result result = iterator.next();CellScanner cellScanner = result.cellScanner();// 遍历整行结果中的所有kv单元格while(cellScanner.advance()){Cell cell = cellScanner.current();byte[] rowArray = cell.getRowArray();  //本kv所属的行键的字节数组byte[] familyArray = cell.getFamilyArray();  //列族名的字节数组byte[] qualifierArray = cell.getQualifierArray();  //列名的字节数据byte[] valueArray = cell.getValueArray(); // value的字节数组System.out.println("行键: "+new String(rowArray,cell.getRowOffset(),cell.getRowLength()));System.out.println("列族名: "+new String(familyArray,cell.getFamilyOffset(),cell.getFamilyLength()));System.out.println("列名: "+new String(qualifierArray,cell.getQualifierOffset(),cell.getQualifierLength()));System.out.println("value: "+new String(valueArray,cell.getValueOffset(),cell.getValueLength()));}System.out.println("----------------------");}}

参考:
布隆过滤器

Hadoop HIVE JavaAPI相关推荐

  1. Hadoop Hive sql 语法详细解释

    Hive 是基于Hadoop 构建的一套数据仓库分析系统.它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,能够将结构 化的数据文件映射为一张数据库表,并提供完整的SQL查 ...

  2. Hadoop Hive迁移至MaxCompute

    本文向您详细介绍如何将 Hadoop Hive 数据迁移到阿里云MaxCompute大数据计算服务上. 一.环境准备 1.1.Hadoop集群环境 在进行 Hadoop Hive 数据迁移前,您需要保 ...

  3. hadoop+hive+spark搭建(一)

    1.准备三台虚拟机 2.hadoop+hive+spark+java软件包 传送门:Hadoop官网 Hive官网 Spark官网      一.修改主机名,hosts文件 主机名修改 hostnam ...

  4. #Hive报错 WritableStringObjectInspector cannot be cast to org.apache.hadoop.hive.serde2.objectinspect

    #Hive报错 FAILED: ClassCastException org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableS ...

  5. hive遇到FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask错误...

    hive遇到FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask错误 起因 ...

  6. 报错:org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version.

    报错环境: CDH中集成的hive服务,启动报错,所以初始化一下元数据. 配置文件:/etc/hive/conf hive-site.xml 命令目录:/opt/cloudera/parcels/CD ...

  7. Hadoop Hive sql语法详解

    Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构 化的数据文件映射为一张数据库表,并提供完整的SQL查 ...

  8. Ubuntu 配置大数据平台hadoop hive数据仓库之完整踩坑

    导读:作为大数据界的萌新,这篇文章的写作过程,经历了各种阻挠,也踩了无数坑,俗话说面向CSDN.度娘编程,然后多看官方文档,在遇到各种神奇的坑的时候,搜着搜着就到了国外,刹那间一大堆英文向你飞来,就知 ...

  9. oracle+olh+hive,hadoop+hive+hbase的简单安装 | YallonKing

    hadoop+hive+hbase的简单安装 hadoop.hive.hbase下载地址:http://mirror.bit.edu.cn/apache/ (一)hadoop安装: 解压hadoop- ...

最新文章

  1. AMD and CMD are dead之js模块化黑魔法
  2. mysql去除字符串首的非字母_如何从SQLServer中的字符串中删除所有非字母字符?...
  3. SQLite中使用全文搜索FTS
  4. vscode 加参数运行_VSCode 调试 Webpack 指南
  5. 更改微信小程序的基础版本库;更改uni-app小程序基础库;更改用户的微信小程序基础库最低版本;设置用户的微信小程序版本库;
  6. CV《物体识别与检测3 - 多目标识别的优化技术》
  7. Centos下安装X Window+GNOME Desktop+FreeNX
  8. EFCore 迁移
  9. Socket,CAsyncSocket,CSocket介绍
  10. docker基础4--docker的命令
  11. HTML超连接(a标记)
  12. pscad4.5 matlab,pscad4.2|pscad(电力系统仿真软件)下载v4.2 免费版 附安装教程 - 欧普软件下载...
  13. 微信小程序项目2(哔哩哔哩)
  14. PostgreSQL数据库——Pigsty grafana Ansible
  15. 计算机指法标准,标准盲打指法练习
  16. magicyang语录
  17. IPMI用户名密码忘记了怎么处理?
  18. 2021大纲新增词汇
  19. Kubernetes K8S之资源控制器Job和CronJob详解
  20. NYOJ-20 吝啬的国度【深搜】

热门文章

  1. Python之网络爬虫(Xpath语法、Scrapy框架的认识)
  2. Python验证码的生成
  3. .net core 3.1 mysql_.net core3.1 MVC使用sqlsugar方式操作mysql数据库
  4. python开发人员看什么书_python初学者看什么书
  5. python续行_python 控制台单行刷新,多行刷新
  6. Python实现倒计时按钮
  7. web前端三大主流框架_web前端三大主流框架
  8. CCF-CSP 稀疏向量问题(2020-6)
  9. 1.(单选题) HTML是指,《计算机应用基础》第五阶段在线作业(自测).doc
  10. java编程思想怎么样_读完java编程思想后的思考?