Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
kj:hadoop-a-hdfs [21.08.2017 18:19] kj |
kj:hadoop-a-hdfs [18.09.2017 16:16] (aktuální) kj |
||
---|---|---|---|
Řádek 12: | Řádek 12: | ||
==== Architektura Hadoopu ==== | ==== Architektura Hadoopu ==== | ||
+ | |||
* HDFS: distribuovaný FS | * HDFS: distribuovaný FS | ||
+ | * velký soubor je rozdělen na 64 MB chunky a třikrát replikován | ||
* YARN: plánovač úloh a alokátor zdrojů | * YARN: plánovač úloh a alokátor zdrojů | ||
- | * Application – alokuje zdroje | + | * Application Master – alokuje zdroje |
* Resource Manager – globální správce zdrojů pro cluster. řeknu mu o paměť, RAM, on mi řekne, zda to jde | * Resource Manager – globální správce zdrojů pro cluster. řeknu mu o paměť, RAM, on mi řekne, zda to jde | ||
* Node Manager – podřízený správce zdrojů na nodu, kouká se, zda je dost místa pro danou operaci | * Node Manager – podřízený správce zdrojů na nodu, kouká se, zda je dost místa pro danou operaci | ||
* MapReduce | * MapReduce | ||
- | * zvěřinec nad tím: Hive, Spark, HBase, Zookeeper (sdílení konfiguračních souborů, komunikace clusterů), Kafka, Flink, Kassandra, Kudu, ... | + | * Zookeeper - sdílení konfiguračních souborů, komunikace clusterů |
+ | * zvěřinec nad tím: Hive, Spark, HBase (NoSQL databáze), Kafka (messaging), Flume (ukládání logů), Sqoop (integrace z DB), Oozie (workflow scheduler), ... | ||
+ | |||
+ | {{ https://2xbbhjxc6wk3v21p62t8n4d4-wpengine.netdna-ssl.com/wp-content/uploads/2012/08/yarnflow1-600x371.png?400| }} | ||
+ | | ||
- | {{ :kj:arch_hadoop.png?400| }} | ||
* **Name Node** - ukládá metadata | * **Name Node** - ukládá metadata | ||
Řádek 31: | Řádek 36: | ||
* pomocník pro NameNode, NE jeho záloha | * pomocník pro NameNode, NE jeho záloha | ||
* dva soubory | * dva soubory | ||
- | * **fsimage** - snapshot FS poté, co NameNode začal | + | * **fsimage** - jak vypadá FS poté, co NameNode začal |
* **edit logs** - posloupnost změn na FS poté, co NameNode začal | * **edit logs** - posloupnost změn na FS poté, co NameNode začal | ||
- | * po restartu NN jsou editlogs aplikopvány na fsimage, abychom dostali poslední verzi snapshotu FS | + | * po restartu NN jsou editlogs aplikovány na fsimage, abychom dostali poslední verzi snapshotu FS |
* ale restarty NN jsou vzácné, takže edit logy můžou být hodně velké a merge může dlouho trvat | * ale restarty NN jsou vzácné, takže edit logy můžou být hodně velké a merge může dlouho trvat | ||
* je třeba nějak zmenšit velikost edit logů | * je třeba nějak zmenšit velikost edit logů | ||
- | * **replikační faktor** většinou 3 - 2 repliky ve stejném racku, třetí replika mimo | + | * **replikační faktor** většinou 3: 2 repliky ve stejném racku, třetí replika mimo |
{{ :kj:arch_hadoop2.png?400| }} | {{ :kj:arch_hadoop2.png?400| }} | ||
Řádek 46: | Řádek 51: | ||
==== Typy souborů ==== | ==== Typy souborů ==== | ||
- | * **řádkové** - CSV, TSV, Avro | + | * **řádkové** - CSV, TSV, Avro (obsahuje schéma) |
* vhodné, pokud se ptám často na většinu sloupců | * vhodné, pokud se ptám často na většinu sloupců | ||
* **sloupcové** - ORC, Parquet | * **sloupcové** - ORC, Parquet | ||
* vhodné, pokud se ptám jen na část sloupců | * vhodné, pokud se ptám jen na část sloupců | ||
* nevhodné pro modifikaci (v Hadoopu netřeba), náročné pro zápis | * nevhodné pro modifikaci (v Hadoopu netřeba), náročné pro zápis | ||
- | * SequenceFile - vhodný formát pro hodně malých souborů | + | * má metadata až na konci - předtím je ještě nezná, dává smysl |
+ | * SequenceFile - data ve formátu klíč, hodnota | ||
+ | * vhodný formát pro hodně malých souborů | ||
==== Komprese ==== | ==== Komprese ==== |
kj/hadoop-a-hdfs.1503332372.txt.gz · Poslední úprava: 21.08.2017 18:19 autor: kj