如何在Amazon EMR上重新启动HDFS

时间:2015-08-25 15:11:25

标签: hadoop hdfs emr

我在Amazon EMR群集上对HDFS的设置进行了一些更改。我想重新启动namenode和datanode以使更改生效。我无法在namenode(master)和datanode上找到任何启​​动和停止脚本。重启集群的方法应该是什么?

3 个答案:

答案 0 :(得分:3)

在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"

答案 1 :(得分:0)

您必须手动重新启动群集。这可以手动执行,也可以使用简单的shell脚本执行。

1)获取所有节点的主机名或ipaddress列表

2)使用密钥

ssh进入节点

3)重新启动所需的服务。

如果您擅长编程,则可以创建一个通用实用程序,通过使用群集ID获取与EMR对应的所有节点的ipaddress列表,并在各个节点中执行服务重启。

否则,手动获取所有节点的主机名或ipaddress,并创建如下所示的脚本并从主节点执行

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"

答案 2 :(得分:0)

在EMR 5.x上,这是我使用的:

  1. 将PEM文件复制到您的头节点并设置以下值:

    CLUSTER_ID="j-XXXXXXXXXXX"
    IDENT="cluster.pem"
    
  2. 运行此:

    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