SparkSQL CLI wewnętrznie używa HiveQL, aw przypadku Hive na iskrze (HIVE-7292), ula używa iskry jako silnika zaplecza. Czy ktoś może rzucić więcej światła, jak dokładnie te dwa scenariusze są różne, plusy i minusy obu podejść?SparkSQL vs Hive on Spark - Różnice i plusy i minusy?
Odpowiedz
Sprawdź to blog od Databricks. Chociaż nie jest to zbyt szczegółowe, mówi o historii, która za tym stoi i kiedy należy z niej skorzystać.
Kiedy SparkSQL wykorzystuje ula
SparkSQL mogą korzystać HiveMetastore uzyskać metadane danych przechowywanych w HDFS. Te metadane umożliwiają SparkSQL lepszą optymalizację zapytań, które wykonuje. Tutaj Spark jest procesorem zapytań.
Kiedy Hive używa Spark See the JIRA entry: HIVE-7292
Tutaj dane są dostępne za pośrednictwem iskry. A Hive to procesor zapytań. Mamy więc wszystkie zalety Spark Core, które wykorzystują. Ale jest to istotna poprawa w Ulu i jest nadal „w toku”, jak od 2 lutego 2016 r
Jest jeszcze trzecia opcja do przetwarzania danych z SparkSQL
Zastosowanie SparkSQL bez użycia gałąź. Tutaj SparkSQL nie ma dostępu do metadanych z Hive Metastore. A zapytania działają wolniej. Zrobiłem kilka testów wydajności porównujących opcje 1 i 3. Wyniki są here.
SparkSQL vs Spark API można po prostu wyobrazić jesteś w RDBMS świata:
SparkSQL jest czysty SQL i Spark API jest język do pisania procedury przechowywanej
Hive na Spark jest podobna do SparkSQL jest to czysty interfejs SQL, który używa iskry jako silnika wykonawczego, SparkSQL używa składni Hive, więc jako język, powiedziałbym, że są prawie takie same.
ale Hive na Sparku ma znacznie lepsze wsparcie dla funkcji ula, szczególnie hiveserver2 i funkcji bezpieczeństwa, funkcje rive w SparkSQL są naprawdę błędne, istnieje hiveserver2 impl w SparkSQL, ale w najnowszej wersji (1.6.x), hiveserver2 w SparkSQL nie działa z hivevar i argumentów hiveconf już, a nazwa użytkownika do logowania poprzez JDBC nie działa albo ...
zobaczyć https://issues.apache.org/jira/browse/SPARK-13983
wierzę ula wsparcie w projekcie zapłonowej jest naprawdę bardzo niska priorytetowe rzeczy ...
smutnie ula na iskrze integratio n nie jest to takie proste, istnieje wiele konfliktów zależności ... takich jak https://issues.apache.org/jira/browse/HIVE-13301
, a gdy próbuję ula z integracją iskrowym, dla celów debugowania, wciąż zaczynam ula CLI jak to:
export HADOOP_USER_CLASSPATH_FIRST=true
bin/hive --hiveconf hive.root.logger=DEBUG,console
naszym wymogiem jest użycie iskry z hiveserver2 w bezpieczny sposób (z uwierzytelnianiem i autoryzacją), obecnie SparkSQL sam nie może zapewnić tego, używamy ranger/sentry + gałąź Spark.
mam nadzieję, że pomoże ci to uzyskać lepszy pomysł, w którą stronę powinieneś pójść.
dzięki! bardzo doceniane. –
tutaj jest związane odpowiedź mi się znaleźć w oficjalnej stronie ula:
1.3 Porównanie z Shark i Spark SQL Istnieją dwa powiązane projekty w ekosystemie Spark, które zapewniają wsparcie Hive QL na Spark Spark: Shark i SQL. ● Projekt Shark tłumaczy plany kwerend generowane przez Hive na własne reprezentacje i wykonuje je na Spark. ● Spark SQL jest funkcją w Spark. Używa on parsera Hive jako interfejsu, aby zapewnić obsługę Hive QL. Twórcy aplikacji Spark mogą z łatwością wyrazić swoją logikę przetwarzania danych w SQL, a także innych operatorów Spark w swoim kodzie. Spark SQL obsługuje inny przypadek użycia niż Hive.
W porównaniu z Shark i Spark SQL, nasze podejście projektowe obsługuje wszystkie istniejące funkcje Hive, w tym Hive QL (i wszelkie przyszłe rozszerzenia) oraz integrację Hive z autoryzacją, monitorowaniem, audytowaniem i innymi narzędziami operacyjnymi.
3. Projekt poziomu-ula Jak wspomniano we wstępie, projekt ten różni się od podejścia opisanego przez Shark lub Spark SQL w tym sensie, że nie zamierzamy implementować semantyki SQL za pomocą prymitywów Sparka. Wręcz przeciwnie, zaimplementujemy go za pomocą prymitywów MapReduce. Jedyną nowością jest to, że prymitywy MapReduce zostaną wykonane w Sparku. W rzeczywistości tylko kilka prymitywów Sparka zostanie wykorzystanych w tym projekcie.
Podejście polegające na wykonywaniu prymitywów MapReduce firmy Hive na urządzeniu Spark, które różni się od tego, które wykonuje Shark lub Spark SQL, ma następujące bezpośrednie zalety: 1. Użytkownicy będą automatycznie otrzymywać cały zestaw bogatych funkcji gałęzi, w tym wszelkie nowe funkcje, które Hive może wprowadzić w przyszłości. 2. Takie podejście pozwala uniknąć lub zmniejsza konieczność jakichkolwiek prac dostosowawczych w silniku wykonawczym Hive'a Sparka.
3. Ograniczą także zakres projektu i zmniejszą długoterminową konserwację, utrzymując zgodność Hive-on-Spark z Hive MapReduce i Tez.
- 1. newid() vs newsequentialid() Jakie są różnice/plusy i minusy?
- 2. Plusy i minusy READ_COMMITTED_SNAPSHOT
- 3. Plusy i minusy: Hibernacja vs. EJB 3
- 4. Wypoczynek vs Wcf plusy i minusy
- 5. ServiceBus Architektura Plusy i minusy
- 6. Jakie są plusy i minusy Git-Flow vs Github-Flow?
- 7. Identyfikator okaziciela ASP.NET vs JWT Plusy i minusy
- 8. OcMock vs OcMockito - jakie są plusy i minusy
- 9. Jakie są plusy i minusy LinkedHashMaps vs. LinkedHashSets?
- 10. ktoś próbował Neo4J vs Titan - plusy i minusy
- 11. Plusy i minusy węzła sass i gulp-sass
- 12. Plusy i minusy systemów komentujących i API (Disqus vs Facebook Comments vs Intense Debate vs Echo)?
- 13. Jakie są plusy i minusy modelowania kotwicy?
- 14. Programowanie w wirtualnej maszynie - plusy i minusy
- 15. Pliki mapowane w pamięci: plusy i minusy?
- 16. Aktywne rekordy a repozytorium - plusy i minusy?
- 17. GLib v APR plusy i minusy każdego
- 18. SELECT * - plusy/minusy
- 19. Proxyquire, ReWire, SandboxedModule i Sinon: plusy i minusy
- 20. plusy i minusy db i ndb w silniku aplikacji Google
- 21. php imagecopyresized vs imagecopyresampled vs imagecopy plusy/minusy
- 22. Jakie są plusy i minusy używania `select table_name. *`?
- 23. współbieżne techniki programowania, plusy, minusy
- 24. Jakie są główne różnice (plusy/minusy) między modelem ember, ember-niespokojny i emu?
- 25. Biblioteka klasy Project Project VS App_Code - Plusy/minusy?
- 26. Plusy i minusy silnika bazy danych Access. Życie po SQLite
- 27. Jakie są plusy i minusy używania zmiennych rozgłoszeniowych w singleton?
- 28. Jakie są twoje plusy i minusy git po użyciu?
- 29. Jakie są plusy i minusy RemObjects PascalScript kontra skrypt DWS?
- 30. Plusy i minusy używania Lucene w klasie MultiSearcher
W trzeciej opcji, jeśli SparkSQL nie używa metastore ula (domyślnie jest to derby lub może być mysql), to czy musimy skonfigurować metastore dla SparkSQL, tak jak robimy to dla Hive? –
Nie trzeba konfigurować metastore dla SparkSQL. SparkSQL może być używany na wiele sposobów. Ale w tej opcji konfiguracja metastore nie jest wymagana. Nawet bez skonfigurowania połączenia Hive Metastore, możemy użyć klasy HiveContext z klasy sparksql-cli. Inny sposób spojrzenia na tę koncepcję: SparkSQL może korzystać z innych źródeł danych, takich jak pliki CSV, w których koncepcja Metastore nie jest istotna. – prajod
Jeśli metastore nie jest wymagany, to w jaki sposób program Spark SQL monitoruje metadane tabel. Musi gdzieś przechowywać te informacje. Jeśli potrzebuje pomocy HiveContext, oznacza to, że nadal polega na metastorze Hive. –