管理集群
用户除了通过控制台管理集群外,还可以通过ssh直接登陆到主节点上进行操作。主节点上已经完成了集群环境的相关配置,您可以直接在主节点上执行命令。 您还可以通过ssh架设SOCKS5代理服务器后,访问到集群内原生的hadoop管理页面。
生成密钥对
在自己机器上,执行命令如下
ssh-keygen -f ./hadoop_key -C "emr public key"
其中-f指定文件,-C添加注释。执行命令后将会得到两个文件:hadoop_key,hadoop_key.pub。hadoop_key为密钥文件,由用户自己妥善保存;hadoop_key.pub为公钥文件,可通过控制台添加到集群上。
NOTE: 如果密钥文件丢失,请及时删除集群上对应的公钥,以防止潜在的安全风险。
添加公钥
打开控制台页面,点击对应集群的管理按钮,进入集群管理页面,在最下面安全配置里,点击添加公钥,然后输入名称(任意字符,不能包含|,建议为密钥的文件名,方便自己将密钥与公钥对应上),将hadoop_key.pub内的所有内容拷贝到内容下,点击保存,即完成添加公钥。

删除公钥
打开控制台页面,点击对应集群的管理按钮,进入集群管理页面,在最下面安全配置里,点击对应公钥右边的-,即可删除。

登陆到主节点
完成生成密钥对-添加公钥两步后,就可以通过ssh登陆到主节点了,具体步骤如下:
获得主节点的公网IP。打开集群管理页面,在
基本信息里找到主节点入口,此处写明了IP。
使用密钥通过ssh登陆。目前只开放了主节点的
hadoop帐号,登录时请使用hadoop。命令如下($master_ip请换成实际的IP):ssh -i ./hadoop_key hadoop@$master_ip其中
-i指定了密钥文件。- 登录到主节点后,您可以直接使用诸如
hadoop, hdfs, yarn等命令。
架设SOCKS5代理服务器
- 获得主节点的公网IP。打开集群管理页面,在
基本信息里找到主节点入口,此处写明了IP。 - 在本机上通过ssh tunnel建立SOCKS5代理,命令如下(
$master_ip请换成实际的主节点IP):此命令中,代理服务器为:ssh -i ./hadoop_key -N -D 127.0.0.1:1080 hadoop@$master_ip127.0.0.1,端口为:1080。 设置本机socks v5代理。各个系统,浏览器都有不同。代理协议选择
SOCKS5,或者套接字,SOCKS,版本选5;代理服务器和端口,为步骤2中的127.0.0.1,1080。推荐一款代理插件SwitchyOmega,很好用。
获取集群各个服务的IP。登录到主节点,
cat /home/hadoop/app/emr-master/${cluster_id}/emr-master/9002/deploy-helper/conf/emr/${cluster_id}.yaml${cluster_id}请用真实的集群ID替换。- 在浏览器中输入相应服务的IP和端口即可访问。
服务端口列表
| 服务 | 端口 |
|---|---|
| NameNode | 41201 |
| ResourceManager | 41701 |
minos 使用
[minos](https://github.com/XiaoMi/minos)是一个分布式的部署监控系统。新创建的emr集群默认用minos管理hive,hdfs,hive等服务。
- 查看hdfs各节点状态(cluster_id 请换成对应集群id)
1.配置minos配置文件目录
export MINOS_CONFIG_FILE=/home/hadoop/app/emr-master/${cluster_id}/emr-master/9002/deploy-helper/deployment/deploy.cfg
2.通过minos 查看各节点状态
cd /home/hadoop/app/emr-master/${cluster_id}/emr-master/9002/deploy-helper/minos/client
./deploy show hdfs ${cluster_id}
- 更新
hdfs配置
1.配置minos配置文件目录(如果未执行过)
2.更新所需配置
cd /home/hadoop/app/emr-master/${cluster_id}/emr-master/9002/deploy-helper/deployment/emr-config/conf/hdfs
# update config
3.重启hdfs集群
cd /home/hadoop/app/emr-master/${cluster_id}/emr-master/9002/deploy-helper/minos/client
./deploy restart hdfs ${cluster_id} --update_config
minos常规使用./deploy restart ${service} ${cluster} (--update_config) (--update_package) (--job ${job}) (--task ${task}) #重启集群上的${job}的${task}(不填${job}和${task}则重启集群),并(更新配置)(更新package) ./deploy restart yarn ${cluster} --update_config --job nodemanager --task 0 #重启yarn 的nodemanage的第0个节点, 并更新配置