idea连接虚拟机的Hbase(附基本的创建表与查看表是否存在代码)

这篇具有很好参考价值的文章主要介绍了idea连接虚拟机的Hbase(附基本的创建表与查看表是否存在代码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

先看一下总体概况

idea连接虚拟机的Hbase(附基本的创建表与查看表是否存在代码)

1,首先快速创建一个Maven项目提供依赖支持

如果不用模板,我是不能采用aliyun镜像下载相关依赖的,可能是我自己默认配置有问题

idea连接虚拟机的Hbase(附基本的创建表与查看表是否存在代码)

idea连接虚拟机的Hbase(附基本的创建表与查看表是否存在代码)改变 Maven仓库为提前下载的仓库(具体配置可以自行搜索, 主要是改变setting配置与新建maven仓库)idea连接虚拟机的Hbase(附基本的创建表与查看表是否存在代码)

可以看到相关配置已经自动通过阿里云下载 idea连接虚拟机的Hbase(附基本的创建表与查看表是否存在代码)

2,新建依赖并且从虚拟机中导入相关文件 

在pom.xml文件下新建如下依赖

 <dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase-client</artifactId>
      <version>2.1.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase-client</artifactId>
      <version>2.1.0</version>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.6</version>
    </dependency>
    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>6.14.3</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>6.14.3</version>
      <scope>compile</scope>
    </dependency>

重载项目,查看依赖导入情况

由以下两个图可以看出相关依赖已经导入成功

idea连接虚拟机的Hbase(附基本的创建表与查看表是否存在代码) idea连接虚拟机的Hbase(附基本的创建表与查看表是否存在代码)

然后我们开启虚拟机,启动Hadoop集群,zookeeper集群,与hbase集群,输入jps查看相关是否启动成功 如下图可以看见相关集群已经启动成功

idea连接虚拟机的Hbase(附基本的创建表与查看表是否存在代码) 

 然后我们需要将hbase上面的hbase-site.xml,log4j.properties与Hadoop的core-site.xml通过xftp下载在Windows本地,粘贴到idea的resources中

idea连接虚拟机的Hbase(附基本的创建表与查看表是否存在代码) 

 idea连接虚拟机的Hbase(附基本的创建表与查看表是否存在代码)

最后我们需要更改本地的主机文件(C:\Windows\System32\drivers\etc\hosts) 其实就是跟虚拟机中主机的配置一样的,因为我的zookeeper是集群分布式,所以此处需要导入集群,一开始我只导入了一个,是不能成功运行的.

idea连接虚拟机的Hbase(附基本的创建表与查看表是否存在代码) 

 以上便是基本的Api访问支持

3,hbase表的创建与查看

首先是表的查看是否存在 

源代码根据在本地用idea连接虚拟机上的hbase集群的实现代码_java_脚本之家 (jb51.net)进行改编。

 

package org.example;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
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 java.io.IOException;

public class TestDemo {


    public static Connection connection=null;
    public static Admin admin=null;
    static {
        try {
            //1、获取配置信息
            Configuration configuration = HBaseConfiguration.create();
            configuration.set("hbase.rootdir", "hdfs://192.168.226.128:8020/hbase");
            configuration.set("hbase.zookeeper.quorum","node01,node02,node03");
            //2、创建连接对象
            connection= ConnectionFactory.createConnection(configuration);
            //3、创建Admin对象
            admin = connection.getAdmin();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    //判断表是否存在
    public static boolean isTableExist(String tableName) throws IOException {
        boolean exists = admin.tableExists(TableName.valueOf(tableName));
        return exists;
    }

    public static void close(){
        if (admin!=null){
            try {
                admin.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        if (connection!=null){
            try {
                connection.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    public static void main(String[] args) throws IOException {
        System.out.println(isTableExist("student"));
        //关闭资源
        close();
    }
}

返回了true 说明hbase里面是有这张表的

idea连接虚拟机的Hbase(附基本的创建表与查看表是否存在代码)idea连接虚拟机的Hbase(附基本的创建表与查看表是否存在代码) 

 而确实也存在 说明成功连接。

然后是表的创建 源代码来自于黑马程序员

package org.example;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import java.io.IOException;
public class TableAdminTest {

    private Connection connection;
    private Admin admin;

    @BeforeTest
    public void beforeTest() throws IOException {
        // 1.	使用HbaseConfiguration.create()创建Hbase配置
        Configuration configuration = HBaseConfiguration.create();
        // 2.	使用ConnectionFactory.createConnection()创建Hbase连接
        connection = ConnectionFactory.createConnection(configuration);
        // 3.	要创建表,需要基于Hbase连接获取admin管理对象
        // 要创建表、删除表需要和HMaster连接,所以需要有一个admin对象
        admin = connection.getAdmin();
    }
    @Test
    public void createTableTest() throws IOException {
        TableName tableName = TableName.valueOf("Ameame");

        // 1.	判断表是否存在
        if(admin.tableExists(tableName)) {
            // a)	存在,则退出
            return;
        }

        // 构建表
        // 2.	使用TableDescriptorBuilder.newBuilder构建表描述构建器
        // TableDescriptor: 表描述器,描述这个表有几个列蔟、其他的属性都是在这里可以配置
        TableDescriptorBuilder tableDescriptorBuilder = TableDescriptorBuilder.newBuilder(tableName);

        // 3.	使用ColumnFamilyDescriptorBuilder.newBuilder构建列蔟描述构建器
        // 创建列蔟也需要有列蔟的描述器,需要用一个构建起来构建ColumnFamilyDescriptor
        // 经常会使用到一个工具类:Bytes(hbase包下的Bytes工具类)
        // 这个工具类可以将字符串、long、double类型转换成byte[]数组
        // 也可以将byte[]数组转换为指定类型
        ColumnFamilyDescriptorBuilder columnFamilyDescriptorBuilder = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("C1"));

        // 4.	构建列蔟描述,构建表描述
        ColumnFamilyDescriptor cfDes = columnFamilyDescriptorBuilder.build();

        // 建立表和列蔟的关联
        tableDescriptorBuilder.setColumnFamily(cfDes);
        TableDescriptor tableDescriptor = tableDescriptorBuilder.build();

        // 5.	创建表
        admin.createTable(tableDescriptor);
    }

    @Test
    public void deleteTableTest() throws IOException {
        TableName tableName = TableName.valueOf("Ameame");

        // 1.	判断表是否存在
        if(admin.tableExists(tableName)) {
            // 2.如果存在,则禁用表
            admin.disableTable(tableName);
            // 3.再删除表
            admin.deleteTable(tableName);
        }
    }

    @AfterTest
    public void afterTest() throws IOException {
        // 4.	使用admin.close、connection.close关闭连接
        admin.close();
        connection.close();
    }
}

 然后在虚拟机输入hbase shell 命令进入客户端,输入list查看表

idea连接虚拟机的Hbase(附基本的创建表与查看表是否存在代码)

 成功创建。如果没有重启一下hbase.sh 即可

 以上只是走一遍大概连接的流程,下一步我的目标便是自己看懂,自己写代码操作hbase表。加油 。文章来源地址https://www.toymoban.com/news/detail-420526.html

到了这里,关于idea连接虚拟机的Hbase(附基本的创建表与查看表是否存在代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VMware虚拟机的基本操作:快照和克隆

    “快照”是虚拟机磁盘文件(VMDK)在某个点及时的副本。系统崩溃或系统异常,你可以通过使用恢复到快照来保持磁盘文件系统和系统存储。当升级应用和服务器及给它们打补丁的时候,快照是救世主。VMware快照是VMware Workstation里的一个特色功能。 具体操作步骤如下: 关闭

    2024年02月12日
    浏览(38)
  • Xshell连接不上虚拟机的解决办法

    目录 一,首先检查对应的会话信息是否正确 二,检查网络配置 三,防火墙是否关闭 四,ssh服务是否开启 五:更改网关 一,首先检查对应的会话信息是否正确 (1)主机号是否与连接的的一致         查看IP:ip addr (2)对应的密码是否是你设置的虚拟机的密码      

    2023年04月16日
    浏览(39)
  • openstack云计算(一)————openstack安装教程,创建空白虚拟机,虚拟机的环境准备

    需要注意的步骤会截图一下,其它的基本都是下一步,默认的即可 ----------------------------------------------------------- (1)、在安装CentOS 7的启动界面中,选择“Install CentOS 7”并回车(点击控制台界面后,按键才会生效,但是鼠标会消失,此时可以按Ctrl+Alt键可以让鼠标重新出现)

    2024年04月09日
    浏览(41)
  • 对于xshell连接不上虚拟机的一些解答

    如果你发现你可以在虚拟机内ping通 之后,在你电脑dos下也可以ping通。 然而,还是发现你的xshell连接不上虚拟机。 这里使用ifconfig   我发现这个地址是在变化的,之前是129,现在是131,所以这样再到xshell,在连接属性那里,把地址改了就可以了,再重新连接,OK了。   本文

    2024年02月07日
    浏览(35)
  • pycharm pyspark连接虚拟机的hive表 读取数据

    给个demo示例:

    2024年04月13日
    浏览(35)
  • Linux虚拟机的安装与创建【超详细】【手把手教学】

    Linux操作系统于1991年,由芬兰的一个研究生 林纳斯 ● 托瓦兹(Linus Torvalds)开发,免费开源。 特点: 完全免费:源代码 多用户 多任务 良好的用户界面 支持多种平台 设备独立性 丰富的网络功能 完善的数据库和开发平台 安全性 可移植性 你所需要的所有虚拟机文件: 链接

    2024年02月08日
    浏览(46)
  • IDEA连接HBase集群

    #环境介绍# 本地电脑window10 IntelliJ IDEA Community Edition 2023.2.3 虚拟机集群Hadoop3.1.4:master/slave1/slave2/slave3 HBase2.2.2 一、在IDEA 中创建工程 file-new-New Project         设置项目名和存储路径,选择Archetype         2.选择项目,创建目录结构。         项目名右击-new-directory(下图

    2024年01月23日
    浏览(27)
  • IDEA连接HBase

    新建maven工程 打开pom.xml添加hbase需要的依赖 Hive连接Hbase 修改 /opt/soft/hive312/conf 下的 hive-site.xml property namehive.zookeeper.quorum/name value192.168.153.147/value /property property namehbase.zookeeper.quorum/name value192.168.153.147/value /property property namehive.aux.jars.path/name valuefile:///opt/soft/hive312/lib/hive-hbas

    2023年04月12日
    浏览(36)
  • Docker - 基本概念、与虚拟机的区别、架构、镜像操作、容器操作、数据卷挂载

    目录 一、对 Docker  的理解 1、Docker 基本概念 2、Docker 与 虚拟机的区别 3、何为镜像和容器? 4、Docker 主要架构 二、Docker 基本操作 1、Docker 镜像操作 2、案例(镜像):去 DockerHub 搜索并拉取一个 Nginx 镜像,打包后删除镜像,重新加载 .tar 文件 3、Docker 容器操作 1.docker run(启

    2024年04月13日
    浏览(42)
  • 算法题:203. 移除链表元素(递归法、设置虚拟头节点法等3种方法)Java实现创建链表与解析链表

    讲一下设置虚拟头节点的那个方法,设置一个新节点指向原来链表的头节点,这样我们就可以通过判断链表的当前节点的后继节点值是不是目标删除值,来判断是否删除这个后继节点了。如果不设置虚拟头节点,则需要将头节点和后面的节点分开来讨论,代码会复杂一点。

    2024年02月05日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包