1 文档编写目的
在CDSW1.5及以前版本,仅支持内置的编辑器,往往数据科学家在做模型开发训练时更倾向于使用自己熟悉的IDE开发工具。所以在CDSW1.6开始,引入了一个新功能,允许用户自带编辑器,称为BYOE(Bring Your Own Editor)。关于这个新特性可以参考前面的文章《CDSW1.6的新特性》有视频介绍。本篇文章主要介绍在Window客户端环境下,使用CDSW提供的工具搭建一个SSH Gateway方式实现本地IDE访问CDSW Project并做开发。
- 测试环境:
1.Window7
2.CDSW1.6.1
环境准备
1.在Window客户端上执行如下命令创建私钥/公钥对
C:\Users\admin>ssh-keygen -t rsa
2.配置window客户端DNS确保通过泛域名方式可以解析到CDSW服务器地址
3.登录CDSW下载提供的window端cdswctl工具
解压至当前客户端的任意目录
4.登录CDSW配置window客户端公钥到当前用户的SSH public keys公钥列表
将第一步ssh-keygen命令生成C:\Users\admin.ssh\id_rsa.pub公钥文件内容,添加CDSW的公钥列表,
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3uVMZ6QW4yYswtgwcilBmye2nNS3vV8zivVUocQ/ZwyDWR7oMBPyf6YFELzxrb4uT80EDWA5qdUdXNMALEqX3Pzh4ruqQ7KE3dI3L6KMRDQ6BmevjOijNEAFxrbI867bvhTdNlW6x9ISS9ZC+lHYAxxRMNpRfUQPlyEZKFUkQXfX2+aYajWFNEX1RU0pkmfcSvm4pvV8VMwl35xghXp0RuoG6NpWid4ZRwHtFrlHbiBKK392NnRmk3PH38bgqc06zEYh/VaNmJkaDx5omkWpPk1HtGcKpJCO+CbrP2Go856f34gk4hCmZKEBKpLN471KVFUsA2Z9fKoQxCOqY3+YR admin@DESKTOP-JKA43KI
注意:复制公钥内容时不要有换行
5.确保CDSW管理员没有禁用“remote editing”
2 初始化SSH连接CDSW
1.打开cmd命令行进入下载的cdswctl客户端工具目录
2.在当前目录执行如下命令登录CDSW
cdswctl.exe login -n admin -u http://master.hadoop.com
注意:此处会提示输入登录用户的密码,这里使用admin用户,登录成功后会在当前window用户的home目录下生成一个.cdsw目录下生成一个config.yaml的配置文件
该配置文件主要记录了用户访问cdsw的信息,以避免重复登录问题
username: admin
url: http://master.hadoop.com/
auth:
authtype: 1
basic: null
apikey: uwmx9ljglt1ya66j17zir3a94y92x8tr
3.执行如下命令获取当前登录用户的project列表
cdswctl.exe projects list
4.完成上述命令执行如下命令创建一个本地的ssh通道与CDSW远端建立连接
cdswctl.exe ssh-endpoint -p admin/testsparkpy -c 1 -m 2
如上图所示则为命令运行成功,此时登录CDSW可以看到testsparkpy工程下已启动一个Session
5.打开一个新的cmd窗口,执行如下命令验证SSH通道是否可用
ssh -p 6926 cdsw@localhost
如上图所示就完成本地与CDSW的SSH通道的建立,接下来可以使用本地的Pycharm工具通过创建的SSH通道创建一个Project工程。
3 Pycharm创建远程Project
1.打开本地开发工具Pycharm,点击”Create New Project”
2.输入Project命令,选择使用”Existing interpreter”
3.点击“Interpreter”一栏的”…”菜单,进入Interpreter配置界面,选择“SSH Interpreter”并输入初始化SSH连接CDSW最后一步返回的ssh登录信息
4.点击“Next”进入SSH通道验证界面,验证成功后会返回如下界面
这里可以根据自己的需要选择python的运行环境,默认使用/usr/bin/python环境
5.完成Python环境选择后,点击“Finish”完成SSH Interpreter的创建
6.完成上述配置后,点击“Create”创建工程
注意:此时完成了Project的创建,发现CSDW上testsparkpy工程里面的代码并不存在该工程下。
7.点击testpyspark工程,鼠标右键从testpyspark下载代码至本地
8.执行成功后就完成cdsw代码同步至本地的操作
到此为止就完成了CDSW使用本地IDE Pycharm的配置,可以开心的本IDE下开发模型了。
4 总结
1.需要在使用本地Pycharm的Window客户端创建公钥/私钥对,并将公钥信息配置到CDSW的公钥列表
2.Window客户端需要正确配置DNS地址,确保能够通过泛域名解析到CDSW服务,否则cdswctl创建SSH通道时会验证不通过
3.cdswctl工具可以通过cdswctl -h方式查看命令使用方式
4.CDSW管理员需要在配置项中启用“Allow remote edititing”