在MRS上部署利用python开发的服务

井冈山_阳春 发表于 2020/12/25 11:05:44 2020/12/25
【摘要】 做项目时,需要将负责的服务部署到华为云的mrs上,这部分服务是用pyton开发,用到了mrs中的spark服务,现将部署过程记录一下,供大家参考。

1. 部署文件准备

一共需要准备两个文件,分别是install.sh 和trainer_env.tar,trainer_env.tar中包含三个安装文件,分别是python3.6.8、sumo和scc,目前服务的训练需要这三个安装包,install.sh里面是这三个安装包的安装步骤。其他服务可以采取类似的方式,只需将安装包替换并将安装脚本重新编辑即可。

2.进入MRS主节点后台

在公有云上或者HCS上,进入Mapreduce服务:


进入部署服务的集群,找到MRS集群的公网弹性IP:

3. 安装

  • Step 1: 进入mrs后台后,随便建立一个临时文件夹 mkdir -p ywg, 将下载的两个文件,传入到该文件夹中,并进入该文件夹 cd ywg

  • Step 2:输入命令cat /etc/hosts,将hosts文件中子node节点的ip复制出来,建立一个新文件vi host_list ,将ip地址复制到这个文件中

     

Step 3 : 输入命令 for ip in `cat host_list`; do ssh root@$ip mkdir /tmp/install;done, 为每个子节点创建一个安装的临时文件夹;然后,输入命令for ip in `cat host_list`; do scp trainer_env.tar root@$ip:/tmp/install/;done

Step 4: 输入命令 for ip in `cat host_list`; do ssh root@$ip< install.sh;done,执行安装即可。

4. 部署信控的egg包以及依赖包

信控作业的运行一共需要四个文件,见以下链接:

在本次服务部署中,需要将四个文件copy到两个路径下,分别是/opt/job-manager/jobs/hcs/, /opt/job-manager/,需要强调的是选择第一个路径是因为在利用spark-sumbit提交作业的时候设置了参数

--jars /opt/job-manager/jobs/hcs/trafficgo-common-wcc-crypt-1.0.jar,/opt/job-manager/jobs/hcs/traffic-service.jar \ 
--py-files /opt/job-manager/jobs/hcs/trafficgo_optimize_nash-${tag}-py3.6.egg \
--verbose /opt/job-manager/jobs/hcs/main-${tag}.py \

这些参数对应的地址是作业包对应的地址;而需要copy到第二个路径的原因是因为,通过job-manager调度spark-submit提交作业之后,作业会在该路径下运行,算法有一个需求,会在当前运行的路径下,解压egg包去寻找路网文件。实际上,把这4个文件copy到第二个路径是为了这次部署而临时要做的一个操作,后续会在代码层面规避这个操作。

未来在其他hcs上部署信控egg包以及依赖包的操作是类似的,重点就是要保证spark-submit设置的--jars、--py-files和--verbose的路径下面有这写包就好了。

5. 在后台运行信控作业

在后台验证信控作业是否成功,运行以下脚本即可:

#!/usr/bin/bash
source /opt/client/bigdata_env

spark-submit \
--master yarn \  
--deploy-mode client \  # hcs上一定要选择client模式, 公有云上选择cluster模式
--num-executors 8 \
--executor-memory 2G \
--executor-cores 1 \
--conf spark.yarn.am.memory=2G \
--conf spark.driver.memory=8G \
--conf spark.executorEnv.PYTHONPATH=${C_P_PATH} \
--conf spark.pyspark.python=/opt/trainer/bin/python \
--conf spark.pyspark.driver.python=/opt/trainer/bin/python \
--conf spark.yarn.appMasterEnv.PYTHONPATH=${C_P_PATH} \
--jars /opt/job-manager/jobs/hcs/trafficgo-common-wcc-crypt-1.0.jar,/opt/job-manager/jobs/hcs/traffic-service.jar \
--py-files /opt/job-manager/jobs/hcs/trafficgo_optimize_nash-${tag}-py3.6.egg \
--verbose /opt/job-manager/jobs/hcs/main-${tag}.py \
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。