近日公司需要单节点hbase,并不使用内置zookeeper,我们的zookeeper是单节点的docker化,hbase也要做单节点的docker化,于是以下为自写的Dockerfile

hbase安装包下载:https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.2.2/

一、hbase的Dockerfile

FROM ubuntu
ADD ["jdk.tar.gz","/usr/local/"]
ADD ["hbase.tar.gz","/opt/"]
COPY ["entrypoint.sh","/"]
ENV JAVA_HOME /usr/local/jdk
ENV PATH ${PATH}:${JAVA_HOME}/bin
RUN echo "Asia/Shanghai" > /etc/timezone
EXPOSE
VOLUME /opt/hbase/data
ENTRYPOINT /entrypoint.sh

二、hbase的entrypoint.sh

#!/bin/bash
Host_Name=`hostname`
Conf_Dir=/opt/hbase/conf
if [ -n ${ZK_Server} ]; then
sed -i "/zookeeper.quorum/{n;s/.*/ <value>${ZK_Server}<\/value>/g}" ${Conf_Dir}/hbase-site.xml
fi
if [-n ${ZK_Port}]; then
sed -i "/zookeeper.property.clientPort/{n;s/.*/ <value>${ZK_Port}<\/value>/g}" ${Confi_Dir}/hbase-site.xml
fi bash /opt/hbase/bin/start-hbase.sh
tail -F /opt/hbase/logs/hbase--master-${Host_Name}.log

三、hbase的docker-compose文件

version: ""
services:
hbase:
image: registry.cn-beijing.aliyuncs.com/wavewisdom-bj-registry-common/hbase:2.2.
container_name: hbase
environment:
- "ZK_Server=193.168.1.136"
- "ZK_Port=2181"
ports:
- "16000:16000"
- "16010:16010"
- "16020:16020"
- "16030:16030"
volumes:
- "/home/volumes/hbase/data:/opt/hbase/data"
- "/etc/localtime:/etc/localtime:ro"
restart: always

四、说明:观察启动日志会发现程序依然会自动binding2181端口,但是hbase和region已经注册到了自建的zookeeper中,测试正常。

五、dockerfile等文件可通过百度网盘下载:

链接:https://pan.baidu.com/s/1Vdxuo6diF8Js7WOcLcGBkg
提取码:22hl

hbase优化:https://www.jianshu.com/p/06648fb74c26

docker化hbase并使用外部zookeeper的更多相关文章

  1. 测试环境docker化—容器集群编排实践

    本文来自网易云社区 作者:孙婷婷 背景 在前文<测试环境docker化-基于ndp部署模式的docker基础镜像制作>中已经详述了docker镜像制作及模块部署的过程,按照上述做法已可以搭 ...

  2. Docker化运维方式讲解

    应用迁移需求 应用运维需要考虑的一个重要问题就是迁移, 在不同机器.机房.环境间迁移.迁移的原因有很多, 比如硬件过保(硬件故障), 机房迁移, 应用扩缩容等. 应用迁移的核心需求是: 简单.迁移操作 ...

  3. 老司机实战Windows Server Docker:2 docker化现有iis应用的正确姿势

    前言 上一篇老司机实战Windows Server Docker:1 初体验之各种填坑介绍了安装docker服务过程中的一些小坑.这一篇,我们来填一些稍大一些的坑:如何docker化一个现有的iis应 ...

  4. docker 安装 hbase安装 java连接hbase (mac环境)

    docker 安装 https://hub.docker.com/editions/community/docker-ce-desktop-mac 下载地址 下载完之后,安装app一样安装就好 安装完 ...

  5. 部门sonarque代码扫描测试服务器docker化

    部门内部的服务器太多了,打算将对应的测试环境docker化. 转成docker后,以后不管是升级调研还是定制化开发测试都方便,就是事情太多,一直没有抽出身来做,今天处理下并把过程记录下来跟大家分享下. ...

  6. 一步步创建第一个Docker App —— 2. 创建 Docker化 主机

    原文:https://docs.docker.com/engine/getstarted-voting-app/node-setup/ 部署voting app的第一步,是为集群节点(swarm no ...

  7. Hbase0.98.0完全分布式搭建---【使用外部zookeeper】

    Hbase是一个分布式的实时数据库,他可以基于hadoop的hdfs,S3等分布式存储系统.而且使用zookeeper来通信(查询元数据和获取数据所在位置等功能) 本文的Hbase使用的是hadoop ...

  8. Docker学习总结(6)——通过 Docker 化一个博客网站来开启我们的 Docker 之旅

    通过 Docker 化一个博客网站来开启我们的 Docker 之旅 这篇文章包含 Docker 的基本概念,以及如何通过创建一个定制的 Dockerfile 来 Docker 化Dockerize一个 ...

  9. 如何Docker化任意一个应用

    网上有很多关于如何将应用Docker化的教程,为什么我还要再写一个呢? 我见过的大部分教程都是限定在某种特定技术(例如Java或者Python),可能无法满足读者的需求.同时,这些教程也没有说清楚关于 ...

随机推荐

  1. Hadoop之HDFS客户端操作

    1. HDFS 客户端环境准备 1.1 windows 平台搭建 hadoop 2.8.5 2. 创建Maven工程 # pom.xml <dependencies> <depend ...

  2. Vue.directive()的用法和实例

    官网实例: https://cn.vuejs.org/v2/api/#Vue-directive https://cn.vuejs.org/v2/guide/custom-directive.html ...

  3. Python+request超时和重试

    Python+request超时和重试 一.什么是超时? 1.连接超时 连接超时指的是没连接上,超过指定的时间内都没有连接上,这就是连接超时.(连接时间就是httpclient发送请求的地方开始到连接 ...

  4. springboot @vaule注解失效解决办法

    在Controller类里面通过@Value将参数注入进来,最后的确成功了.因此基于此经验,我便在其他使用的类里面也采用这样的方式注入参数,但是发现去失效了,报错为NULL,说明参数并没有我们料想的被 ...

  5. java日期比较工具类

    package com.net.util; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.ut ...

  6. 常见三种加密(MD5、非对称加密,对称加密)

    转载. https://blog.csdn.net/SSY_1992/article/details/79094556 任何应用的开发中安全都是重中之重,在信息交互异常活跃的现在,信息加密技术显得尤为 ...

  7. 基础python规范

    一.注释     合理的代码注释应该占源代码的 1/3 左右,Python 语言允许在任何地方插入空字符或注释,但不能插入到标识符和字符串中间.     在 Python 中,通常包括 3 种类型的注 ...

  8. oracle用户解锁,rename管理

    ---查看命令:用户默认表空间 SYS@ACE >select username,default_tablespace,temporary_tablespace,created from dba ...

  9. PowerDesigner最基础的使用方法

    1:入门级使用PowerDesigner软件创建数据库(直接上图怎么创建,其他的概念知识可自行学习) 我的PowerDesigner版本是16.5的,如若版本不一样,请自行参考学习即可.(打开软件即是 ...

  10. js Indexof的用法

    JavaScript中indexOf()函数 JavaScript中indexOf()函数方法返回一个整数值,指出  String 对象内子字符串的开始位置.如果没有找到子字符串,则返回 -1.如果 ...