源起:
终于到了租用云服务器的时候了,想想还有点小激动呢。
EMR的官方文档上关于ssh集群登录的操作步骤已经很详细了,而且还有视频,但是实际操作的时候总会遇到一些意想不到的问题,于是我就把我配置的过程记录下来,以供参考。
配置步骤:
配置过程基本参照EMR的官方文档:SSH集群登录
一、SSH登陆集群master节点
1. 下载安装 PuTTY,Puttygen
2. 打开puutygen, 点击generate 生成一个.ppk文件的秘钥文件,点击save private key保存
3. 打开putty,在session中输入你创建的集群的公网IP,注意格式 root@IP 或者 hadoop@IP
然后选择Connection->SSH -> Auth browse选择你之前保存的ppk文件,最后点击open
第一次登陆会出现下面的提示,点击“是”即可
4. 输入你当初创建集群时设置的远程登陆密码
这样就实现了SSH访问集群中的master节点
二、下面是如何在本地访问hadoop,spark等系统的webUI
首先需要下载id_rsa到本地,然后打通SSH隧道实现动态转发,最后通过Chrome流量器访问webUI
1. 在master节点中,切换成hadoop用户; sudo su hadoop
cd 到根目录,在/home/hadoop/.ssh 下可以看到id_rsa文件
2. 将id_rsa文件下载到本地。官方文档给的是sz指令进行下载,但是我用这个指令会卡死,没法下载。所以我选择用scp指令得到id_rsa文件。
3. 本地cmd中,输入下述指令,实现端口动态转发
ssh -i /path/id_xxx -ND 8157 hadoop
注意:这里的hadoop@masterNodeIP要与mater当前的权限IP对应(或者直接用root@masterNodeIP),因为我第二天用hadoop用户的时候,会出现下面的错误,改成root@masterNodeIP就可以正常转发了。
4. 本地cmd中,进入Chrome.exe 所在文件位置(C:\Program Files (x86)\Google\Chrome\Application)输入下述指令,以命令行的方式启动Chromechrome --proxy-server="socks5://localhost:8157" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" --user-data-dir=d:/tmp/
4. 在弹出的Chrome流量器中,用localhost访问hadoop等系统的webUI就可以了