Perché il nodo principale del mio cluster Amazon EMR sta esaurendo lo spazio su disco?

5 minuti di lettura
0

Sto eseguendo processi Apache Spark su un cluster Amazon EMR e lo spazio su disco del nodo principale è quasi esaurito.

Risoluzione

Determinare quali nodi principali non sono sani

I nodi a cui è collegato almeno un volume Amazon Elastic Block Store (Amazon EBS) sono considerati non integri se raggiungono un utilizzo del disco superiore al 90%. Per determinare quali nodi potrebbero aver raggiunto il 90% di utilizzo del disco, procedi come segue:

  1. Controlla il parametro di Amazon CloudWatch mRunHealthyNodes. Questo parametro indica il numero di nodi non integri di un cluster EMR.

**Nota:**Puoi creare un allarme CloudWatch per monitorare la metrica mRunHealthyNodes.

  1. Connettiti al nodo primario e accedi al registro del controller dell'istanza su /emr/instance-controller/log/instance-controller.log. Nel log del controller dell'istanza, cerca InstanceJointStatusMap per identificare quali nodi non sono integri.

Per ulteriori informazioni, consulta Utilizzo Elevato del disco in Come risolvere gli errori “Slave lost” di ExecutorLostFailure in Spark su Amazon EMR?

  1. Accedi ai nodi principali e quindi esegui il seguente comando per determinare se una montatura ha un utilizzo elevato:
df -h

Rimuovi i file dell'applicazione Spark locali e temporanei non necessari

Quando esegui processi Spark, le applicazioni Spark creano file locali che consumano il resto dello spazio su disco nel nodo principale. Se il comando df -h mostra che /mnt, ad esempio, sta utilizzando più del 90% di spazio su disco, controlla quali directory o file hanno un utilizzo elevato.

Esegui il seguente comando sul nodo principale per visualizzare le prime 10 directory che utilizzano la maggior parte dello spazio su disco:

cd /mnt
sudo du -hsx * | sort -rh | head -10

Se la directory /mnt/hdfs ha un utilizzo elevato, controlla l'utilizzo di HDFS e rimuovi tutti i file non necessari, come i file di log. La riduzione del periodo di conservazione aiuta a pulire automaticamente i file di log da HDFS.

hdfs dfsadmin -report
hadoop fs -du -s -h /path/to/dir

Riduci il periodo di conservazione degli eventi Spark e dei log dei container YARN

Una causa comune di utilizzo di HDFS è la directory /var/log. La directory /var/log è dove vengono archiviati i file di registro come i registri degli eventi Spark e i log dei contenitori YARN. Puoi modificare il periodo di conservazione di questi file per risparmiare spazio.

Il seguente comando di esempio visualizza l'utilizzo di /var/log/spark.

Nota: /var/log/spark è la directory predefinita del log degli eventi di Spark.

hadoop fs -du -s -h /var/log/spark

Riduci il periodo di conservazione predefinito per i file della cronologia dei lavori di Spark

Per impostazione predefinita, i file della cronologia dei lavori di Spark si trovano in /var/log/spark/apps. Quando viene eseguito lo strumento di pulizia della cronologia del file system, Spark elimina i file della cronologia dei lavori più vecchi di sette giorni. Per ridurre il periodo di conservazione predefinito, procedi come segue:

Su un cluster in esecuzione:

  1. Connettiti al nodo primario tramite SSH.

  2. Aggiungere o aggiornare i seguenti valori in /etc/spark/conf/spark-defaults.conf. La seguente configurazione esegue il pulitore ogni 12 ore. La configurazione cancella i file che hanno più di 1 giorno. Puoi personalizzare questo periodo di tempo per il tuo caso d'uso individuale nei parametri spark.history.fs.cleaner.internval e spark.history.fs.cleaner.maxAge.

------
spark.history.fs.cleaner.enabled true
spark.history.fs.cleaner.interval 12h
spark.history.fs.cleaner.maxAge 1d
------
  1. Riavvia Spark History Server.

Durante il lancio del cluster:

Usa la seguente configurazione. Puoi personalizzare il periodo di tempo per il tuo caso d'uso individuale nei parametri spark.history.fs.cleaner.internval e spark.history.fs.cleaner.maxAge

{
"Classification": "spark-defaults",
"Properties": {
"spark.history.fs.cleaner.enabled":"true",
"spark.history.fs.cleaner.interval":"12h",
"spark.history.fs.cleaner.maxAge":"1d"
   }
}

Per ulteriori informazioni su questi parametri, consulta Monitoraggio e strumentazione nella documentazione di Spark.

Ridurre il periodo di conservazione predefinito dei log dei contenitori YARN

I log delle applicazioni Spark, che sono i log dei container YARN per i tuoi job Spark, si trovano in /var/log/hadoop-yarn/apps sul nodo principale. Spark sposta questi log su HDFS al termine dell'esecuzione dell'applicazione. Per impostazione predefinita, YARN conserva i log delle applicazioni su HDFS per 48 ore. Per ridurre il periodo di conservazione:

1.Connettiti ai nodi primario, core o task tramite SSH.

2.Apri il file /etc/hadoop/conf/yarn-site.xml su ogni nodo del tuo cluster Amazon EMR (nodi primario, core e task).

3.Riduci il valore della proprietàyarn.log-aggregation.retain-seconds su tutti i nodi.

4.Riavviare il daemon ResourceManager. Per ulteriori informazioni, consulta Visualizzazione e riavvio di Amazon EMR e dei processi applicativi.

È inoltre possibile ridurre il periodo di conservazione riconfigurando il cluster. Per ulteriori informazioni, vedere Riconfigurazione di un gruppo di istanze in un cluster in esecuzione.

Ridurre l'utilizzo di /mnt/yarn

Se la directory /mnt/yarn è molto utilizzata, regola la conservazione della cache dell'utente o ridimensiona i volumi EBS sul nodo. Per ulteriori informazioni, consulta Come posso impedire che la cache utente di un processo Hadoop o Spark occupi troppo spazio su disco in Amazon EMR?

Ridimensiona il cluster o scala Amazon EMR

Aggiungi altri nodi principali per mitigare i problemi di spazio HDFS. Inoltre, aggiungi uno qualsiasi dei nodi principali o attività se le directory diverse dalle directory HDFS si stanno esaurendo. Per ulteriori informazioni, vedere Scaling Cluster Resources.

È inoltre possibile estendere i volumi EBS nei nodi esistenti o utilizzare uno script di ridimensionamento dinamico. Per ulteriori informazioni, consulta quanto segue:


Informazioni correlate

Configurazione dell'hardware e della rete del cluster

Configurazione HDFS

Lavora con sistemi di archiviazione e file

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa