Paquete Snakebite Python para Hadoop HDFS

Requisito previo: Hadoop y HDFS

Snakebite es un paquete de python muy popular que permite a los usuarios acceder a HDFS usando algún tipo de programa con la aplicación python. El paquete Snakebite Python está desarrollado por Spotify. Snakebite también proporciona una biblioteca cliente de Python. Los mensajes de protobuf son utilizados por la biblioteca del cliente de mordedura de serpiente para comunicarse directamente con el NameNode que almacena todos los metadatos. Todos los permisos de archivo, registros, ubicación donde se crean los bloques de datos, todo se incluye en los metadatos. La CLI, es decir, la interfaz de línea de comandos, también está disponible en este paquete de Python de mordedura de serpiente que se basa en la biblioteca del cliente.

Analicemos cómo instalar y configurar el paquete Snakebite para HDFS.

Requisito:  

  • Se requiere Python 2 y python-protobuf 2.4.1 o superior para la mordedura de serpiente.

La biblioteca de mordedura de serpiente se puede instalar fácilmente con pip .

# Make sure you have pip for python version 2 otherwise you will face error while importing module
pip install snakebite

Ya tenemos mordedura de serpiente por lo que se cumple el requisito.

La biblioteca del cliente

La biblioteca del cliente está construida usando python y usa el protocolo Hadoop RPC y mensajes protobuf para comunicarse con el NameNode que maneja todos los metadatos del clúster. Con la ayuda de esta biblioteca cliente, las aplicaciones de Python se comunican directamente con HDFS, es decir, el sistema de archivos distribuidos de Hadoop, sin establecer ninguna conexión con hdfs dfs mediante una llamada al sistema.

Escribamos un programa de python simple para comprender el funcionamiento del paquete de python de mordedura de serpiente.

Tarea:   Enumere todo el contenido del directorio raíz de HDFS utilizando la biblioteca del cliente Snakebite. 

Paso 1: Cree un archivo python con el nombre list_down_root_dir.py en la ubicación deseada en el sistema.

cd Documents/        # Changing directory to Documents(You can choose as per your requirement)

touchlist_down_root_dir.py    # touch command is used to create file in linux enviournment. 

Paso 2: Escriba el siguiente código en el archivo python list_down_root_dir.py .

Python

# importing the package
from snakebite.client import Client
# the below line create client connection to the HDFS NameNode
client = Client('localhost', 9000)
# the loop iterate in root directory to list all the content 
for x in client.ls(['/']):
    print x

Explicación del método Client():

El método Client() puede aceptar todos los argumentos enumerados a continuación:

  • host (string): dirección IP de NameNode.
  • port(int): puerto RPC de Namenode.

Podemos verificar el host y el puerto predeterminado en el archivo core-site.xml . También podemos configurarlo según nuestro uso.

  • hadoop_version (int): versión del protocolo Hadoop (por defecto es: 9)
  • use_trash (booleano): use la papelera al eliminar los archivos.
  • uso_efectivo (string): usuario efectivo para las operaciones de HDFS (el usuario predeterminado es el usuario actual).

Paso 3: Inicie Hadoop Daemon con el siguiente comando .

start-dfs.sh  // start your namenode datanode and secondary namenode

start-yarn.sh  // start resourcemanager and nodemanager

Paso 4:   Ejecute el archivo list_down_root_dir.py y observe el resultado.

python list_down_root_dir.py

En la imagen de arriba, puede ver todo el contenido que está disponible en el directorio raíz de mi HDFS.

Publicación traducida automáticamente

Artículo escrito por dikshantmalidev y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *