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

建设企业管理类网站ui设计外包

建设企业管理类网站,ui设计外包,电子商务网站域名注册方法,短链接转换网站对HBase中常用的API操作进行简单的介绍 对应HBase学习笔记&#xff08;1&#xff09;—— 知识点总结-CSDN博客中介绍的HBase Shell常用操作 更多用法请参考官网&#xff1a;Apache HBase ™ Reference Guide 依赖导入 <dependencies><dependency><groupId>o…

对HBase中常用的API操作进行简单的介绍

对应HBase学习笔记(1)—— 知识点总结-CSDN博客中介绍的HBase Shell常用操作

更多用法请参考官网:Apache HBase ™ Reference Guide

依赖导入

    <dependencies><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-server</artifactId><version>2.4.11</version><exclusions><exclusion><groupId>org.glassfish</groupId><artifactId>javax.el</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.glassfish</groupId><artifactId>javax.el</artifactId><version>3.0.1-b06</version></dependency></dependencies>

打包所用的插件:

 <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.2.4</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals></execution></executions></plugin></plugins></build>

建立连接

package com.why;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import java.io.IOException;public class HBaseConnect2 {public static Connection connection = null;static {try {connection = ConnectionFactory.createConnection(); //使用配置文件中的参数hbase.zookeeper.quorumSystem.out.println(connection);} catch (IOException e) {System.out.println("连接创建失败");throw new RuntimeException(e);}}/*** 关闭连接* @throws IOException*/public static void closeConnection() throws IOException {if (connection != null){connection.close();}}}

DDL操作

package com.why;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.NamespaceDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;
import java.io.IOException;public class HBaseDDL {//获取连接private static Connection connection = HBaseConnect2.connection;/*** 创建命名空间* @param namespace 命名空间名称* @throws IOException*/public static void createNamespace(String namespace) throws IOException {//获取admin(admin的连接是轻量级的,不是线程安全的,不推荐池化或缓存)Admin admin = connection.getAdmin();//创建命名空间builderNamespaceDescriptor.Builder builder = NamespaceDescriptor.create(namespace);//        builder.addConfiguration("user","why");try{admin.createNamespace(builder.build());}catch (IOException e){System.out.println("命名空间已经存在");e.printStackTrace();}admin.close();}/*** 查看所有命名空间* @throws IOException*/public static void listNamespaces() throws IOException {Admin admin = connection.getAdmin();try {String[] strings = admin.listNamespaces();System.out.println("命名空间如下:");for(String string : strings){System.out.println(string);}}catch (IOException e){e.printStackTrace();}admin.close();}/*** 判断表格是否存在* @param namespace 命名空间* @param table 表格名称* @return* @throws IOException*/public static boolean isTableExist(String namespace,String table) throws IOException {Admin admin = connection.getAdmin();boolean isExist = false;try {//通过tableExists方法判断表格是否存在isExist = admin.tableExists(TableName.valueOf(namespace,table));}catch (IOException e){e.printStackTrace();}admin.close();return isExist;}/*** 创建表格* @param namespace 命名空间* @param table 表格名称* @param columnFamilies 列族名称* @throws IOException*/public static void createTable(String namespace , String table , String... columnFamilies) throws IOException {//判断是否至少有一个列族if(columnFamilies.length == 0){System.out.println("至少要有一个列族");return;}//判断表格是否已经存在if(isTableExist(namespace,table)){System.out.println("表格已经存在");return;}Admin admin = connection.getAdmin();//创建表格描述的构建器TableDescriptorBuilder tableDescriptorBuilder = TableDescriptorBuilder.newBuilder(TableName.valueOf(namespace, table));//添加参数for(String columnFamily : columnFamilies){//创建列族描述的构建器ColumnFamilyDescriptorBuilder columnFamilyDescriptorBuilder = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes(columnFamily));columnFamilyDescriptorBuilder.setMaxVersions(5); //添加最大版本数tableDescriptorBuilder.setColumnFamily(columnFamilyDescriptorBuilder.build()); //创建添加完参数的列族描述}try {admin.createTable(tableDescriptorBuilder.build());}catch (IOException e){e.printStackTrace();}admin.close();}/*** 查看所有表格* @throws IOException*/public static void listTableNames() throws IOException {Admin admin = connection.getAdmin();try {TableName[] tableNames = admin.listTableNames();System.out.println("所有表格如下");for(TableName tableName : tableNames){System.out.println(tableName.getNamespaceAsString() + ":" + tableName.getNameAsString());}}catch (IOException e){e.printStackTrace();}admin.close();}/*** 修改表格中某一个列族的版本号* @param namespace* @param table* @param columnFamily 列族* @param version 版本号*/public static void modifyTable(String namespace , String table , String columnFamily , int version) throws IOException {if(!isTableExist(namespace,table)){System.out.println("表格不存在,无法修改");return;}Admin admin = connection.getAdmin();try {//获取表格描述TableDescriptor descriptor = admin.getDescriptor(TableName.valueOf(namespace, table));//创建新的表格描述构建器TableDescriptorBuilder tableDescriptorBuilder = TableDescriptorBuilder.newBuilder(descriptor);//获取列族描述ColumnFamilyDescriptor columnFamily1 = descriptor.getColumnFamily(Bytes.toBytes(columnFamily));//创建新的列族描述构建器ColumnFamilyDescriptorBuilder columnFamilyDescriptorBuilder = ColumnFamilyDescriptorBuilder.newBuilder(columnFamily1);//设置参数columnFamilyDescriptorBuilder.setMaxVersions(version);//将新的列族描述添加到表格描述中tableDescriptorBuilder.modifyColumnFamily(columnFamilyDescriptorBuilder.build());admin.modifyTable(tableDescriptorBuilder.build());}catch (IOException e){e.printStackTrace();}admin.close();}/**** @param namespace* @param table* @return true表示删除成功*/public static boolean deleteTable(String namespace , String table) throws IOException {if(!isTableExist(namespace,table)){System.out.println("表格不存在,无法删除");return false;}Admin admin = connection.getAdmin();try {TableName tableName = TableName.valueOf(namespace, table);admin.disableTable(tableName);admin.deleteTable(tableName);}catch (IOException e){e.printStackTrace();}admin.close();return true;}}

DML操作

package com.why;import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.CompareOperator;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.filter.ColumnValueFilter;
import org.apache.hadoop.hbase.filter.FilterList;
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
import org.apache.hadoop.hbase.util.Bytes;
import java.io.IOException;public class HBaseDML {private static Connection connection = HBaseConnect2.connection;/*** 插入数据** @param namespace* @param table* @param rowKey* @param columnFamily* @param column* @param value* @throws IOException*/public static void insert(String namespace, String table, String rowKey, String columnFamily, String column, String value) throws IOException {//首先获取表格tableTable table1 = connection.getTable(TableName.valueOf(namespace, table));System.out.println("表格创建成功");//创建put对象Put put = new Put(Bytes.toBytes(rowKey));System.out.println("put对象创建成功");//向put对象中添加数据put.addColumn(Bytes.toBytes(columnFamily), Bytes.toBytes(column), Bytes.toBytes(value));try {table1.put(put);System.out.println("数据插入成功");} catch (IOException e) {e.printStackTrace();}table1.close();}/*** 读取数据** @param namespace* @param table* @param rowKey* @param columnFamily* @param column* @throws IOException*/public static void get(String namespace, String table, String rowKey, String columnFamily, String column) throws IOException {//获取tableTable table1 = connection.getTable(TableName.valueOf(namespace, table));//获取get对象Get get = new Get(Bytes.toBytes(rowKey));//设置读取某一列的数据(如果不设置的话则读取所有数据)get.addColumn(Bytes.toBytes(columnFamily), Bytes.toBytes(column));try {//调用get方法读取数据Result result = table1.get(get);//获取到所有的cellCell[] cells = result.rawCells();//打印valuefor (Cell cell : cells) {String value = new String(CellUtil.cloneValue(cell));System.out.println(value);}} catch (IOException e) {e.printStackTrace();}table1.close();}/*** 扫描表** @param namespace* @param table* @param startRow* @param stopRow* @throws IOException*/public static void scan(String namespace, String table, String startRow, String stopRow) throws IOException {//获取tableTable table1 = connection.getTable(TableName.valueOf(namespace, table));//创建scan对象Scan scan = new Scan();//添加扫描的起止rowKeyscan.withStartRow(Bytes.toBytes(startRow));scan.withStopRow(Bytes.toBytes(stopRow));try {ResultScanner scanner = table1.getScanner(scan);for (Result result : scanner) {Cell[] cells = result.rawCells();for (Cell cell : cells) {System.out.print(newString(CellUtil.cloneRow(cell)) + "-" + newString(CellUtil.cloneFamily(cell)) + "-" + newString(CellUtil.cloneQualifier(cell)) + "-" + newString(CellUtil.cloneValue(cell)) + "\t");}System.out.println();;}} catch (IOException e) {e.printStackTrace();}table1.close();}/*** 扫描表(有过滤器)** @param namespace* @param table* @param startRow* @param stopRow* @param columnFamily* @param column* @param value*/public static void scanWithFilter(String namespace, String table, String startRow, String stopRow, String columnFamily, String column, String value) throws IOException {//获取tableTable table1 = connection.getTable(TableName.valueOf(namespace, table));//创建scan对象Scan scan = new Scan();//添加扫描的起止rowKeyscan.withStartRow(Bytes.toBytes(startRow));scan.withStopRow(Bytes.toBytes(stopRow));//创建过滤器列表FilterList filterList = new FilterList();//创建列过滤器,作用:只保留当前列的数据ColumnValueFilter columnValueFilter = new ColumnValueFilter(Bytes.toBytes(columnFamily),Bytes.toBytes(column),CompareOperator.EQUAL,Bytes.toBytes(value));//        // (2) 结果保留整行数据
//        // 结果同时会保留没有当前列的数据
//        SingleColumnValueFilter singleColumnValueFilter = new
//                SingleColumnValueFilter(
//                // 列族名称
//                Bytes.toBytes(columnFamily),
//                // 列名
//                Bytes.toBytes(column),
//                // 比较关系
//                CompareOperator.EQUAL,
//                // 值
//                Bytes.toBytes(value)
//        );filterList.addFilter(columnValueFilter);scan.setFilter(filterList);try {ResultScanner scanner = table1.getScanner(scan);for (Result result : scanner) {Cell[] cells = result.rawCells();for (Cell cell : cells) {System.out.print(newString(CellUtil.cloneRow(cell)) + "-" + newString(CellUtil.cloneFamily(cell)) + "-" + newString(CellUtil.cloneQualifier(cell)) + "-" + newString(CellUtil.cloneValue(cell)) + "\t");}System.out.println();;}} catch (IOException e) {e.printStackTrace();}table1.close();}/*** 删除数据* @param nameSpace* @param table* @param rowKey* @param columnFamily* @param column* @throws IOException*/public static void delete(String nameSpace, String table, String rowKey, String columnFamily, String column) throws IOException {//获取 tableTable table1 = connection.getTable(TableName.valueOf(nameSpace, table));//创建 Delete 对象Delete delete = new Delete(Bytes.toBytes(rowKey));//添加删除信息//删除单个版本(默认最新)delete.addColumn(Bytes.toBytes(columnFamily),Bytes.toBytes(column));//        //删除所有版本
//        delete.addColumns(Bytes.toBytes(columnFamily),Bytes.toBytes(column));//删除列族delete.addFamily(Bytes.toBytes(columnFamily));try {table1.delete(delete);}catch (IOException e){e.printStackTrace();}table1.close();}
}

说明:本学习笔记根据基于尚硅谷课程进行整理,课程链接:hbase

未完待续~

http://www.yayakq.cn/news/469884/

相关文章:

  • 响应式网站模板的优势东莞人才网求职
  • 郑州做个人网站的公司手机网站一年费用吗
  • html5 网站自适应wordpress 判断手机
  • 广东专业企业网站建设怎样搭建自己的网站
  • 酒店网站建设 源码wordpress对接COS后网站变慢
  • 岳阳网站制作上传自己做的网站
  • 网站ip指向列表珠海建站服务
  • 如何做一间公司的网站做门户网站建设多少钱
  • 怎样更新网站文章seo联盟平台
  • 北京网站优化前景手机网站分辨率做多大
  • 成都大型网站设计公司房地产在线开盘
  • 哈尔滨网站搭建苏州h5网站建设
  • 律师事务所网站方案网页网站制作培训班
  • 做解密类网站可行网站网页建设一般多少钱
  • 中国铁路建设集团公司网站网站设计活动主题
  • 如何做产品网站的推广wordpress 匿名评论
  • 东直门小学的网站建设小制作小发明视频
  • 萧云建设网站王野摩托车官方网站
  • 上海欣扬集团 网站建设郴州网站建设公司哪家好
  • shopify建站公司营销网络和网络营销的区别
  • 郑州网站制作公司怎么样承德网站制作加盟
  • 上杭网站建设泰安工作招聘
  • 做网站的 深圳小程序模板素材
  • 怎么弄百度网站dz网站如何做301
  • 凡科做网站类型应该做哪个南宁论坛建站模板
  • 如何做快递api接口网站北京网址建设
  • 小型网站有哪些网站建设的工资
  • 修改wordpress域名昆明网站优化排名推广
  • 万网网站多少网站主色怎么选择
  • 备案网站名称重复太原网站建设方案优化