docker 构建 hbase 容器

简介: docker 构建 hbase 容器

hbase 搭建

docker run -tdi -p 2181:2181 -p 8030:8030 -p 8031:8031 -p 8032:8032 -p 8033:8033 -p 8040:8040  -p 8088:8088  -p 9000:9000 -p 9864:9864 -p 9866:9866 -p 9867:9867 -p 9868:9868 -p 9870:9870 -p 13562:13562 -p 16000:16000 -p 16010:16010 -p 16020:16020 -p 16030:16030  -p 19888:19888  --hostname hbase0    --privileged -e "container=docker"   --name  hbaseweifb   registry.cn-hangzhou.aliyuncs.com/mkmk/hadoop:hbaseweifbv4 init | docker exec  hbaseweifb /bin/bash -c ' /starthadoop.sh'

使用 java api 端口 9000

hadoop web 9870

hbase web 16010

javaapi 创建表格

这里就填写你 docker 容器所在的 ip地址即可

configuration.set(“hbase.rootdir”,“hdfs://127.0.0.1:9000/hbase”);

configuration.set(“hbase.zookeeper.quorum”, “127.0.0.1”);

package main.java;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.io.compress.Compression.Algorithm;
import org.apache.log4j.BasicConfigurator;
public class connectHbase {
    public static Configuration configuration; //配置对象,用于管理配置信息(类似hbase-site.xml)
    public static Connection connection;       //连接对象,用于连接数据库
    public static Admin admin;                 //管理对象,用于管理表(如对表的增删改查)
    public static void init(){
        //1.根据hbase-site.xml文件初始化Configuration对象
        configuration = HBaseConfiguration.create();
        configuration.set("hbase.rootdir","hdfs://127.0.0.1:9000/hbase");
        configuration.set("hbase.zookeeper.quorum", "127.0.0.1");
        configuration.set("hbase.zookeeper.property.clientPort", "2181");
        try{
            //2.根据Configuration对象初始化Connection对象
            connection = ConnectionFactory.createConnection(configuration);
            //3.根据Connection对象获取Admin对象
            admin = connection.getAdmin();
            System.out.println("连接HBase成功.");
        }catch (IOException e){
            System.err.println("连接HBase失败.");
        }
    }
    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 {
        init();  //创建连接
        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 columnfamily = ColumnFamilyDescriptorBuilder.of(str);  //根据字符串列簇名分别创建新的列簇
                tableDescriptor.setColumnFamily(columnfamily); //把新列簇依次添加到新表实例中
            }
            admin.createTable(tableDescriptor.build()); //把创建的新表实例添加到HBase中
            System.out.println("create table success");
        }
        close();  //关闭连接
    }
    public static void main(String... args) throws IOException {
        BasicConfigurator.configure();
        createTable("lmk",new String[]{"col1","col2"});
    }
}

常用命令

查看所有活动端口

netstat -ntlp


查看大小

du -shm * | sort -nr

查看jps 活动

jps

压缩文件

 nohup tar cvpzf /backup20200406.tgz --exclude=/proc --exclude=/nohup.out  --exclude=/backup20200406.tgz --exclude=/mnt --exclude=/sys/  --exclude=/run  / &

docker run -tdi -p 2181:2181 -p 8030:8030 -p 8031:8031 -p 8032:8032 -p 8033:8033 -p 8040:8040  -p 8088:8088  -p 9000:9000 -p 9864:9864 -p 9866:9866 -p 9867:9867 -p 9868:9868 -p 9870:9870 -p 13562:13562 -p 16010:16010 -p 16030:16030  -p 19888:19888 -p 33933:33933  --hostname localhost  --privileged -e "container=docker"   --name  hbaseweifb   registry.cn-hangzhou.aliyuncs.com/mkmk/hadoop:hbaseweifb init  | docker exec  hbaseweifb /bin/bash -c ' /starthadoop.sh  '

常见报错

Connection refused: no further information: localhost/127.0.0.1:16020

请参考

相关文章
|
5月前
|
人工智能 前端开发 Docker
从本地到云端:用 Docker Compose 与 Offload 构建可扩展 AI 智能体
在 AI 智能体开发中,开发者常面临本地调试与云端部署的矛盾。本文介绍如何通过 Docker Compose 与 Docker Offload 解决这一难题,实现从本地快速迭代到云端高效扩容的全流程。内容涵盖多服务协同、容器化配置、GPU 支持及实战案例,助你构建高效、一致的 AI 智能体开发环境。
547 2
从本地到云端:用 Docker Compose 与 Offload 构建可扩展 AI 智能体
|
5月前
|
JavaScript Docker 容器
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
457 100
|
5月前
|
缓存 安全 Linux
优化Docker镜像大小的多阶段构建实践
优化Docker镜像大小的多阶段构建实践
420 99
|
5月前
|
安全 Go Docker
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
|
4月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
4月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
476 6
|
4月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
642 5

热门文章

最新文章