首页 > 其他分享 >2023.11.12日报

2023.11.12日报

时间:2023-11-12 16:23:48浏览次数:30  
标签:12 String 日报 2023.11 getBytes static IOException hbase public

今天主要在做大数据实验三,有个问题记录一下 代码如下

package Test3;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;

import java.io.IOException;
public class ExampleForHBase {
    public static Configuration configuration;
    public static Connection connection;
    public static Admin admin;
    public static void main(String[] args)throws IOException{
        init();//主要操作就是为了连接到数据库hbase
        createTable("student",new String[]{"score"});//创建表,shell命令:create '表名','列族名1','列族名2','列族名3' ...
        insertData("student","zhangsan","score","English","69"); //shell命令: put 'student','张三','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() {
        System.out.println("2");
        configuration = HBaseConfiguration.create();
        System.out.println("1");
        configuration.set("hbase.rootdir", "hdfs://192.168.88.151:8020/base");
        configuration.set("hbase.zookeeper.quorum","192.168.88.151,192.168.88.152,192.168.88.153");
        configuration.set("hbase.zookeeper.property.clientPort","2181");
        try {
            connection = ConnectionFactory.createConnection(configuration);
            admin = connection.getAdmin();
            System.out.println(3);
            System.out.println("HBase连接已建立。");
        } 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 {
        System.out.println("5");
        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();
    }
}

其实代码很容易理解,主要是连接hbase的时候,网上很多代码是没有关于zookeeper的两行配置的,我一开始也没有进行配置,所以会报错

然后这两个配置项,第一个可以在hbase的安装路径下的conf的hbase-site.xml找到,另一个可以在zookeeper的安装路径下的conf下的zoo.cfg下,搜client就能找到

配置完成之后就可以成功实现了

标签:12,String,日报,2023.11,getBytes,static,IOException,hbase,public
From: https://www.cnblogs.com/Arkiya/p/17827332.html

相关文章

  • Acwing.第 129 场周赛
    Acwing.第129场周赛比赛地址A.字符串题目思路:只需要用到reverse()反转函数就可以代码:#include<bits/stdc++.h>usingnamespacestd;voidsolve(){ strings; cin>>s; reverse(s.begin(),s.end()); cout<<s<<endl; }intmain(){ intt=1; while(t--){ solv......
  • 11.12打卡
    1.简化路径(70)返回的 规范路径 必须遵循下述格式:始终以斜杠 '/' 开头。两个目录名之间必须只有一个斜杠 '/' 。最后一个目录名(如果存在)不能 以 '/' 结尾。此外,路径仅包含从根目录到目标文件或目录的路径上的目录(即,不含 '.' 或 '..')。返回简化后得到的 规范路......
  • 20231112
    前几天实在没有时间没写,我谢罪/kk但是我觉得我也写不出来什么有趣的鲜花qwq昨晚深夜听歌,发现自己的时差真的好大,总是会听一些好几年前的歌,2023听2016的歌是什么操作(虽然我那会还不知道Vocaloid就是了。然后听听听,听到不知道多久就睡着了。于是有了我今天12:30才醒来的这一幕。......
  • JVM系列-第12章-垃圾回收器-cnblog
    title:JVM系列-第12章-垃圾回收器tags:-JVM-虚拟机categories:-JVM-1.内存与垃圾回收篇keywords:JVM,虚拟机。description:JVM系列-第12章-垃圾回收器。cover:'https://gitee.com/youthlql/randombg/raw/master/logo/jvm.png'abbrlink:7706d61ddate:2......
  • 一个操作系统的设计与实现——第12章 任务(三):3特权级任务
    特权级是保护模式的核心概念之一,但我们的操作系统一直没有引入这个概念。这是因为,特权级只有在3特权级任务存在时才有意义。本章将要实现的是3特权级任务的加载与任务切换。12.1特权级12.1.1特权级的功能特权级(PrivilegeLevel),是保护模式中用于限制任务权限的机制。特权级有4......
  • P12 冠词
    目录不定冠词:a/an1.发音2.用法2.1泛指用法2.1.1泛指某一个人或物2.1.2泛指某一类2.2表示数字“一”2.3表示“每”2.3“主谓一致”2.4固定表达定冠词:the1发音2用法2.1特指2.1.1再次提到的人或物2.1.2用在序数词和形容词的最高级前2.1.3独一无二的名字前2.2泛指2.3......
  • bam2wig.c:12:10: fatal error: bgzf.h: No such file or directory
     001、make编译报错如下:bam2wig.c:12:10:fatalerror:bgzf.h:Nosuchfileordirectory 002、查找该文件(base)[[email protected]]#find/-name"bgzf.h"##查找该文件,系统中不存在该文件(base)[[email protected]]# 003、在高算平台......
  • 今日报告
    今天一天完成了关于校园热议话题的调研问卷活动,上午唯唯诺诺,一开始不好意思问,但是最后看见其他人一上午都弄完了,于是就开始厚着脸皮,提高胆量最终完成了。通过这次调研活动,提高了自己的胆量,期间也遇到了不愿配合调查的,这些都是可以理解的。不过最终大部分人还是配合的,完成了调研任......
  • ReverseMe-120
    一道好题,没解出来但是收获很多贴两位大牛的题解【精选】攻防世界逆向高手题之ReverseMe-120-CSDN博客攻防世界ReverseMe-120详解_攻防世界reverseme基本思路-CSDN博客这里我就写一下对于自己来说需要注意的点注意未出现函数传参不意味着没有操作在我自己的ida中我看到......
  • openGauss学习笔记-120 openGauss 数据库管理-设置密态等值查询-概述及使用gsql操作密
    openGauss学习笔记-120openGauss数据库管理-设置密态等值查询-概述及使用gsql操作密态数据库120.1密态等值查询概述随着企业数据上云,数据的安全隐私保护面临越来越严重的挑战。密态数据库将解决数据整个生命周期中的隐私保护问题,涵盖网络传输、数据存储以及数据运行态;更进一步......