在MRS上部署利用python开发的服务
一共需要准备两个文件,分别是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. 在后台运行信控作业
在后台验证信控作业是否成功,运行以下脚本即可:
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 \
- 点赞
- 收藏
- 关注作者
评论(0)