Come utilizzare il file system
L'accesso al file system e la sua gestione da parte degli utenti può avvenire in due modi:
- tramite la shell dei comandi;
- tramite la Web API.
Nel primo caso, si utilizza la shell di Hadoop (di cui parleremo in seguito) per lanciare dei comandi nel formato hadoop nome-comando
. Nel secondo caso invece, si utilizza un URL nel formato seguente: http://HOST:HTTP_PORT/webhdfs/v1/PATH?op=OPERATION
dove:
Valore | Descrizione |
---|---|
HOST | E' l'indirizzo del server. |
HTTP_PORT | E' la porta. |
PATH | E' il percorso di un file o cartella; i percorsi dei file in HDFS sono preceduti da hdfs://namenode dove namenode è l'indirizzo IP del NameNode. |
OPERATION | E' l'operazione da compiere che corrisponde a una delle operazioni a carico del file system (ad esempio OPEN , APPEND , CREATE ). |
I comandi possono essere lanciati sia con la sintassi hdfs dfs -opzione
sia con la sintassi hadoop fs -opzione
. Di seguito l'elenco dei comandi HDFS:
Comando | Descrizione | Esempio |
---|---|---|
cat | Copia i file specificati sullo standard output | hdfs dfs -cat hdfs://namenode/user/hadoop/file |
get | Copia un file da HDFS al file system locale | hdfs dfs -get hdfs://namenode/user/hadoop/file file-locale |
put | Copia un file dal file system locale ad HDFS | hdfs dfs -get file-locale hdfs://namenode/user/hadoop/file |
ls | Restituisce informazioni su file e directory | hdfs dfs -get file-locale hdfs://namenode/data/test |
mkdir | Crea una cartella nel percorso indicato | hdfs dfs -mkdir hdfs://namenode/data/test-folder |
rm | Elimina cartelle e file specificati | hdfs dfs -rm hdfs://namenode/data/test-folder |
rmr | rm in versione ricorsiva |
hdfs dfs -rmr file-locale hdfs://namenode/data/test |
copyFromLocal | Equivalente a put ma si limita solo ai file locali |
hdfs dfs -copyFromLocal file-locale hdfs://namenode/data/test |
copyToLocal | Equivalente a get ma si limita solo ai file locali |
hdfs dfs -copyToLocal hdfs://namenode/data/test file-locale |
count | Restituisce il conteggio di directory e file contenuti nel percorso indicato. Il formato di ritorno contiene 3 colonne: DIR_COUNT , FILE_COUNT , CONTENT_SIZE FILE_NAME |
hdfs dfs -count hdfs://namenode/data/test |
La shell di Hadoop
Oltre ai comandi di HDFS, la shell di Hadoop consente l'accesso a una serie di altri comandi, attraverso la seguente sintassi: hadoop [--config confdir] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]
dove:
Valore | Descrizione |
---|---|
--config |
Consente di specificare una cartella di configurazione diversa da quella di default. |
COMMAND |
E' il nome del comando da lanciare. |
GENERIC_OPTIONS |
Sono parametri che possono essere utilizzate per ciascuno dei comandi. |
COMMAND_OPTIONS |
Sono parametri specifici del comando. |
File di configurazione
La configurazione di Hadoop si concentra in tre file principali, elencati di seguito e che utilizzeremo durante la fase di installazione/configurazione di Hadoop
File | Descrizione |
---|---|
core-site.xml |
Contiene le informazioni generali quali il nome del file system, la cartella che contiene i checkpoint e altre proprietà relative ai checkpoint. |
hdfs-site.xml |
Contiene informazioni su dove viene salvata la tabella dei nomi, sull'abilitazione dei webhdfs, sulla directory dei dati, sull'uso o meno della security e sull'indirizzo del NameNode secondario. |
mapred-site.xml |
Questo file contiene le configurazioni riguardanti MapReduce, come, per esempio, la directory di sistema o l'indirizzo del JobTracker. |
Fino ad ora si è parlato in particolare di HDFS e di come esso metta a disposizione gli strumenti per l'accesso ai dati, ma la loro elaborazione avviene tramite la componente MapReduce il cui funzionamento verrà descritto nei prossimi capitoli.