Hbase API 创建表错误记录 for Docker 容器部署集群

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hbase API 创建表错误记录 for Docker 容器部署集群相关的知识,希望对你有一定的参考价值。

Hbase API 创建表错误记录

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;

public class CreateTableDemo {

    public static void main(String[] args) throws Exception{
        Configuration config = HBaseConfiguration.create();// 获取连接信息

        //创建连接
        try(Connection connection = ConnectionFactory.createConnection(config)) {
            Admin admin = connection.getAdmin();

            HTableDescriptor tableDescriptor = new HTableDescriptor(TableName.valueOf("weGamer"));
            HColumnDescriptor cf1 = new HColumnDescriptor("personalinfo");
            HColumnDescriptor cf2 = new HColumnDescriptor("recordinfo");
            HColumnDescriptor cf3 = new HColumnDescriptor("assetsinfo");
            tableDescriptor.addFamily(cf1);
            tableDescriptor.addFamily(cf2);
            tableDescriptor.addFamily(cf3);
            System.out.println("Createing table. ");
            //Do create
            admin.createTable(tableDescriptor);
            System.out.println("Done.");
        }
    }

}

运行编译报错:
技术图片

HBase Master应该绑定的端口。默认为:16000

容器内主机名没有在客户端绑定/ect/hosts 在末尾追加

vim /etc/hosts
172.20.0.2 hadoop-master 55c923f2c306

再次编译执行报错:
技术图片

HBase RegionServer绑定的端口。默认为:16020

容器内主机名没有在客户端绑定/ect/hosts 在末尾追加

vim /etc/hosts
172.20.0.3 hadoop-slave1 hadoop-slave1.day2_beimei6-net

运行报错:
技术图片
这个运行时异常,我们之前的表因为反复创建了,我们去 UI 查看一下。
技术图片

表是存在的,我们测试改个名字

技术图片

我们再次编译运行:
技术图片

最终我们看到成功了,然后我们是三台Docker容器,我们为了后面的不会再次出现这个错误,我们把 salve2 节点的 hbase 的HRegionServer机器主机名

技术图片

容器内主机名没有在客户端绑定/ect/hosts 在末尾追加

vim /etc/hosts
172.20.0.4 hadoop-slave2 hadoop-slave2.day2_beimei6-net

应用程序对数据的读写操作都是通过和HRegion通信完成,16020端口是RegionServer绑定的端口。

参考文档

·HBase官网API

以上是关于Hbase API 创建表错误记录 for Docker 容器部署集群的主要内容,如果未能解决你的问题,请参考以下文章

Hbase常用操作记录

HBase 常用java api获得客户端,创建表,查询,删除

HBase学习02(HBase API)

HBase学习02(HBase API)

HBase学习02(HBase API)

HBase编程 API入门之create(管理端而言)