2016-11-27 8 views
1

Я пытаюсь понять Namenode, и я ссылался на онлайн-материал и ссылался на книгу Hadoop: The definitive guide.Какая информация Namenode хранится на жестком диске и в памяти?

Я понимаю, что Namenode имеет такую ​​концепцию, как «edit logs», «fsimage», и я могу видеть следующие файлы в моем Namenode.

==================================================================================================================== ==========================

-rw-rw-r-- 1 vevaan24 vevaan24 1048576 Nov 23 22:53 edits_0000000000000000001-0000000000000000001 
-rw-r--r-- 1 root  root  1048576 Nov 23 23:42 edits_0000000000000000002-0000000000000000002 
-rw-rw-r-- 1 vevaan24 vevaan24 1048576 Nov 24 00:07 edits_0000000000000000003-0000000000000000003 
-rw-rw-r-- 1 vevaan24 vevaan24 1048576 Nov 24 21:03 edits_0000000000000000004-0000000000000000004 
-rw-rw-r-- 1 vevaan24 vevaan24 1048576 Nov 24 22:59 edits_0000000000000000005-0000000000000000005 
-rw-r--r-- 1 root  root  1048576 Nov 24 23:00 edits_0000000000000000006-0000000000000000006 
-rw-rw-r-- 1 vevaan24 vevaan24 1048576 Nov 25 21:15 edits_0000000000000000007-0000000000000000007 
-rw-rw-r-- 1 vevaan24 vevaan24 1048576 Nov 25 21:34 edits_0000000000000000008-0000000000000000008 
-rw-r--r-- 1 root  root  1048576 Nov 26 02:13 edits_inprogress_0000000000000000009 
-rw-rw-r-- 1 vevaan24 vevaan24  355 Nov 25 21:15 fsimage_0000000000000000006 
-rw-rw-r-- 1 vevaan24 vevaan24  62 Nov 25 21:15 fsimage_0000000000000000006.md5 
-rw-r--r-- 1 root  root   355 Nov 26 00:12 fsimage_0000000000000000008 
-rw-r--r-- 1 root  root   62 Nov 26 00:12 fsimage_0000000000000000008.md5 
-rw-r--r-- 1 root  root   2 Nov 26 00:12 seen_txid 
-rw-rw-r-- 1 vevaan24 vevaan24  201 Nov 26 00:12 VERSION 

================= ================================================== ======

Как и ожидалось, я вижу все эти файлы в своем namenode. Однако я не понял эту концепцию, у меня есть следующие вопросы, может ли кто-нибудь помочь мне понять это.

Q1) Что такое файлы fsimage? Почему много файлов fsimage присутствуют?

Q2) Что такое файл edit_000? Почему много файлов edit_000 присутствуют?

Q3) Что такое файлы .md5? Какую цель они служат?

Я также прочитал, что NAMENODE хранит некоторые данные в MEMORY и некоторые данные, хранящиеся в HARD-DISK, но это немного запутывает, чтобы понять, какая информация хранится на жестком диске и что осталось в памяти.

Q4) Имеет ли память Namenode информацию, полученную из fsimage или edit_000 ИЛИ обоих?

Q5) Когда Namenode и Datanode перезапущены, как создаются метаданные (то есть, какой файл хранится в каком datanode, block и т. Д.).

ответ

1

Ok Я пытаюсь объяснить:

EditLog

EditLog является транзакционный журнал, чтобы записывать каждое изменение, которое происходит в файл метаданных системы. Например, создание нового файла, переименование файла и т. Д. Это всегда будет генерировать запись в EditLog.

FsImage

Этот файл содержит все пространство имен файловой системы, в том числе отображение блоков к файлам и файловой системы свойств. Итак, какой файл состоит из блоков. Какие блоки сохраняются там и так далее.

Если вы запустите свой NameNode, Hadoop загрузит полный файл FsImage в вашу память. После этого применяют все транзакции из EditLog к представлению FsImage в памяти и вытесняют эту новую версию в новый FsImage на диске. Это происходит только один раз (при запуске). После этого Hadoop работает только с представлением в памяти. FsImage на вашем жестком диске не тронут.

Некоторые из ваших вопросов

Q1) Почему многие fsimage файлы присутствуют?

Как поясняется, загружается FsImage, EditLog очищается, а новая версия сохраняется.

Q1) Почему много файлов edit_000 присутствуют?

После того, как Hadoop сбросил EditLog и сохранил новую версию FsImage, он запустит новый EditLog. Это называется контрольной точкой в ​​Hadoop

Q3) Что такое файлы .md5? Какую цель они служат?

MD5 - хэш, чтобы проверить, не поврежден ли FsImage.

Q5) Когда Namenode и Datanode перезапущены, как создаются метаданные (то есть, какой файл хранится в каком-то datanode, block и т. Д.).

Информация сохраняется в FsImage.

Я надеюсь, что смогу помочь.

+0

Большое спасибо за ваш ответ, помогли многому понять. У меня все еще есть сомнения в Q5. Я читал в онлайн-материале, что fsimage не хранит информацию о блоках файлов, эта информация поступает из Datanode при ее запуске. Этот момент еще не ясен, не могли бы вы помочь мне понять это? – CuriousMind

+1

Datanode создает так называемый BlockReport при запуске, в котором перечислены все блоки данных, хранящиеся там, и описывается состояние каждого из них. NameNode запрашивает этот отчет при запуске и выгружает его в память. – Daniel

+0

Привет, Даниэль, большое спасибо за ваш ответ. Мои сомнения еще не устранены. Datanode просто имеет данные в виде блоков, но сами по себе не знают, для какого файла они принадлежат. Итак, как Datanode помогает Namenode создавать всю эту информацию? У меня все еще есть сомнения по этому поводу. Не могли бы вы помочь мне понять это? – CuriousMind

 Смежные вопросы

  • Нет связанных вопросов^_^