Hadoop non esegue il bilanciamento del livello di blocco per impostazione predefinita. Esistono alcuni strumenti che è possibile utilizzare per eseguire manualmente il bilanciamento in Hadoop, ovvero https://hadoop.apache.org/docs/r2.4.1/hadoop-project-dist/hadoop-common/CommandsManual.html#balancer. Si noti che il bilanciamento di HDFS è in realtà piuttosto costoso se si ha un piccolo numero di nodi completamente vuoti o nuovi che sono appena stati aggiunti a un cluster altrimenti completo, e la mia esperienza con esso, è che fa un buon lavoro di bilanciamento dei blocchi HDFS . Eseguendo il bilanciamento più volte è possibile migliorare il bilanciamento generale. Ci sono anche alcune implementazioni alternative che possono fare un lavoro migliore di bilanciamento rispetto a quello integrato in Hadoop.
È possibile controllare il saldo dei blocchi dall'interfaccia utente di NameNode HDFS se si fa clic sul collegamento "Nodi in diretta". La colonna "Pool di blocchi usati" è la colonna utile per questo scopo. Se si nota un'alta varianza nella percentuale di blocchi utilizzati sulle varie macchine, potrebbe essere necessario riequilibrare il cluster HDFS.
L'balancer_switch
interessa solo il bilanciamento del server delle regioni. HBase bilancia automaticamente le regioni del cluster per impostazione predefinita, ma è possibile eseguire manualmente balancer
in qualsiasi momento dallo hbase shell
.
È possibile controllare il bilanciamento della regione dalla pagina principale dell'interfaccia utente principale di HBase nella sezione "Server regionali" nella colonna "Carica", esiste un valore denominato "numeroOfOnlineRegions". In generale, HBase fa un buon lavoro nel mantenere questo equilibrio. Ho visto solo poche volte quando ho inizialmente creato tabelle che l'algoritmo di bilanciamento predefinito genera un insieme di regioni distorto. Indipendentemente da ciò, il bilanciamento della regione è in realtà abbastanza economico e può essere fatto abbastanza rapidamente. Eseguirlo una volta è in genere sufficiente per entrare in uno stato molto equilibrato.
Qual è il tempo approssimativo entro il quale HBase incorpora il nuovo nodo? –
Il nuovo nodo dovrebbe essere aggiunto al cluster quasi immediatamente. Tuttavia, non inizierà realmente a servire le richieste fino a quando le regioni non verranno spostate su di esse. Il bilanciamento HBase è controllato da 'hbase.balancer.period' e il valore predefinito è 5 minuti. Puoi anche invocarlo a mano nella shell HBase. –