Nejlepší odpověď
Replikační faktor je 3 Ve výchozím nastavení v HDFS . V tomto je jeden původní blok a dvě repliky.
Může to však být Nastavit námi.
Dovolte mi vysvětlit vám, jak to udělat.
Podívejte se, existují dva způsoby, jak to udělat. Jeden je pomocí příkazu a další je přímá změna v hdfs-site.xml soubor.
První je jednoduchý, stačí zadat příkaz následujícím způsobem:
Můžete také změnit faktor replikace na na soubor pomocí prostředí Hadoop FS .
[sawant@localhost ~]$ hadoop fs –setrep –w 3 /my/file
Alternativně můžete změnit faktor replikace všech souborů v adresáři.
[sawant@localhost ~]$ hadoop fs –setrep –w 3 -R /my/dir
jako uvidíte výše uvedený příkaz, stačí nahradit 3 libovolným požadavkem.
Rozumíme druhému …
Otevřete web hdfs soubor .xml . Tento soubor se obvykle nachází ve složce conf / v instalačním adresáři Hadoop. Změňte nebo přidejte následující vlastnost do hdfs-site.xml….
hdfs-site.xml se používá ke konfiguraci HDFS. Změna vlastnosti dfs.replication ve hdfs-site.xml změní výchozí replikaci pro všechny soubory umístěné na HDFS.
Ve výše uvedené vlastnosti dfs.replication stačí nahradit 3 libovolným požadavkem.
Děkujeme !!
Odpověď
Skutečným důvodem pro výběr replikace tří je to, že je to nejmenší číslo, které umožňuje vysoce spolehlivý design. Pojďme se podívat na skutečnou analýzu proč.
Vezměte v úvahu, že pokud dojde k hardwarové chybě hardwaru, která ukládá každou repliku dat, přijdete o data. U moderních rotujících disků je míra selhání relativně jednoduchá a je zhruba 5\% ročně (vaše čísla mohou být vyšší nebo nižší v závislosti na metodě odhadu a zakoupeném hardwaru). Pokud jsou všechna selhání nezávislá (nejsou, opravdu, protože máte špatné dávky), znamená to, že jednotlivé disky selhávají rychlostí asi 1,6e-9 poruch za sekundu a poruchy by měly být distribuovány podle Poissonova rozdělení. Pokud nepředpokládáte žádnou replikaci, tisíc disků by mělo mít ztrátu dat přibližně 1000krát vyšší než tato rychlost.
Tato čísla můžeme použít k výpočtu něčeho, co se nazývá střední doba do ztráty dat. V případě jednoho disku máte 95\% šanci na uchování dat po roce, ale v případě tisíce disků máte zanedbatelnou šanci vyhnout se ztrátě dat po roce. Upřímně si nemyslím, že i případ jednoho disku je přijatelný.
Takže replikujeme data.
Tisíc případů disku bude mít asi 50 poruch za rok, což se promítne do ztráta disku každý týden nebo tak. To neznamená, že k tomu dojde v přesných týdenních intervalech. Znamená to jen, že průměrná doba mezi poruchami disku bude asi týden. Po selhání disku budeme muset data znovu replikovat, protože nechceme systém, který se časem degraduje. Pokud můžeme znovu replikovat data před selháním dalšího disku, který obsahuje naše data, náš systém se vyhne ztrátě dat v důsledku prvního selhání.
Trik však spočívá v tom, že doba mezi jednotlivými disky selhání se bude snižovat s rostoucí velikostí systémů. Pokud věci navrhneme dobře, čas re-replikace se * sníží * ve stejném poměru. Doba obnovy bude záviset na počtu disků na stroji a šířce pásma sítě mezi stroji.
To znamená, že můžeme snadno odhadnout střední dobu do ztráty dat. U dvou kopií musíme vypočítat míru ztráty disku a poté vypočítat pravděpodobnost další ztráty disku během doby obnovy této ztráty. U dvou kopií to musíme rozšířit na případ, kdy během obnovovací doby první jednotky zemřou dva disky. To je ještě složitější, když prokládáte disky a máte fantastické strategie obnovy, které se snaží zachovat normální provoz po prvním selhání, ale které věnují všechny zdroje na zotavení po druhém selhání.
Pokud provedete matematiku, jedna kopie dat vám dává velmi vysokou pravděpodobnost (ve skutečnosti téměř jistou) ztráty dat ve velkém klastru.
U dvou kopií máte pravděpodobnost ztráty dat v rozsahu 0,3. \% – 5\% v závislosti na parametrech vašeho klastru. Pro většinu podniků to není dost dobré, ale některé aplikace to mohou tolerovat.
U tří kopií můžete obvykle prodloužit pravděpodobnost ztráty dat na ,1\% ročně, což odpovídá střední době do ztráty dat 1000 let a více, pokud děláte věci správně.
Takže to je důvod.