我们用Docker搭建测试环境,有时候为了方便,需要做下环境迁移,网上资料查了一下,发现很多文章都没有介绍清楚,于是特地写了这篇文章:
整个场景说明如下:192.168.*.102机器上安装了Spark,Hbase的环境,现在需要一模一样的迁移到192.168.*。101机器。
Docker环境部署,参考文章:大数据学习整理篇(七)Linux下使用Docker搭建Spark多节点,Phoenix单机版,然后使用Spark访问Phoenix(java示例成功版)
一、Spark的Docker环境迁移
a.首先我们将源机的Spark Docker停止
docker stop <容器ID>
b.保存源机镜像环境(其中8ead b249是容器ID)
docker commit 8ead docker-spark_master_1:v1
docker commit b249 docker-spark_worker_1:v1
c.查看镜像
d.导出镜像(./是指当前目录)
docker save -o ./spark-master.tar docker-spark_master_1:v1
docker save -o ./spark-worker.tar docker-spark_worker_1:v1
docker save -o ./hbase.tar hbase-phoenix-docker:v1
e.将镜像文件.tar拷贝到目的机,即101机器(省略)
f.在目的机导入到镜像
docker load --input ./spark-master.tar
docker load --input ./spark-worker.tar
docker load --input ./hbase.tar
g.在目的机运行镜像
docker run -itd -p 4040:4040 -p 7077:7077 -p 8080:8080 -p 6066:6066 docker-spark_master_1:v1 /bin/bash
docker run -itd -p 8081:8081 docker-spark_worker_1:v1 /bin/bash
h.进入容器,执行spark命令,具体见gitee网址的docker-compose.xml配置
master镜像:运行:
bin/spark-class org.apache.spark.deploy.master.Master -h master
work镜像,运行
bin/spark-class org.apache.spark.deploy.worker.Worker spark://master:7077
如果上述命令运行失败,请使用docker-compose.yml文件直接启动,具体文件参考如下:
version: "2.2"
services:
master:
image: docker-spark_master_1:v1
command: bin/spark-class org.apache.spark.deploy.master.Master -h spark-master
hostname: spark-master
environment:
MASTER: spark://spark-master:7077
SPARK_CONF_DIR: /conf
SPARK_PUBLIC_DNS: localhost
expose:
- 7001
- 7002
- 7003
- 7004
- 7005
- 7077
- 6066
ports:
- 4040:4040
- 6066:6066
- 7077:7077
- 8080:8080
volumes:
- ./conf/master:/conf
- ./data:/tmp/data
worker:
image: docker-spark_worker_1:v1
command: bin/spark-class org.apache.spark.deploy.worker.Worker spark://spark-master:7077
hostname: spark-worker
environment:
SPARK_CONF_DIR: /conf
SPARK_WORKER_CORES: 2
SPARK_WORKER_MEMORY: 1g
SPARK_WORKER_PORT: 8881
SPARK_WORKER_WEBUI_PORT: 8081
SPARK_PUBLIC_DNS: localhost
links:
- master
expose:
- 7012
- 7013
- 7014
- 7015
- 8881
ports:
- 8081:8081
volumes:
- ./conf/worker:/conf
- ./data:/tmp/data
二、Hbase环境迁移
a.提交镜像(70b7是容器ID)
docker commit 70b7 hbase-phoenix-docker:v1
b.上面第一节步骤d,f已经说明导出镜像
c.在目的机运行镜像
docker run -itd -p 2181:2181 -p 8765:8765 hbase-phoenix-docker:v1 /bin/bash
c.进入容器,执行命令(/usr/bin/supervisord &)
~# docker exec -it --user root <容器ID> /bin/bash
root@47fb2def03d7:/opt/hbase-2.0.6/conf# /usr/bin/supervisord &
d.验证
root@47fb2def03d7:/opt/hbase-2.0.6/conf# cd /opt/phoenix/bin && ./sqlline.py
三、Spark验证省略,可以查看大数据学习整理篇(七)Linux下使用Docker搭建Spark多节点,Phoenix单机版,然后使用Spark访问Phoenix(java示例成功版)进行验证。