Fornisce lo stato dei demoni che eseguono il cluster Hadoop. Fornisce l'output che menziona lo stato di namenode, datanode, secondario namenode, Jobtracker e Task tracker.

Step-1. Fare clic su stop-all.sh e quindi su start-all.sh OPPURE

Step-2. Scrivi sudo hdfs (premi invio), su-hdfs (premi invio), /etc/init.d/ha (premi invio) e poi /etc/init.d/hadoop-0.20-namenode start (premi invio).

Le tre modalità in cui è possibile eseguire Hadoop sono:

  1. modalità autonoma (locale)
  2. Modalità pseudo-distribuita
  3. Modalità completamente distribuita

/etc/init.d specifica dove sono posizionati i daemon (servizi) o per vedere lo stato di questi daemon. È molto specifico per LINUX e non ha niente a che fare con Hadoop.

Non può far parte del cluster Hadoop.

Quando Namenode è inattivo, il tuo cluster è disattivato, questo perché Namenode è l'unico punto di errore in HDFS.

I Big Data non sono altro che un assortimento di dati così grandi e complessi che diventa molto noioso catturarli, archiviarli, elaborarli, recuperarli e analizzarli con l'aiuto di strumenti di gestione del database a disposizione o tecniche di elaborazione dati tradizionali.

le tre caratteristiche dei Big Data sono:

 

Volume - Facebook genera oltre 500 terabyte di dati al giorno.

Velocity - Analizzando 2 milioni di record ogni giorno per identificare il motivo delle perdite.

Variety - immagini, audio, video, dati dei sensori, file di registro, ecc. Veridicità: pregiudizi, rumore e anomalie nei dati

Un'analisi efficace dei Big Data fornisce molti vantaggi aziendali in quanto le organizzazioni impareranno su quali aree concentrarsi e quali sono meno importanti. L'analisi dei big data fornisce alcuni primi indicatori chiave che possono impedire all'azienda un'enorme perdita o aiutare a cogliere una grande opportunità a mani aperte! Un'analisi precisa dei Big Data aiuta nel processo decisionale! Ad esempio, oggigiorno le persone fanno molto affidamento su Facebook e Twitter prima di acquistare qualsiasi prodotto o servizio. Tutto grazie all'esplosione dei Big Data.

Ogni giorno una grande quantità di dati non strutturati viene scaricata nelle nostre macchine. La sfida principale non è archiviare grandi set di dati nei nostri sistemi, ma recuperare e analizzare i big data nelle organizzazioni, anch'essi dati presenti in macchine diverse in luoghi diversi. In questa situazione nasce una necessità per Hadoop. Hadoop ha la capacità di analizzare i dati presenti in macchine diverse in luoghi diversi molto rapidamente e in modo molto conveniente. Utilizza il concetto di MapReduce che gli consente di dividere la query in piccole parti e di elaborarle in parallelo. Questo è anche noto come calcolo parallelo. Il seguente collegamento  Perché Hadoop  fornisce una spiegazione dettagliata del motivo per cui Hadoop sta guadagnando così tanta popolarità!

L'RDBMS tradizionale viene utilizzato per i sistemi transazionali per segnalare e archiviare i dati, mentre Hadoop è un approccio per archiviare enormi quantità di dati nel file system distribuito ed elaborarli. RDBMS sarà utile quando vuoi cercare un record da Big Data, mentre Hadoop sarà utile quando vuoi Big Data in un colpo ed eseguire analisi su quello in seguito

Supponiamo di avere un file memorizzato in un sistema e a causa di qualche problema tecnico quel file viene distrutto. Quindi non c'è alcuna possibilità di recuperare i dati presenti in quel file. Per evitare tali situazioni, Hadoop ha introdotto la funzionalità di tolleranza agli errori in HDFS. In Hadoop, quando archiviamo un file, viene replicato automaticamente anche in altre due posizioni. Quindi, anche se uno o due dei sistemi crollano, il file è ancora disponibile sul terzo sistema.

HDFS funziona con hardware comune (sistemi con configurazioni medie) che ha alte probabilità di andare in crash in qualsiasi momento. Pertanto, per rendere l'intero sistema altamente tollerante ai guasti, HDFS replica e archivia i dati in luoghi diversi. Tutti i dati su HDFS vengono archiviati in almeno 3 posizioni diverse. Quindi, anche se uno di essi è danneggiato e l'altro non è disponibile per un po 'di tempo per qualsiasi motivo, è possibile accedere ai dati dal terzo. Quindi, non c'è possibilità di perdere i dati. Questo fattore di replica ci aiuta a ottenere la funzionalità di Hadoop chiamata Fault Tolerant.

No, i calcoli verranno eseguiti solo sui dati originali. Il nodo master saprà quale nodo ha esattamente quei dati particolari. Nel caso in cui, se uno dei nodi non risponde, si presume che non sia riuscito. Solo allora, il calcolo richiesto verrà eseguito sulla seconda replica.

Namenode è il nodo master su cui viene eseguito il job tracker e consiste nei metadati. Mantiene e gestisce i blocchi presenti sui datanode. È una macchina ad alta disponibilità e un singolo punto di errore in HDFS.

No. Namenode non può mai essere un hardware comune perché l'intero HDFS si basa su di esso. È l'unico punto di errore in HDFS. Namenode deve essere una macchina ad alta disponibilità.

I codici dati sono gli schiavi che vengono distribuiti su ciascuna macchina e forniscono l'archiviazione effettiva. Questi sono responsabili della gestione delle richieste di lettura e scrittura per i client.

HDFS è più adatto per grandi quantità di set di dati in un singolo file rispetto a piccole quantità di dati distribuiti su più file. Questo perché Namenode è un sistema ad alte prestazioni molto costoso, quindi non è prudente occupare lo spazio nel Namenode con una quantità non necessaria di metadati generati per più file di piccole dimensioni. Quindi, quando c'è una grande quantità di dati in un singolo file, il nodo del nome occuperà meno spazio. Quindi, per ottenere prestazioni ottimizzate, HDFS supporta set di dati di grandi dimensioni invece di più file di piccole dimensioni.

Job tracker è un demone che viene eseguito su un namenode per inviare e tenere traccia dei lavori MapReduce in Hadoop. Assegna le attività a diversi tracker di attività. In un cluster Hadoop, ci sarà solo un job tracker ma molti task tracker. È l'unico punto di errore per Hadoop e MapReduce Service. Se il job tracker si interrompe, tutti i lavori in esecuzione vengono interrotti. Riceve l'heartbeat dal task tracker in base al quale Job tracker decide se l'attività assegnata è completata o meno.

Task tracker è anche un demone che gira su datanode. I Task Tracker gestiscono l'esecuzione di singole attività sul nodo slave. Quando un cliente invia un lavoro, il job tracker inizializzerà il lavoro e dividerà il lavoro e lo assegnerà a diversi task tracker per eseguire le attività di MapReduce. Durante l'esecuzione di questa azione, il task tracker comunicherà simultaneamente con il job tracker inviando heartbeat. Se il job tracker non riceve l'heartbeat dal task tracker entro il tempo specificato, presumerà che il task tracker si sia arrestato in modo anomalo e assegnerà tale attività a un altro task tracker nel cluster.

Un battito cardiaco è un segnale che indica che è vivo. Un datanode invia il battito cardiaco a Namenode e il task tracker invierà il suo battito cardiaco al job tracker. Se il Namenode o il job tracker non ricevono il battito cardiaco, decideranno che c'è qualche problema nel datanode o che il task tracker non è in grado di eseguire l'attività assegnata.

Un "blocco" è la quantità minima di dati che possono essere letti o scritti. In HDFS, la dimensione del blocco predefinita è 64 MB rispetto alla dimensione del blocco di 8192 byte in Unix / Linux. I file in HDFS sono suddivisi in blocchi delle dimensioni di un blocco, che vengono archiviati come unità indipendenti. I blocchi HDFS sono grandi rispetto ai blocchi del disco, in particolare per ridurre al minimo il costo delle ricerche. Se un particolare file è di 50 MB, il blocco HDFS consumerà ancora 64 MB come dimensione predefinita? No, per niente! 64 mb è solo un'unità in cui verranno memorizzati i dati. In questa situazione particolare, solo 50 MB verranno consumati da un blocco HDFS e 14 MB saranno liberi di memorizzare qualcos'altro. È il MasterNode che esegue l'allocazione dei dati in modo efficiente.

Un file può essere più grande di qualsiasi singolo disco nella rete. Non c'è nulla che richieda che i blocchi di un file siano archiviati sullo stesso disco, quindi possono sfruttare qualsiasi disco nel cluster. Rendere l'unità di astrazione un blocco piuttosto che un file semplifica il sottosistema di archiviazione. I blocchi forniscono tolleranza agli errori e disponibilità. Per garantire la protezione da blocchi danneggiati e guasti del disco e della macchina, ogni blocco viene replicato su un numero limitato di macchine fisicamente separate (in genere tre). Se un blocco diventa non disponibile, una copia può essere letta da un'altra posizione in modo trasparente per il cliente?

Hadoop ha il suo modo di indicizzare. A seconda della dimensione del blocco, una volta archiviati i dati, HDFS continuerà a memorizzare l'ultima parte dei dati che dirà dove sarà la parte successiva dei dati.

Sì, il job tracker e il task tracker sono presenti su macchine diverse. Il motivo è che il job tracker è un singolo punto di errore per il servizio Hadoop MapReduce. Se si interrompe, tutti i lavori in esecuzione vengono interrotti.

La modalità di comunicazione è SSH.

Rack è un'area di archiviazione con tutti i datanode messi insieme. Questi codici dati possono essere fisicamente situati in luoghi diversi. Rack è una raccolta fisica di codici dati archiviati in un'unica posizione. Possono esserci più rack in un'unica posizione.

Il Namenode secondario legge costantemente i dati dalla RAM del Namenode e li scrive nel disco rigido o nel file system. Non è un sostituto del Namenode, quindi se il Namenode fallisce, l'intero sistema Hadoop si arresta.

Namenode prende l'input e lo divide in parti e le assegna ai nodi di dati. Questi codici dati elaborano le attività assegnate loro e creano una coppia chiave-valore e restituiscono l'output intermedio al Reducer. Il riduttore raccoglie queste coppie di valori chiave di tutti i codici dati e le combina e genera l'output finale.

Tramite il programma mapreduce il file può essere letto suddividendone i blocchi durante la lettura. Ma durante la scrittura poiché i valori in entrata non sono ancora noti al sistema, mapreduce non può essere applicato e non è possibile alcuna scrittura parallela.

Usa il comando "-distcp" per copiare,

hadoop fs -setrep -w 2 apache_hadoop / sample.txt

La consapevolezza del rack è il modo in cui il namenode decide come posizionare i blocchi in base alle definizioni del rack Hadoop cercherà di ridurre al minimo il traffico di rete tra i codici dati all'interno dello stesso rack e contatterà i rack remoti solo se necessario. Il namenode è in grado di controllarlo grazie alla consapevolezza del rack.

core-default.xml

hadoop dfsadmin -report

In questo caso non è necessario arrestare e / o riavviare l'intero cluster.

Innanzitutto, aggiungi il nome DNS del nuovo nodo al file conf / slaves sul nodo master.

Quindi accedi al nuovo nodo slave ed esegui -

$ cd percorso / a / hadoop

$ bin / hadoop-daemon.sh avvia datanode

$ bin / hadoop-daemon.sh avvia tasktracker

quindi issuehadoop dfsadmin -refreshNodes e hadoop mradmin -refreshNodes in modo che NameNode e JobTracker conoscano il nodo aggiuntivo che è stato aggiunto.

Lavoro Hadoop: uccidi jobid

No. Durante la modalità provvisoria la replica dei blocchi è vietata. Il nodo nome attende quando tutti o la maggior parte dei nodi di dati segnalano i propri blocchi.

Un file apparirà nello spazio dei nomi non appena viene creato. Se un writer sta scrivendo su un file e un altro client rinomina il file stesso o uno dei componenti del percorso, il writer originale riceverà un'eccezione IOException quando termina la scrittura nel blocco corrente o quando chiude il file.

Hadoop offre la funzione di disattivazione per ritirare un set di nodi di dati esistenti. I nodi da ritirare devono essere inclusi nel  file di esclusione e il nome del file di esclusione deve essere specificato come parametro di configurazione dfs.hosts.exclude.

Il processo di rimozione può essere terminato in qualsiasi momento modificando la configurazione o i file di esclusione e ripetendo il file -refreshNodes comando

Sì. Ad esempio, per elencare tutti i file che iniziano con la lettera a, potresti usare il comando ls con il carattere jolly * & minu;

hdfs dfs –ls a*

HDFS supporta solo scritture esclusive.

Quando il primo client contatta il nome-nodo per aprire il file in scrittura, il nome-nodo concede un contratto di locazione al client per creare questo file. Quando il secondo client tenta di aprire lo stesso file per la scrittura, il nome-nodo vedrà che l'affitto per il file è già stato concesso a un altro client e rifiuterà la richiesta di apertura per il secondo client

Il namenode non ha DataNode disponibili.

Il Combiner è un processo di "mini-riduzione" che opera solo sui dati generati da un mappatore. Il Combiner riceverà come input tutti i dati emessi dalle istanze del Mapper su un dato nodo. L'output del Combiner viene quindi inviato ai Reducers, invece dell'output dei Mapper

Hadoop farà 5 split come segue:

  • - 1 divisione per file 64K
  • - 2 suddivisioni per file da 65 MB
  • - 2 suddivisioni per file da 127 MB

Riavvia nuovamente l'attività su un altro TaskTracker e solo se l'attività fallisce per più di quattro volte (l'impostazione predefinita e può essere modificata) interromperà il lavoro.

HDFS non è bravo a gestire un gran numero di piccoli file. Perché ogni file, directory e blocco in HDFS è rappresentato come un oggetto nella memoria del namenode, ognuno dei quali occupa circa 150 byte Quindi 10 milioni di file, ciascuno utilizzando un blocco, utilizzerebbero circa 3 gigabyte di memoria. quando andiamo per un miliardo di file il requisito di memoria in namenode non può essere soddisfatto.

Se un nodo sembra funzionare lentamente, il nodo master può eseguire in modo ridondante un'altra istanza della stessa attività e verrà eseguito il primo output. Questo processo è chiamato esecuzione speculativa.

Sì, tramite tecnologie come Apache Kafka, Apache Flume e Apache Spark è possibile eseguire streaming su larga scala.

Man mano che vengono aggiunti sempre più file, il namenode crea registri di modifica di grandi dimensioni. Ciò può ritardare sostanzialmente l'avvio di NameNode poiché NameNode riapplica tutte le modifiche. Il checkpoint è un processo che prende una fsimage e modifica il log e le compatta in una nuova fsimage. In questo modo, invece di riprodurre un registro delle modifiche potenzialmente illimitato, NameNode può caricare lo stato in memoria finale direttamente da fsimage. Questa è un'operazione molto più efficiente e riduce il tempo di avvio di NameNode.