首页 > 其他分享 >大三每日总结

大三每日总结

时间:2023-09-11 22:44:27浏览次数:34  
标签:总结 String admin 每日 namespace connection IOException static 大三

今日完成,修改hbasebug,不过出现新的bug,但不影响hbase的正常使用.

顺利实现idea连接hbase数据库,同时顺利实现hbase数据库中数据的增删改查,以下是相关代码

package org.example;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.client.AsyncConnection;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;

import java.io.IOException;
import java.util.concurrent.CompletableFuture;

public class HbaseConection {
    //声明静态属性
    public static Connection connection = null;
    static {
        try {
            connection = ConnectionFactory.createConnection();
        } catch (IOException e) {
            System.out.println("连接获取失败");
            throw new RuntimeException(e);
        }
    }
    public static void closeConnection() throws IOException {
        if(connection != null)
        connection.close();
    }
    public static void main(String[] args) throws IOException {
        System.out.println(HbaseConection.connection);
        HbaseConection.closeConnection();
    }
}
package org.example;

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 {
    // 添加静态属性 connection 指向单例连接
    public static Connection connection = HbaseConection.connection;
    //创建表格
    public static void createNamespace(String namespace) throws IOException {
        Admin admin = connection.getAdmin();
        NamespaceDescriptor.Builder builder = NamespaceDescriptor.create(namespace);
        builder.addConfiguration("user","atguigu");
        try {
            admin.createNamespace(builder.build());
        } catch (IOException e) {
            System.out.println("命令空间已经存在");
            e.printStackTrace();
        }
        admin.close();
    }
    //判断命名空间是否存在namespace命名空间,tablename表格名
    public static  boolean isTableExists(String namespace,String tablename) throws IOException {
       //获取admin
        Admin admin = connection.getAdmin();
        boolean b = false;
        try {
            b = admin.tableExists(TableName.valueOf(namespace, tablename));
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        admin.close();
        return b;
    }
    public static void createTable(String namespace,String tableName,String... columnFamilies) throws IOException {
        //判断列族
        if(columnFamilies.length == 0)
        {
            System.out.println("要求至少有一个列族");
            return;
        }
        //判断表格是否存在
        if(isTableExists(namespace,tableName))
        {
            System.out.println("表格已经存在");
            return;
        }
        //创建表格 columnFamilies列族名称,可有多个
        Admin admin = connection.getAdmin();
        //创建表格描述
        TableDescriptorBuilder tableDescriptorBuilder = TableDescriptorBuilder.newBuilder(TableName.valueOf(namespace, tableName));
        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) {
            System.out.println("表格已经存在");
            throw new RuntimeException(e);
        }
        admin.close();

    }
    public static void modifyTable(String namespace,String tableName,String columnFamily,int version) throws IOException {
        if(!isTableExists(namespace,tableName))
        {
            return;
        }
        Admin admin = connection.getAdmin();

        try {
            TableDescriptor descriptor = admin.getDescriptor(TableName.valueOf(namespace, tableName));
            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) {
            throw new RuntimeException(e);
        }
        admin.close();
    }
    public static  boolean deleteTable(String namespace,String tablename) throws IOException {
        if(isTableExists(namespace,tablename))
        {
            System.out.println("表格不存在,无法删除");
            return false;
        }
        Admin admin = connection.getAdmin();

        try {
           TableName tableName1 = TableName.valueOf(namespace, tablename);
            admin.disableTable(tableName1);
            admin.deleteTable(tableName1);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

        admin.close();
        return true;
    }

    private static TableName getTableName(String namespace, String tablename) {
        return TableName.valueOf(namespace, tablename);
    }

    public static void main(String[] args) throws IOException {
        //测试命名空间
        //createNamespace("atguigu");
        //判断表格是否存在
        //System.out.println(isTableExists("bigdata", "student"));
        //创建表格
        createTable("atguigu","student","info1");
        //修改表格
        modifyTable("atguigu","student","info",6);
        System.out.println("其他代码");
        HbaseConection.closeConnection();
    }
}

 

标签:总结,String,admin,每日,namespace,connection,IOException,static,大三
From: https://www.cnblogs.com/ewqewq/p/17694766.html

相关文章

  • 每日总结|9.11-好运自然来
    今天我做了3件事1、小组汇报,研究学习并整理了工作汇报的ppt2、整理了一下翻译和阅读.3、hbase的学习,我还什么都不太会,老师太急了,必须抓紧学个一二三。ps:人机交互,学会用excel,以前原来都是最基础的,有个工作者模式,VB和VBA的区别什么的。杨老师的课上的蛮有意思的!呀呼~---------......
  • 9月11日总结
    今天早上进行工程实训的线上自习,观看了书法鉴赏的超星尔雅学习通上的网课,学习到了大书法家的书法方式和其中包含的感情,在不同时期写出的东西都是为了表达不同的感情。在下午听了建民老师为我们带来的第一节java语言课程,观看了好几位同学为我们讲解自己编写的程序,明白了自己与大佬......
  • 9.11今日总结
    今天上了建民老师的Java课程,老师给我们讲授了1,Java中最重要的思想就是大道至简,我们以后遇见问题要将复杂问题简单化,简单问题流程化。2,java的语法基础,其中也有一些练习题让我们做(1)关于枚举类型1publicclassTes2{2privateenumMyEnum{3ONE,TWO,THREE......
  • 2023.9.11——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午上课并选课,下午上课并体测。我了解到的知识点:1.完成选课;明日计划:1.继续进行HBase的安装;......
  • 每日总结(附测试)
    今天是这学期每日总结的第一天,今天在建民老师的课上受益良多,尤其是面试时看三眼代码1.缩列(逻辑层次感)2.变量命名是否有含义3.是否有必要的注释和编程时困难问题简单化,简单问题流程化这两个说法令我有了前进的方向和动力,练习编程思想难度不低,但练成了受益也会不绝,抄代码不是简单的c......
  • 9.11每日总结
    今天学会了java里面随机数函数的用法,之前没有了解过,也学到了对于编程的困难问题简单化,简单问题流程化这么一个最基本的学习锻炼过成。了解到了,程序中浮点数的运算有其特定的运算规律,并且学习了一下浮点数如何精准计算。......
  • 2023.9.11总结
    进行机器人实训,增强了动手能力和团队合作能力;搬水,搬了4桶,累的一批(有点低血糖),但至少身体得到了锻炼;java语言课认识了大道至简的编程思维:分解:把复杂问题分解成小问题,简单问题,复杂问题简单化,简单问题流程化。模式识别:找出相似模式,解决和细分问题抽象:聚焦最重要信息,实现框架算......
  • 嵌入式三级知识点总结
    今天暂停更新一波实战,拿去我当年考嵌入式三级的知识清单来分享给大家吧!1、ADD加法指令,AND是逻辑与,SUBS是带进位的减法指令,BEQ是跳转指令。2、小端模式是指高位保存在高地址中,LDRR0,[R1,#4]将R1寄存器的内容自动增加4。3、MOVR0,R1,LSL#3 中的LSL的意思是左移。4、速度不高的外......
  • 校内模拟赛赛后总结
    前记(开始写于\(2023.9.9\))(本来是不想写的,但是看到学长以及身边人都写,思考了一下,感觉有点用,于是也写了)(里面也写了一些闲话)(以前的比赛我就记个排名得了,懒得补了)7.20~7.22CSP模拟1~3没考7.24CSP模拟4(rk6)7.25CSP模拟5(rk3)7.26CSP模拟6(rk23)7.27......
  • 2023/9/11每日总结
    今天配置了zookeeper,中间遇到了问题:1.版本不对导致无法启动;2.Clientportfound:2181.Clientaddress:localhost.ClientSSL:false.安装教程:HBase安装教程-yang_12138-博客园(cnblogs.com)问题解决:解决问题Clientportfound:2181.Clientaddress:localhost.Cli......