Создание файлов в HDFS с использованием Python Snakebite

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

Hadoop - это популярный фреймворк для больших данных, написанный на Java. Но для работы с Hadoop необязательно использовать Java. Также можно использовать некоторые другие языки программирования, такие как Python, C ++. Мы можем написать код на C ++ для Hadoop, используя каналы API или Hadoop. Каналы Hadoop позволяют отслеживать задачи с помощью сокетов.

Python также можно использовать для написания кода для Hadoop. Snakebite - одна из популярных библиотек, которая используется для установления связи с HDFS. Используя клиентскую библиотеку python, предоставляемую пакетом Snakebite, мы можем легко написать код Python, работающий в HDFS. Он использует сообщения protobuf для прямой связи с NameNode. Клиентская библиотека python напрямую работает с HDFS без системного вызова hdfs dfs .

Предварительное условие: должна быть установлена библиотека Snakebite.

Убедитесь, что Hadoop запущен, в противном случае запустите все демоны с помощью следующей команды.

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

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

Задача: Создать каталоги в HDFS с помощью пакета snakebite с помощью метода mkdir () .

Шаг 1: Создайте файл в вашем локальном каталоге с именем create_directory.py в желаемом месте .

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

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

Step 2: Write the below code in the create_directory.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)
  
# create directories mentioned in mkdir() methods first argument i.e. in List format
for p in client.mkdir(["/demo/demo1", "/demo2"], create_parent=True):
            print p

Mkdir () берет список путей к каталогам, которые мы хотим создать. create_parent = True гарантирует, что если родительский каталог не создан, он должен быть создан первым. В нашем случае сначала будет создан каталог demo, а затем внутри него будет создан demo1.

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

python create_directory.py   // this will create directory"s as mentioned in mkdir() argument.

На изображении выше «результат»: True означает, что мы успешно создали каталог.

Шаг 4: Мы можем проверить, созданы ли каталоги или нет, либо вручную, либо с помощью приведенной ниже команды.

 hdfs dfs -ls / // список всех каталогов в корневой папке

hdfs dfs -ls / demo // список всех каталогов, присутствующих в демонстрационной папке

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

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

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