JupyterHub是一个普遍使用的大数据分析的WebUI界面,在JupyterHub for K8s中集成SuperMap iObjects Python,便可在JupyterLab的Notebook环境下中使用各类地理空间数据的处理功能,实现一体化的空间数据分析,若是整合SuperMap iClient Python,还能够进一步实现GIS服务的在线访问和Web浏览器上的可视化。html
须要步骤:java
具体操做以下。python
下载iObjects Java组件,iObjects Python须要该组件来执行空间计算操做。linux
wget -c http://download.supermap.com.cn/2019/SuperMap9D/9.1.1/iObjects_911_release_20190129/supermap-iobjectsjava-9.1.1-16827-70590-linux64-all-Bin.tar.gz
iObjects Java须要用到libpng12-0_1.2.54-1ubuntu1.1_amd64.deb,可是我这个Docker镜像用的Ubuntu 18.04里没有默认安装,须要先下载下来,在Docker Build过程当中安装进去。git
完成iObjects Java组件的复制到./SuperMap、安装,调用Docker Build,完成后清除目录中的内容。参考内容以下:github
#docker build --build-arg "HTTP_PROXY=10.1.1.174:9999" --build-arg "HTTPS_PROXY=10.1.1.174:9999" -t openthings/databook . echo "" echo "========================================================" echo "Prepare SuperMap iObjects Java packages ..." mkdir -p ./SuperMap/iobjectsjava911/Bin cp -r ../../../resources/Bin ./SuperMap/iobjectsjava911/ cp -r ../../../resources/supermap_any_2019.lic9d ./SuperMap/supermap_any_2019.lic9d echo "" echo "========================================================" echo "Build docker openthings/databook ..." docker build --build-arg "HTTP_PROXY=10.1.1.174:9999" -f Dockerfilez -t openthings/databook . echo "" echo "========================================================" echo "Remove SuperMap iObjects Java packages ..." rm -r ./SuperMap echo "" echo "Build openthings/databook Finished, view: docker images." echo "========================================================" echo ""
# -------------------------------------------------------------------- # 添加 iObjects-python 软件包。 RUN pip install iobjectspy==9.1.1 # -------------------------------------------------------------------- # 获取 iObjects Java组件软件。 # wget: http://download.supermap.com.cn/2019/SuperMap9D/9.1.1/iObjects_911_release_20190129/supermap-iobjectsjava-9.1.1-16827-70590-linux64-all-Bin.tar.gz # into SuperMap/iobjectsjava911/Bin # 安装iObjects Java 的License文件,能够网络在线申请。 RUN mkdir -p /opt/SuperMap/License/ COPY ./SuperMap/supermap_any_2019.lic9d /opt/SuperMap/License/ # 复制iObjects Java到Docker中。 RUN mkdir -p /opt/SuperMap/iobjects/911/Bin COPY ./SuperMap/iobjectsjava911/Bin /opt/SuperMap/iobjects/911/Bin # 安装libpng支持库。 RUN chmod +x /opt/SuperMap/iobjects/911/Bin/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb && \ dpkg -i /opt/SuperMap/iobjects/911/Bin/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb
为何要先复制到./SuperMap目录下?docker
由于Docker不能ADD/COPY非Dockerfile当前目录下的文件。ubuntu
我也不想将iObjects Java存放在Dockerfile目录下。vim
先复制到./SuperMap目录下,再ADD到Docker内部,而后构建完予以删除。浏览器
将上面的脚本保存为buildz.sh,改变属性为可执行 sudo chmod +x buildz.sh,而后运行之。
修改Tag(由于每次build会覆盖),使用:
Docker tag openthings/databook openthings/databook:20190708
若是须要在多个节点上使用,可使用Harbor来存储和推送。
节点少的话,在全部的节点上手工Docker save保存、而后传送过去、再Docker Load便可。
由于JupyterHub的运行Notebook Server实例镜像Tag改变,须要进去配置。
能够经过Kubectl工具直接修改配置参数,不须要从新安装JupyterHub服务。
运行:
kubectl edit configmap/hub-config -n jupyter
有时候出现乱码,安装vim便可。
按i进入编辑状态,按esc+wq即保存退出。
同时删除jupyterhub和supermap-jupyter(以前的实例),等待系统从新建立实例。
从新登陆进JupyterHub的页面,每个用户名会建立相应的Notebook Server实例。