簡體   English   中英

如何在Amazon EMR上重新啟動HDFS

[英]How to restart HDFS on Amazon EMR

我對Amazon EMR集群上HDFS的設置進行了一些更改。 我想重新啟動namenode和datanode,以使更改生效。 我無法在namenode(master)或datanode上都找到任何啟​​動和停止腳本來執行此操作。 重新啟動集群應該采用什么方式?

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

您必須手動重新啟動群集。 這可以手動執行,也可以使用簡單的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"

在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 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM