Установка fs.default.name в core-site.xml Устанавливает HDFS в безопасный режим

Я установил дистрибутив Cloudera CDH4 на одном компьютере в псевдораспределенном режиме и успешно проверил, что он работает правильно (например, может запускать программы MapReduce, вставлять данные на сервер Hive и т. Д.). Однако, если я случайноcore-site.xml файл, чтобы иметьfs.default.name установить имя машины, а неlocalhost и перезапустите службу NameNode, HDFS перейдет в безопасный режим.

До сменыfs.default.nameЯ запустил следующее, чтобы проверить состояние HDFS:

$ hadoop dfsadmin -report
...
Configured Capacity: 18503614464 (17.23 GB)
Present Capacity: 13794557952 (12.85 GB)
DFS Remaining: 13790785536 (12.84 GB)
DFS Used: 3772416 (3.60 MB)
DFS Used%: 0.03%
Under replicated blocks: 2
Blocks with corrupt replicas: 0
Missing blocks: 0

Затем я сделал модификациюcore-site.xml (с именем машиныhadoop):


  fs.default.name
  hdfs://hadoop:8020

Я перезапустил службу и перечитал отчет.

$ sudo service hadoop-hdfs-namenode restart
$ hadoop dfsadmin -report
...
Safe mode is ON
Configured Capacity: 0 (0 B)
Present Capacity: 0 (0 B)
DFS Remaining: 0 (0 B)
DFS Used: 0 (0 B)
DFS Used%: NaN%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0

Интересно отметить, что я все еще могу выполнять некоторые команды HDFS. Например, я могу запустить

$ hadoop fs -ls /tmp

Тем не менее, если я пытаюсь прочитать файл с помощьюhadoop fs -cat или попробуйте поместить файл в HDFS, мне сказали, что NameNode находится в безопасном режиме.

$ hadoop fs -put somefile .
put: Cannot create file/user/hadinstall/somefile._COPYING_. Name node is in safe mode.

Причина мне нужнаfs.default.name быть установленным на имя машины, потому что мне нужно общаться с этой машиной через порт 8020 (порт NameNode по умолчанию). Еслиfs.default.name осталосьlocalhostто служба NameNode не будет прослушивать запросы на внешнее соединение.

Я в недоумении относительно того, почему это происходит, и буду признателен за любую помощь.

Ответы на вопрос(2)

Ваш ответ на вопрос