KubeFlow MNist Pipeline可以将大数据处理、训练和在线服务完全串联起来,实现真正的大数据AI一体化。本文通过示例为您介绍如何进行HIVE、Spark大数据处理,离线训练和在线服务等工作,您也可以将这些工作例行化运行,而无需过多人为干预。

前提条件

操作流程

  1. 步骤一:准备工作
  2. 步骤二:制作镜像
  3. 步骤三:编译Pipeline
  4. 步骤四:上传Pipeline文件
  5. 步骤五:创建并运行Experiments
  6. 步骤六:查看Pipeline状态
  7. 步骤七:模型预测

步骤一:准备工作

  1. 通过SSH方式连接集群,详情请参见登录集群
  2. 执行以下命令,安装seldon_core和kfp。
    pip3.7 install seldon_core kfp
  3. 执行以下命令,去除默认anonymous空间的Label。
    kubectl label ns anonymous istio-injection-
    返回如下类似信息。
    namespace/anonymous labeled
  4. 执行以下命令,在anonymous空间创建Service Account。
    kubectl create serviceaccount mlpipeline-admin -n anonymous
    返回如下类似信息。
    serviceaccount/mlpipeline-admin created
  5. 执行以下命令,给Service Account绑定cluster-admin权限。
    kubectl create clusterrolebinding mlpipeline-admin --clusterrole=cluster-admin --serviceaccount=anonymous:mlpipeline-admin

步骤二:制作镜像

注意 需要修改Makefile的Registry地址为您的ACR地址。

您可以按照以下操作,制作Hive CLI或Spark CLI镜像。

  • Hive CLI
    进入Hive CLI目录并制作镜像。
    cd hivecli && make
  • Spark CLI
    进入Spark CLI目录并制作镜像。
    cd sparkcli && make

步骤三:编译Pipeline

  1. 执行以下命令,进入/mnist_on_ds目录。
    cd /root/dsdemo/kubeflow_samples/mlpipeline/mnist_on_ds
    说明 Pipeline代码详情,请参见mnist_keras_tf_mlpipeline.py文件。
  2. 执行make命令,编译Pipeline。
    说明 使用文件传输工具将编译出来的mnist_keras_tf_mlpipeline.tar.gz文件,下载到本地PC,便于后续上传。

步骤四:上传Pipeline文件

  1. 进入集群详情页面。
    1. 登录阿里云E-MapReduce控制台
    2. 在顶部菜单栏处,根据实际情况选择地域和资源组
    3. 单击上方的集群管理页签。
    4. 集群管理页面,单击相应集群所在行的详情
  2. 集群基础信息页面的主机信息区域,查看公网IP地址。
    header_ip
  3. 在地址栏中,输入http://<获取的公网IP地址>:31380,按回车键。
    使用默认的anonymous空间即可。进入后,默认页面如下。Kubeflow_index
  4. 在左侧导航栏,单击Pipelines
  5. Pipelines页面,单击Upload pipelineupload
  6. Upload Pipeline or Pipeline Version,输入Pipeline Name,选择编译出的mnist_keras_tf_mlpipeline.tar.gz
  7. 单击Create
    模型示例展示如下。upload2

步骤五:创建并运行Experiments

  1. 在Kubeflow的左侧导航栏,单击Experiments
  2. 单击上方的Create experiment
  3. New experiment页面,输入Experiment name
  4. 单击Next
  5. Start a recurring run页面,配置参数。
    1. 选择步骤三:编译Pipeline下载到本地的mnist_keras_tf_mlpipeline.tar.gz文件。
      select_jar
    2. 单击Recurring
      run type
  6. 单击Start

步骤六:查看Pipeline状态

您可以在Experiments中查看Pipeline状态,模型示例展示如下。see_pipeline

步骤七:模型预测

  1. 执行以下命令,获取istio-gateway的IP地址。
    sh get_clusterip.sh
    返回如下类似信息。
    NAME                   TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)                                                                                                                                      AGE
    istio-ingressgateway   NodePort   10.101.**.**   <none>        15020:30435/TCP,80:31380/TCP,443:31390/TCP,31400:31400/TCP,15029:32038/TCP,15030:30582/TCP,15031:31438/TCP,15032:32025/TCP,15443:30767/TCP   8h
    说明 CLUSTER-IP对应的值即为istio-gateway的IP地址。
  2. 模型预测REST协议。
    说明 请根据实际需求修改predict_rest.pyminikube_ambassador_endpoint地址,修改为步骤1中获取到的istio-gateway的IP地址。
    python3.7 predict_rest.py

问题反馈

如果您在使用DataScience集群的过程中有任何疑问,欢迎您扫描下面的二维码加入钉钉群进行反馈。DataScience_dingding