Перейти к основному содержимому

5.3. Загрузка и чтение данных

Работа с Ozone: Загрузка и чтение данных

В Apache Ozone для загрузки и чтения данных используются ключи (keys), которые представляют собой объекты, хранящиеся в бакетах. Ключи могут содержать файлы или данные любого типа. В этом разделе описываются команды для загрузки данных в Ozone и их последующего чтения.


1. Загрузка данных в Ozone

Чтобы загрузить файл или данные в Ozone, необходимо указать, в какой том и бакет они будут сохранены. Используйте команду key put для загрузки данных.

Пример загрузки данных:

bin/ozone sh key put /myvolume/mybucket/mykey localfile.txt
  • /myvolume/mybucket/mykey – Путь, под которым данные будут сохранены в Ozone.
  • localfile.txt – Локальный файл, который будет загружен.

Загрузка данных с указанием репликации:

bin/ozone sh key put /myvolume/mybucket/mykey localfile.txt --replication=2
  • Данная команда загружает файл с указанием двух реплик для повышения отказоустойчивости.

2. Чтение данных из Ozone

Для получения данных, сохранённых в Ozone, используйте команду key get. Она позволяет скачать файл или вывести его содержимое в консоль.

Пример чтения данных в консоль:

bin/ozone sh key get /myvolume/mybucket/mykey

Сохранение данных в локальный файл:

bin/ozone sh key get /myvolume/mybucket/mykey --tofile=downloaded.txt
  • Эта команда загружает данные и сохраняет их в файл downloaded.txt на локальной машине.

3. Просмотр списка объектов в бакете

Чтобы увидеть, какие ключи (объекты) находятся в бакете, используйте команду key list.

bin/ozone sh key list /myvolume/mybucket

4. Обновление и перезапись данных

Если вы хотите обновить содержимое существующего ключа, просто повторно загрузите файл с той же командой key put.

Пример перезаписи данных:

bin/ozone sh key put /myvolume/mybucket/mykey updated_file.txt
  • Содержимое ключа будет заменено новым файлом.

5. Удаление данных из Ozone

Для удаления объекта используйте команду key delete.

Пример удаления ключа:

bin/ozone sh key delete /myvolume/mybucket/mykey

6. Использование версионирования для ключей

Если в бакете включено версионирование, Ozone сохраняет несколько версий ключа.

Включение версионирования:

bin/ozone sh bucket setversioning /myvolume/mybucket --enabled

Просмотр версий ключа:

bin/ozone sh key list --show-versions /myvolume/mybucket

7. Примеры использования

  1. Загрузка и чтение файла:

    echo "Привет, Ozone!" > hello.txt
    bin/ozone sh key put /myvolume/mybucket/greeting hello.txt
    bin/ozone sh key get /myvolume/mybucket/greeting
  2. Сохранение файла на локальный диск:

    bin/ozone sh key get /myvolume/mybucket/greeting --tofile=greeting.txt
  3. Удаление ключа:

    bin/ozone sh key delete /myvolume/mybucket/greeting

8. Обработка больших файлов

Для работы с большими файлами Ozone автоматически разбивает данные на блоки. Запись и чтение таких файлов аналогичны работе с маленькими файлами, но система автоматически обрабатывает фрагментацию и репликацию.

Пример загрузки большого файла:

bin/ozone sh key put /myvolume/mybucket/bigdata large_file.bin

9. Отслеживание состояния загрузки и чтения данных

При загрузке и чтении данных можно использовать логи и команды мониторинга:

  • Проверка состояния узлов DataNode:

    bin/ozone admin datanode list
  • Просмотр контейнеров и их реплик:

    bin/ozone admin container list

Итог

Apache Ozone предоставляет удобные инструменты для загрузки, чтения и управления данными с использованием команд Ozone Shell. Вы можете легко загружать файлы, перезаписывать их, управлять версиями и удалять объекты. Система автоматически обрабатывает большие файлы, обеспечивая их фрагментацию и репликацию для надёжного хранения и отказоустойчивости.