Как проверить, существует ли том MapR с помощью Python?

#python #volume #mapr

#python #объем #mapr

Вопрос:

Я борюсь с томами MapR… Я пытаюсь расширить структуру тома, в которой также есть папки. Другими словами, я хочу проверить, существует ли путь к тому, и если нет, то создать его, но я не знаю, как я могу сделать эту проверку. Я не очень хорошо знаком с MapR и томами.

Ответ №1:

Здесь есть несколько ответов. Однако первое, что нужно установить, это то, что для многих целей том в MapR (теперь известный как HPE Ezmeral Data Fabric) выглядит точно так же, как каталог. Это означает, что для многих целей «проверка наличия тома» выглядит просто как «проверка наличия каталога». Это, конечно, тривиально в Python.

Но том MapR обладает некоторыми суперспособностями управления, которых нет у каталогов. Таким образом, вы можете захотеть узнать, существует ли том с желаемой точкой монтирования. Этот код python должен быть примерно таким, какой вам нужен:

 import subprocess
import json
s = subprocess.run(["maprcli", "volume", "list", "-json"], stdout=subprocess.PIPE)
for x in json.loads(s.stdout)['data']:
    if x['mountdir'] == "/user/tdunning":
        print("Found %s mounted at %s" % (x['volumename'], x['mountdir']))
  

Это подойдет для тысяч томов. Однако у некоторых людей миллионы томов, поэтому вам, вероятно, нужно ограничить поиск, используя имя тома на основе некоторого соглашения. Это можно сделать очень похожим образом, как в приведенном выше коде, но вы, вероятно, захотите использовать maprcli volume info -name tdunning.home -json вместо этого команду like .

Смотрите Следующие ссылки для получения дополнительной информации об этих командах:

https://docs.datafabric.hpe.com/62/ReferenceGuide/volume-info.html

https://docs.datafabric.hpe.com/62/ReferenceGuide/volume-list.html