Я пытаюсь понять 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 и т. Д.).
Большое спасибо за ваш ответ, помогли многому понять. У меня все еще есть сомнения в Q5. Я читал в онлайн-материале, что fsimage не хранит информацию о блоках файлов, эта информация поступает из Datanode при ее запуске. Этот момент еще не ясен, не могли бы вы помочь мне понять это? – CuriousMind
Datanode создает так называемый BlockReport при запуске, в котором перечислены все блоки данных, хранящиеся там, и описывается состояние каждого из них. NameNode запрашивает этот отчет при запуске и выгружает его в память. – Daniel
Привет, Даниэль, большое спасибо за ваш ответ. Мои сомнения еще не устранены. Datanode просто имеет данные в виде блоков, но сами по себе не знают, для какого файла они принадлежат. Итак, как Datanode помогает Namenode создавать всю эту информацию? У меня все еще есть сомнения по этому поводу. Не могли бы вы помочь мне понять это? – CuriousMind