1.3.4 管理集群
用户除了通过控制台管理集群外,还可以通过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_ip
127.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个节点, 并更新配置