我在amazonemr集群上对hdfs的设置做了一些更改。我想重新启动namenode和datanode以使更改生效。我无法在namenode(master)和datanodes上找到任何启动和停止脚本。重启集群的方法应该是什么?
vx6bjr1n1#
在emr4上,在主主机上运行以下命令-
sudo /sbin/start hadoop-hdfs-namenode ssh -i <key.pem> <slave-hostname1> "sudo /sbin/restart hadoop-hdfs-datanode" ssh -i <key.pem> <slave-hostname2> "sudo /sbin/restart hadoop-hdfs-datanode" ssh -i <key.pem> <slave-hostname3> "sudo /sbin/restart hadoop-hdfs-datanode"
biswetbf2#
在emr 5.x上,我使用的是:将pem文件复制到头部节点并设置以下值:
CLUSTER_ID="j-XXXXXXXXXXX" IDENT="cluster.pem"
运行以下命令:
nodes=$(aws emr list-instances \ --cluster-id $ \ --instance-group-types CORE \ --instance-states RUNNING \ --output text \ --query "Instances[*].PublicDnsName" ) for node in nodes; do ssh -i $IDENT \ -o StrictHostKeyChecking=no \ -o UserKnownHostsFile=/dev/null \ $node "sudo stop hadoop-hdfs-datanode; sudo start hadoop-hdfs-datanode" done
rlcwz9us3#
您必须手动重新启动群集。这可以手动执行,也可以使用简单的shell脚本执行。1) 获取所有节点的主机名或IP地址列表,2) 使用密钥ssh到节点3) 重新启动所需的服务。如果您擅长编程,您可以创建一个通用实用程序,通过使用集群id获取与emr对应的所有节点的ipaddress列表,并在各个节点中执行服务重新启动。否则,手动获取所有节点的主机名或IP地址,并创建一个类似下面的脚本,然后从主节点执行
sudo service hadoop-hdfs-namenode restart ssh -i <key.pem> <hostname1> "sudo service hadoop-hdfs-datanode restart" ssh -i <key.pem> <hostname2> "sudo service hadoop-hdfs-datanode restart" ssh -i <key.pem> <hostname3> "sudo service hadoop-hdfs-datanode restart"
3条答案
按热度按时间vx6bjr1n1#
在emr4上,在主主机上运行以下命令-
biswetbf2#
在emr 5.x上,我使用的是:
将pem文件复制到头部节点并设置以下值:
运行以下命令:
rlcwz9us3#
您必须手动重新启动群集。这可以手动执行,也可以使用简单的shell脚本执行。
1) 获取所有节点的主机名或IP地址列表,
2) 使用密钥ssh到节点
3) 重新启动所需的服务。
如果您擅长编程,您可以创建一个通用实用程序,通过使用集群id获取与emr对应的所有节点的ipaddress列表,并在各个节点中执行服务重新启动。
否则,手动获取所有节点的主机名或IP地址,并创建一个类似下面的脚本,然后从主节点执行