Вопрос по – Домашний каталог HDFS

4

Я настроил многопользовательский кластер Hadoop с одним узлом. В моем кластере есть администратор, который отвечает за работу кластера (суперпользователь). Всем остальным пользователям выделяется каталог hdfs, например / home / xyz, где xyz - это имя пользователя.

В Unix мы можем изменить домашний каталог по умолчанию для пользователя в / etc / passwd. И по умолчанию целевой каталог для пользователя является домашним каталогом.

Как мне сделать это в hadoop для файловой системы hdfs. Я хочу, например, если пользователь вводит: $ hadoop dfs -ls в приглашении Unix. Он должен перечислить содержимое домашнего каталога, выделенного мной.

Кроме того, каталоги hdfs создаются суперпользователем, который запускает кластер (hadoop superuser, а не root unix), а затем передает права собственности конкретному пользователю.

Ваш Ответ

1   ответ
7

Я не уверен, что это то, что можно настроить - источник для DistributedFileSystem (строка 150) имеет вызов getHomeDirectory, который кажется жестко закодированным:

@Override
public Path getHomeDirectory() {
  return makeQualified(new Path("/user/" + dfs.ugi.getShortUserName()));
}

У вас есть два возможных варианта, если вы хотите изменить это:

Отправьте билет в hadoop с просьбой о новой функции - Смотрите эту ссылку Изменить исходный код самостоятельно и перестроить + перераспределить jar-ядро hadoop по всему кластеру (просто в псевдокластере с одним узлом)
Привет, Крис, классное наблюдение! Я попытаюсь восстановить исходный код, но мне было просто интересно, нужно ли мне внести одно изменение, как вы упомянули, или есть какие-то другие функции, в которых мне может потребоваться изменить его. Tapan Avasthi

Похожие вопросы