hadoop fs -copyFromLocal localfile.txt cos://remotefile.txt => Не удалось создать /disk2/s3a

Я пытаюсь загрузить файл в облачное хранилище объектов из IBM Analytics Engine:

$ hadoop fs -copyFromLocal LICENSE-2.0.txt \
   cos://xxxxx/LICENSE-2.0.txt

Однако я получаю предупреждения о невозможности создания дисков:

18/01/26 17:47:47 ПРЕДУПРЕЖДЕНИЕ fs.LocalDirAllocator$AllocatorPerContext: не удалось создать /disk1/s3a 18/01/26 17:47:47 WARN fs.LocalDirAllocator$AllocatorPerContext: не удалось создать /disk2/s3a

Обратите внимание, что несмотря на то, что я получаю это предупреждение, файл все еще загружается:

$ hadoop fs -ls cos://xxxxx/LICENSE-2.0.txt

-rw-rw-rw- 1 clsadmin clsadmin 11358 26 января 2018 г. 17:49 cos://xxxxx/LICENSE-2.0.txt

Проблема выглядит так:

$ grep -B2 -C1 'disk' /etc/hadoop/conf/core-site.xml
    <property>
      <name>fs.s3a.buffer.dir</name>
      <value>/disk1/s3a,/disk2/s3a,/tmp/s3a</value>
    </property>

$ ls -lh /disk1 /disk2
ls: cannot access /disk1: No such file or directory
ls: cannot access /disk2: No such file or directory

Каковы последствия этих предупреждений? Папка /tmp/s3a существует, поэтому можем ли мы игнорировать предупреждения об этих других папках?


person Chris Snow    schedule 26.01.2018    source источник
comment
Можете ли вы четко указать, в чем заключается ваш вопрос? например, что вы хотите знать?   -  person roh    schedule 26.01.2018
comment
Хороший улов, Роб! Спасибо!   -  person Chris Snow    schedule 26.01.2018


Ответы (1)


Свойство Hadoop fs.s3a.buffer.dir поддерживает список (значения, разделенные запятыми) и указывает на локальный путь. Когда путь отсутствует, предупреждения появляются, но их можно спокойно игнорировать, поскольку они безвредны. Если та же команда была запущена из узла данных, предупреждение не появится. Независимо от предупреждения, файл будет копируется в хранилище облачных объектов, поэтому не оказывает никакого другого влияния.

Идея иметь несколько значений для fs.s3a.buffer.dir to'/disk1/s3a,/disk2/s3a,/tmp/s3a' заключается в том, что когда задания Hadoop выполняются в кластере с Cloud Object Store, задачи уменьшения карты запланировано на узлах данных, которые имеют дополнительные диски, а именно /disk1 и /disk2, которые имеют большую емкость диска по сравнению с узлами управления.

person padkrish    schedule 29.01.2018