之前在本地测试环境, 搭了一整套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-master0.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拜访了.
終わり。