Názor ke článku HADOOP versus SPARK: Srovnání výkonnosti pro různé ETL úlohy od Uncaught ReferenceError: - tohle je již pokročilé téma nad úroveň toho,...

  • 21. 2. 2020 21:59

    Uncaught ReferenceError:

    tohle je již pokročilé téma nad úroveň toho, jaká je u meetupů poptávka, ptej se, lidi, kteří to znají z praxe tam jsou.

    Tady jsi připravil ideální situaci pro hadoop, opřel jsi se o výkon disků a čekal jsi, že spark bude 100x rychlejší? Zkus svůj test upravit následně a sleduj jak se mění rozdíly i pro jednostupňovou úlohu:
    - zvyš počet soubor na desítky tisíc, hadoop má velké problémy s mnoho soubory a neumí je efektivně združovat, spark se s tím vypořádává lépe
    - nenačítej celou bázi dat, ale její část (tj. začni filtrovat, v praxi málokdy vidím potřebu načíst úplně vše), použij jiný formát souborů pro spark (parquet, orc), kde díky sloupcovému uspořádání si dobře rozumí s filtrováním
    - přidej Hive metastore, udělej z toho tabulku, soubory rozděl do partitions a napočítej statistiky
    - spark dobře neumí využít hodně paměti pro jeden proces, rozděl úlohu na tisíce executorů, každému stačí málo paměti a využij škálování do šířky, v tomhle spark exceluje proti MR

    Test jsi si napsal už s nějakým předpokladem a jen jsi prokázal, že spark funguje obdobně jako MR pro čtení všeho z disku.

    MR v praxi selhává ve prospěch sparku právě z důvodu, že nemáš nikdy vše ideální. Úlohy jsou složité, data mají vysokou granualitu, potřebuješ filtrovat, na clusteru máš nemalou zátěž atd.

    Při nabídkách řešení nad hadoopem vždy děláme výkonnostní testy podle plánovaných úloh a jedná se o reálná měření, nedělají to tak ale všichni. Spark není vždy tou správnou volbou a opět se rozhoduji podle potřeb, dnes jsou již na výběr i další nástroje.