Los 30 comandos de shell de Hadoop HDFS más utilizados

En este tutorial, lo guiaremos a través de los comandos del Sistema de archivos distribuidos de Hadoop (HDFS) que necesitará para administrar archivos en HDFS. El comando HDFS se usa la mayoría de las veces cuando se trabaja con Hadoop File System. Incluye varios comandos tipo shell que interactúan directamente con el sistema de archivos distribuido de Hadoop (HDFS), así como con otros sistemas de archivos compatibles con Hadoop. La mayoría de los comandos se comportan como los correspondientes comandos de Unix. La información de error se envía a stderr y la salida se envía a stdout. Entonces empecemos.
1) Verificación de la versión
Para comprobar la versión de Hadoop.
ubuntu@ubuntu-VirtualBox:~$ hadoop version Hadoop 2.7.3 Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r baa91f7c6bc9cb92be5982de4719c1c8af91ccff Compiled by root on 2016-08-18T01:41Z Compiled with protoc 2.5.0 From source with checksum 2e4ce5f957ea4db193bce3734ff29ff4 This command was run using /home/ubuntu/hadoop-2.7.3/share/hadoop/common/hadoop-common-2.7.3.jar
2) comando list
Enumere todos los archivos / directorios para la ruta de destino de hdfs dada.
ubuntu@ubuntu-VirtualBox:~ $ hdfs dfs -ls / Found 3 items drwxr-xr-x - ubuntu supergroup 0 2016-11-07 01:11 /test drwxr-xr-x - ubuntu supergroup 0 2016-11-07 01:09 /tmp drwxr-xr-x - ubuntu supergroup 0 2016-11-07 01:09 /usr
3) comando df
Muestra el espacio libre en un destino de hdfs determinado
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -df hdfs:/ Filesystem Size Used Available Use% hdfs://master:9000 6206062592 32768 316289024 0%
4) comando de conteo
- Cuente el número de directorios, archivos y bytes en las rutas que coinciden con el patrón de archivo especificado.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -count hdfs:/ 4 0 0 hdfs:///
5) comando fsck
Comando HDFS para verificar el estado del sistema de archivos Hadoop.
ubuntu@ubuntu-VirtualBox:~$ hdfs fsck / Connecting to namenode via http://master:50070/fsck?ugi=ubuntu&path=%2F FSCK started by ubuntu (auth:SIMPLE) from /192.168.1.36 for path / at Mon Nov 07 01:23:54 GMT+05:30 2016 Status: HEALTHY Total size: 0 B Total dirs: 4 Total files: 0 Total symlinks: 0 Total blocks (validated): 0 Minimally replicated blocks: 0 Over-replicated blocks: 0 Under-replicated blocks: 0 Mis-replicated blocks: 0 Default replication factor: 2 Average block replication: 0.0 Corrupt blocks: 0 Missing replicas: 0 Number of data-nodes: 1 Number of racks: 1 FSCK ended at Mon Nov 07 01:23:54 GMT+05:30 2016 in 33 milliseconds The filesystem under path '/' is HEALTHY
6) Comando equilibrador
Ejecute una utilidad de equilibrio de clústeres.
ubuntu@ubuntu-VirtualBox:~$ hdfs balancer 16/11/07 01:26:29 INFO balancer.Balancer: namenodes = [hdfs://master:9000] 16/11/07 01:26:29 INFO balancer.Balancer: parameters = Balancer.Parameters[BalancingPolicy.Node, threshold=10.0, max idle iteration = 5, number of nodes to be excluded = 0, number of nodes to be included = 0] Time Stamp Iteration# Bytes Already Moved Bytes Left To Move Bytes Being Moved 16/11/07 01:26:38 INFO net.NetworkTopology: Adding a new node: /default-rack/192.168.1.36:50010 16/11/07 01:26:38 INFO balancer.Balancer: 0 over-utilized: [] 16/11/07 01:26:38 INFO balancer.Balancer: 0 underutilized: [] The cluster is balanced. Exiting... 7 Nov, 2016 1:26:38 AM 0 0 B 0 B -1 B 7 Nov, 2016 1:26:39 AM Balancing took 13.153 seconds
7) Comando mkdir
Comando HDFS para crear el directorio en HDFS.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -mkdir /hadoop ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -ls / Found 5 items drwxr-xr-x - ubuntu supergroup 0 2016-11-07 01:29 /hadoop drwxr-xr-x - ubuntu supergroup 0 2016-11-07 01:26 /system drwxr-xr-x - ubuntu supergroup 0 2016-11-07 01:11 /test drwxr-xr-x - ubuntu supergroup 0 2016-11-07 01:09 /tmp drwxr-xr-x - ubuntu supergroup 0 2016-11-07 01:09 /usr
8) poner comando
Archivo
Copie el archivo de un solo src o varios srcs del sistema de archivos local al sistema de archivos de destino.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -put test /hadoop ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -ls /hadoop Found 1 items -rw-r--r-- 2 ubuntu supergroup 16 2016-11-07 01:35 /hadoop/test
Directorio
Comando HDFS para copiar el directorio de una sola fuente o múltiples fuentes del sistema de archivos local al sistema de archivos de destino.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -put hello /hadoop/ ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -ls /hadoop Found 2 items drwxr-xr-x - ubuntu supergroup 0 2016-11-07 01:43 /hadoop/hello -rw-r--r-- 2 ubuntu supergroup 16 2016-11-07 01:35 /hadoop/test
9) du Command
Muestra el tamaño de los archivos y directorios contenidos en el directorio dado o el tamaño de un archivo si es solo un archivo.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -du / 59 /hadoop 0 /system 0 /test 0 /tmp 0 /usr
10) comando rm
Comando HDFS para eliminar el archivo de HDFS.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -rm /hadoop/test 16/11/07 01:53:29 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes. Deleted /hadoop/test
11) comando de eliminación
Comando HDFS que vacía la papelera.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -expunge 16/11/07 01:55:54 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes.
12) comando rm -r
Comando HDFS para eliminar todo el directorio y todo su contenido de HDFS.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -rm -r /hadoop/hello 16/11/07 01:58:52 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes. Deleted /hadoop/hello
13) Comando chmod
Cambie los permisos de los archivos.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -chmod 777 /hadoop ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -ls / Found 5 items drwxrwxrwx - ubuntu supergroup 0 2016-11-07 01:58 /hadoop drwxr-xr-x - ubuntu supergroup 0 2016-11-07 01:26 /system drwxr-xr-x - ubuntu supergroup 0 2016-11-07 01:11 /test drwxr-xr-x - ubuntu supergroup 0 2016-11-07 01:09 /tmp drwxr-xr-x - ubuntu supergroup 0 2016-11-07 01:09 /usr
14) obtén el comando
Comando HDFS para copiar archivos de hdfs al sistema de archivos local.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -get /hadoop/test /home/ubuntu/Desktop/ ubuntu@ubuntu-VirtualBox:~$ ls -l /home/ubuntu/Desktop/ total 4 -rw-r--r-- 1 ubuntu ubuntu 16 Nov 8 00:47 test
15) comando de gato
Comando HDFS que copia las rutas de origen a la salida estándar.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -cat /hadoop/test This is a test.
16) comando touchz
HDFS Comando para crear un archivo en HDFS con un tamaño de archivo de 0 bytes.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -touchz /hadoop/sample ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -ls /hadoop Found 2 items -rw-r--r-- 2 ubuntu supergroup 0 2016-11-08 00:57 /hadoop/sample -rw-r--r-- 2 ubuntu supergroup 16 2016-11-08 00:45 /hadoop/test
17) comando de texto
Comando HDFS que toma un archivo fuente y genera el archivo en formato de texto.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -text /hadoop/test This is a test.
18) comando copyFromLocal
Comando HDFS para copiar el archivo del sistema de archivos local a HDFS.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -copyFromLocal /home/ubuntu/new /hadoop ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -ls /hadoop Found 3 items -rw-r--r-- 2 ubuntu supergroup 43 2016-11-08 01:08 /hadoop/new -rw-r--r-- 2 ubuntu supergroup 0 2016-11-08 00:57 /hadoop/sample -rw-r--r-- 2 ubuntu supergroup 16 2016-11-08 00:45 /hadoop/test
19) comando copyToLocal
Similar al comando get, excepto que el destino está restringido a una referencia de archivo local.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -copyToLocal /hadoop/sample /home/ubuntu/ ubuntu@ubuntu-VirtualBox:~$ ls -l s* -rw-r--r-- 1 ubuntu ubuntu 0 Nov 8 01:12 sample -rw-rw-r-- 1 ubuntu ubuntu 102436055 Jul 20 04:47 sqoop-1.99.7-bin-hadoop200.tar.gz
20) Comando mv
Comando HDFS para mover archivos desde el origen al destino. Este comando también permite múltiples fuentes, en cuyo caso el destino debe ser un directorio.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -mv /hadoop/sample /tmp ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -ls /tmp Found 1 items -rw-r--r-- 2 ubuntu supergroup 0 2016-11-08 00:57 /tmp/sample
21) Comando cp
Comando HDFS para copiar archivos desde el origen al destino. Este comando también permite múltiples fuentes, en cuyo caso el destino debe ser un directorio.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -cp /tmp/sample /usr ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -ls /usr Found 1 items -rw-r--r-- 2 ubuntu supergroup 0 2016-11-08 01:22 /usr/sample
22) comando de cola
Muestra el último kilobyte del archivo «nuevo» en la salida estándar.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -tail /hadoop/new This is a new file. Running HDFS commands.
23) comando chown
Comando HDFS para cambiar el propietario de los archivos.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -chown root:root /tmp ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -ls / Found 5 items drwxrwxrwx - ubuntu supergroup 0 2016-11-08 01:17 /hadoop drwxr-xr-x - ubuntu supergroup 0 2016-11-07 01:26 /system drwxr-xr-x - ubuntu supergroup 0 2016-11-07 01:11 /test drwxr-xr-x - root root 0 2016-11-08 01:17 /tmp drwxr-xr-x - ubuntu supergroup 0 2016-11-08 01:22 /usr
24) comando setrep
El factor de replicación predeterminado para un archivo es 3. A continuación, el comando HDFS se usa para cambiar el factor de replicación de un archivo.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -setrep -w 2 /usr/sample Replication 2 set: /usr/sample Waiting for /usr/sample ... done
25) comando distcp
Copiar un directorio de un nodo en el clúster a otro
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -distcp hdfs://namenodeA/apache_hadoop hdfs://namenodeB/hadoop
26) comando de estadísticas
Imprime estadísticas sobre el archivo / directorio en
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -stat "%F %u:%g %b %y %n" /hadoop/test regular file ubuntu:supergroup 16 2016-11-07 19:15:22 test
27) comando getfacl
Muestra las listas de control de acceso (ACL) de archivos y directorios. Si un directorio tiene una ACL predeterminada, getfacl también muestra la ACL predeterminada.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -getfacl /hadoop # file: /hadoop # owner: ubuntu # group: supergroup
28) comando du -s
Muestra un resumen de la longitud de los archivos.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -du -s /hadoop 59 /hadoop
29) comando de suma de comprobación
Devuelve la información de la suma de comprobación de un archivo.
ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -checksum /hadoop/new /hadoop/new MD5-of-0MD5-of-512CRC32C 000002000000000000000000639a5d8ac275be8d0c2b055d75208265
30) comando getmerge
Toma un directorio de origen y un archivo de destino como entrada y concatena archivos en src en el archivo local de destino.
ubuntu@ubuntu-VirtualBox:~$ cat test This is a test. ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -cat /hadoop/new This is a new file. Running HDFS commands. ubuntu@ubuntu-VirtualBox:~$ hdfs dfs -getmerge /hadoop/new test ubuntu@ubuntu-VirtualBox:~$ cat test This is a new file. Running HDFS commands.
Conclusión
Este es el final del blog de HDFS Command, esperamos que haya sido informativo y haya podido ejecutar todos los comandos. Aprendimos a crear, cargar y listar los contenidos en nuestros directorios HDFS. También adquirimos las habilidades para descargar archivos desde HDFS a nuestro sistema de archivos local y exploramos algunas características avanzadas de la administración de archivos HDFS usando la línea de comandos.