Integrace dotazů Apache Spark a Hive LLAP
V předchozí lekci jsme se podívali na dva způsoby dotazování statických dat uložených v clusteru Interactive Query – Data Analytics Studio a poznámkového bloku Zeppelin. Ale co když chcete streamovat čerstvá data o nemovitostech do clusterů pomocí Sparku a pak je dotazovat pomocí Hivu? Protože Hive a Spark mají dva různé metastory, vyžadují konektor pro přemostit mezi nimi – a Apache Hive Warehouse Připojení or (HWC) je tento most. Knihovna Připojení or služby Hive Warehouse umožňuje snadněji pracovat s Apache Sparkem a Apache Hivem tím, že podporuje úlohy, jako je přesun dat mezi tabulkami Spark DataFrames a Hive, a také směrování streamovaných dat Sparku do tabulek Hive. V našem scénáři konektor nenastavíme, ale je důležité vědět, že tato možnost existuje.
Apache Spark má rozhraní API strukturovaného streamování, které poskytuje možnosti streamování, které nejsou dostupné v Apache Hivu. Od VERZE HDInsight 4.0 mají Apache Spark 2.3.1 a Apache Hive 3.1.0 samostatné metastory, které ztěžovaly interoperabilitu. Sklad Hive Připojení or usnadňuje společné použití Sparku a Hivu. Knihovna Hive Warehouse Připojení or načítá data z démon LLAP do exekutorů Sparku paralelně, takže je efektivnější a škálovatelná než použití standardního připojení JDBC ze Sparku do Hivu.
Mezi operace podporované Připojení orem Hive Warehouse patří:
- Popis tabulky
- Vytvoření tabulky pro optimalizovaná sloupcová data ve sloupci řádků (ORC)
- Výběr dat Hive a načtení datového rámce
- Zápis datového rámce do Hivu v dávce
- Spuštění příkazu aktualizace Hive
- Čtení dat tabulky z Hivu, jejich transformace ve Sparku a zápis do nové tabulky Hive
- Zápis datového rámce nebo streamu Sparku do Hivu pomocí HiveStreamingu
Jakmile máte cluster Spark a nasadíte cluster Interactive Query, nakonfigurujete nastavení clusteru Spark v Ambari, což je webový nástroj zahrnutý ve všech clusterech HDInsight. Pokud chcete otevřít Ambari, přejděte do https:// servername.azurehdinsight.net v internetovém prohlížeči, kde název serveru je název vašeho clusteru Interactive Query.
Potom pro zápis streamovaných dat Sparku do tabulek vytvoříte tabulku Hive a začnete do ní zapisovat data. Pak spusťte dotazy na streamovaná data, můžete použít některou z následujících možností:
- spark-shell
- PySpark
- spark-submit
- Zeppelin
- Livy