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 API 创建表错误记录  for Docker 容器部署集群

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

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

vim /etc/hosts
172.20.0.2 hadoop-master 55c923f2c306

再次编译执行报错:
Hbase API 创建表错误记录  for Docker 容器部署集群

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

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

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

运行报错:
Hbase API 创建表错误记录  for Docker 容器部署集群
这个运行时异常,我们之前的表因为反复创建了,我们去 UI 查看一下。
Hbase API 创建表错误记录  for Docker 容器部署集群

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

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

我们再次编译运行:
Hbase API 创建表错误记录  for Docker 容器部署集群

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

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

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

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

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

参考文档

·HBase官网API

相关推荐