Пакет Snakebite Python для Hadoop HDFS

Опубликовано: 18 Февраля, 2022

Предварительные требования: Hadoop и HDFS

Snakebite - очень популярный пакет Python, который позволяет пользователям получать доступ к HDFS с помощью какой-либо программы с приложением Python. Пакет Snakebite Python разработан Spotify. Snakebite также предоставляет клиентскую библиотеку Python. Сообщения protobuf используются клиентской библиотекой snakebite для прямого взаимодействия с NameNode, в котором хранятся все метаданные. Все права доступа к файлам, журналы, место, где создаются блоки данных, относятся к метаданным. Интерфейс командной строки, то есть интерфейс командной строки, также доступен в этом пакете snakebite python, который основан на клиентской библиотеке.

Давайте обсудим, как установить и настроить пакет snakebite для HDFS.

Требование:

  • Python 2 и python-protobuf 2.4.1 или выше требуются для snakebite.

Библиотеку snakebite можно легко установить с помощью pip .

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

У нас уже есть укус змеи, поэтому требование выполнено.

Клиентская библиотека

Клиентская библиотека построена с использованием Python и использует протокол Hadoop RPC и сообщения protobuf для связи с NameNode, который обрабатывает все метаданные кластера. С помощью этой клиентской библиотеки приложения Python взаимодействуют напрямую с HDFS, то есть с распределенной файловой системой Hadoop, без подключения к dfs hdfs с помощью системный вызов.

Давайте напишем одну простую программу на Python, чтобы понять, как работает пакет python snakebite.

Задача: составить список всего содержимого корневого каталога HDFS с помощью клиентской библиотеки Snakebite.

Шаг 1. Создайте файл python с именем list_down_root_dir.py в желаемом месте в системе.

 cd Documents / # Изменение каталога на документы (вы можете выбрать в соответствии с вашими требованиями)

трогать list_down_root_dir.py  Команда # touch используется для создания файла в среде Linux. 

Step2: Write the below code in the list_down_root_dir.py python file.

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

Описание метода Client ():

Метод Client () может принимать все перечисленные ниже аргументы:

  • host (строка): IP-адрес NameNode.
  • port (int): RPC-порт Namenode.

Мы можем проверить хост и порт по умолчанию в файле core-site.xml. Мы также можем настроить его в соответствии с нашими потребностями.

  • hadoop_version (int): версия протокола Hadoop (по умолчанию: 9)
  • use_trash (логическое значение): использовать корзину при удалении файлов.
  • Effective_use (строка): эффективный пользователь для операций HDFS (пользователь по умолчанию - текущий пользователь).

Шаг 3: Запустите Hadoop Daemon с помощью приведенной ниже команды .

 start-dfs.sh // запускаем ваш namenode datanode и вторичный namenode

start-yarn.sh // запускаем Resourcemanager и nodemanager

Шаг 4: Запустите файл list_down_root_dir.py и посмотрите на результат.

 python list_down_root_dir.py

На изображении выше вы можете увидеть весь контент, доступный в корневом каталоге моей HDFS.

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.