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

半城伤御伤魂 提交于 2020-05-01 17:54:22

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!