Vad är HDFS? (Hadoop Distributed File System)
Summary: Förklaring av vad HDFS (Hadoop Distributed File System) är. I den här artikeln beskrivs också hur HDFS används och ett exempel.
Instructions
Vad är HDFS? (Hadoop Distributed File System)
Fakta
Svar på hadoop-distribuerade filsystem
Om Hadoop Distributed File System (HDFS)
För att förstå hur det är möjligt att skala ett Hadoop-kluster® till hundratals (och till och med tusentals) noder måste du börja med Hadoop Distributed File System (HDFS). Data i ett Hadoop-kluster
delas upp i mindre delar (kallas block) och distribueras över hela klustret. På så sätt kan kartnings- och reduce-funktionerna utföras på mindre underuppsättningar av dina större datauppsättningar, vilket ger den skalbarhet som behövs för behandling av big data.
Vad är målet?
Målet med Hadoop är att använda vanliga servrar i ett mycket stort kluster där varje server har en uppsättning billiga interna diskenheter. För högre prestanda försöker MapReduce
tilldela arbetsbelastningar till dessa servrar där data som ska bearbetas lagras. Detta kallas datalokalisering. (Det är på grund av den här principen som användning av ett SAN-nätverk (Storage Area Network) eller nätverksansluten lagring (NAS) i en Hadoop-miljö inte rekommenderas. För Hadoop-distributioner med hjälp av ett SAN eller NAS kan den extra nätverkskommunikationen orsaka flaskhalsar i prestanda, särskilt för större kluster.) Tänk dig ett kluster med 1 000 datorer där varje maskin har tre interna diskenheter. tänk sedan på felfrekvensen för ett kluster som består av 3 000 billiga hårddiskar + 1 000 billiga servrar!
Vi är troligtvis redan på samma sida här: Komponenten innebär att den tid till fel (MTTF) som du kommer att uppleva i ett Hadoop-kluster sannolikt är analogt med en zipper på din dotters hölje: den kommer att misslyckas (och statiskt nog verkar zipper bara misslyckas när du verkligen behöver dem). Det coola med Hadoop är att verkligheten med MTTF-priser som är förknippade med billigt maskinvara faktiskt är välförstådd (en designpunkt om du gör det), och en del av styrkan i Hadoop är att den har inbyggd feltolerans och felkompensation. Detta är detsamma för HDFS, eftersom data är indelade i block, och kopior av dessa block lagras på andra servrar i Hadoop-klustret. Det innebär att en enskild fil faktiskt lagras som mindre block som replikeras över flera servrar i hela klustret.
Ett exempel på HDFS
Tänk dig en fil med telefonnummer till alla i USA. De personer med ett efternamn som börjar med A kan lagras på server 1, B på server 2 osv. I en Hadoop-värld skulle delar av den här telefonboken lagras över klustret, och för att rekonstruera hela telefonboken skulle ditt program behöva blocken från varje server i klustret. För att uppnå tillgänglighet när komponenter misslyckas replikerar HDFS dessa mindre komponenter till två ytterligare servrar som standard. (Den här redundansen kan öka eller minskas per fil eller för en hel miljö. Till exempel behöver ett Hadoop-kluster för utveckling vanligtvis inte någon dataredundans.) Denna redundans ger flera fördelar, den mest uppenbara är högre tillgänglighet.
Dessutom gör den här redundansen att Hadoop-klustret kan dela upp sitt arbete i mindre block och köra dessa jobb på alla servrar i klustret för bättre skalbarhet. Slutligen får du fördelen med data lokalt, vilket är mycket viktigt när du arbetar med stora datauppsättningar. Vi beskriver dessa viktiga fördelar senare i det här kapitlet.