乐趣区

关于hbase:基于dockercompose-搭建本地hbase测试环境

之前在本地测试环境, 搭了一整套 hadoop, 能力失常运行 hbase, 运行中常常闪退, 于是找寻 docker 搭建计划.

站在伟人肩膀上

github 有基于 docker-compose 搭建 hbase 的我的项目, 非常残缺, 依照阐明间接 up, 便能在镜像中进行 hbase shell 等相干操作, 然而从内部连贯 hbase(指通过 zk)有一些问题, 之后通过几行配置批改, 实现了该指标.

github 地址

修脚

此我的项目中有两个 docker-compose 文件, 一个 standlone, 一个 distribution. 都是 local 的. 原本我打算用 standlone, 惋惜 regionserver 的端口在一万多个端口中随机 … 于是抉择应用 distribution.

hosts 文件批改

内部连贯 zk, 能够通过关上 2181 端口实现, 可是 zk 里存的是 docker 中的 hostname, 你的程序并不在容器中, 会呈现 unknown hosts 的状况, 于是须要增加以下到 hosts 文件中(对应到 docker-compose 文件中的 hostname)

0.0.0.0 hbase-master
0.0.0.0 hbase-region

docker-compose-distributed-local.yml 文件批改

这个文件, 有些小坑, 很多重要端口没开, 导致连贯超时(程序假死). 通过很多 debug 后, 确认了端口, 并且补齐.

  hbase-master:
    image: bde2020/hbase-master:1.0.0-hbase1.2.6
    container_name: hbase-master
    hostname: hbase-master
    env_file:
      - ./hbase-distributed-local.env
    environment:
      SERVICE_PRECONDITION: "namenode:50070 datanode:50075 zoo:2181"
    ports:
      - 16010:16010
      - 16000:16000     # 新增加

  hbase-region:
    image: bde2020/hbase-regionserver:1.0.0-hbase1.2.6
    container_name: hbase-regionserver
    hostname: hbase-regionserver
    env_file:
      - ./hbase-distributed-local.env
    environment:
      HBASE_CONF_hbase_regionserver_hostname: hbase-region
      SERVICE_PRECONDITION: "namenode:50070 datanode:50075 zoo:2181 hbase-master:16010"
    ports:
      - 16030:16030
      - 16020:16020   # 新增加

run

docker-compose -f docker-compose-distributed-local.yml up

这个时候你的程序就能够在本地进行 hbase 拜访了.

終わり。

退出移动版