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

请参考

相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
3天前
|
Kubernetes 监控 开发者
掌握容器化:Docker与Kubernetes的最佳实践
【10月更文挑战第26天】本文深入探讨了Docker和Kubernetes的最佳实践,涵盖Dockerfile优化、数据卷管理、网络配置、Pod设计、服务发现与负载均衡、声明式更新等内容。同时介绍了容器化现有应用、自动化部署、监控与日志等开发技巧,以及Docker Compose和Helm等实用工具。旨在帮助开发者提高开发效率和系统稳定性,构建现代、高效、可扩展的应用。
|
2天前
|
存储 监控 Linux
docker构建镜像详解!!!
本文回顾了Docker的基本命令和管理技巧,包括容器和镜像的增删改查操作,容器的生命周期管理,以及如何通过端口映射和数据卷实现容器与宿主机之间的网络通信和数据持久化。文章还详细介绍了如何使用Docker部署一个简单的Web应用,并通过数据卷映射实现配置文件和日志的管理。最后,文章总结了如何制作自定义镜像,包括Nginx、Python3和CentOS镜像,以及如何制作私有云盘镜像。
14 2
|
2天前
|
JavaScript 持续交付 Docker
解锁新技能:Docker容器化部署在微服务架构中的应用
【10月更文挑战第29天】在数字化转型中,微服务架构因灵活性和可扩展性成为企业首选。Docker容器化技术为微服务的部署和管理带来革命性变化。本文探讨Docker在微服务架构中的应用,包括隔离性、可移植性、扩展性、版本控制等方面,并提供代码示例。
18 1
|
3天前
|
Docker 容器
docker 修改容器内的系统时间
【10月更文挑战第27天】docker 修改容器内的系统时间
59 2
|
10天前
|
Kubernetes 负载均衡 Docker
构建高效微服务架构:Docker与Kubernetes的完美搭档
本文介绍了Docker和Kubernetes在构建高效微服务架构中的应用,涵盖基本概念、在微服务架构中的作用及其实现方法。通过具体实例,如用户服务、商品服务和订单服务,展示了如何利用Docker和Kubernetes实现服务的打包、部署、扩展及管理,确保微服务架构的稳定性和可靠性。
46 7
|
9天前
|
Kubernetes 负载均衡 Docker
构建高效微服务架构:Docker与Kubernetes的完美搭档
【10月更文挑战第22天】随着云计算和容器技术的快速发展,微服务架构逐渐成为现代企业级应用的首选架构。微服务架构将一个大型应用程序拆分为多个小型、独立的服务,每个服务负责完成一个特定的功能。这种架构具有灵活性、可扩展性和易于维护的特点。在构建微服务架构时,Docker和Kubernetes是两个不可或缺的工具,它们可以完美搭档,为微服务架构提供高效的支持。本文将从三个方面探讨Docker和Kubernetes在构建高效微服务架构中的应用:一是Docker和Kubernetes的基本概念;二是它们在微服务架构中的作用;三是通过实例讲解如何使用Docker和Kubernetes构建微服务架构。
36 6
|
9天前
|
Kubernetes 监控 数据中心
容器化与微服务:构建高效开发环境的双剑合璧
【10月更文挑战第20天】本文探讨了容器化技术(如Docker和Kubernetes)与微服务架构的结合,如何共同构建高效、灵活的开发环境。容器化解决了环境一致性、快速部署和资源隔离的问题,而微服务架构则提升了系统的可维护性和可扩展性。通过容器编排工具、CI/CD流程和服务网格,两者的结合进一步优化了开发和运维效率。文章还分享了实施这两项技术的最佳实践和职业心得。
|
8天前
|
负载均衡 应用服务中间件 nginx
基于Nginx和Consul构建自动发现的Docker服务架构——非常之详细
通过使用Nginx和Consul构建自动发现的Docker服务架构,可以显著提高服务的可用性、扩展性和管理效率。Consul实现了服务的自动注册与发现,而Nginx则通过动态配置实现了高效的反向代理与负载均衡。这种架构非常适合需要高可用性和弹性扩展的分布式系统。
15 4
|
10天前
|
Web App开发 iOS开发 Docker
Docker 容器的日志
【10月更文挑战第31天】
23 5
|
9天前
|
负载均衡 应用服务中间件 nginx
基于Nginx和Consul构建自动发现的Docker服务架构——非常之详细
通过使用Nginx和Consul构建自动发现的Docker服务架构,可以显著提高服务的可用性、扩展性和管理效率。Consul实现了服务的自动注册与发现,而Nginx则通过动态配置实现了高效的反向代理与负载均衡。这种架构非常适合需要高可用性和弹性扩展的分布式系统。
22 3