Zaczynamy rewolucję: Spark SQL 100 TB


Apache Spark to rewolucja w obszarze Big Data - dzięki ogromnej wydajności oraz obsłudze standardowego SQL na Hadoop. Jednak nie wszystkie dane są takie same, a pozyskiwanie informacji bez opóźnień może czasem oznaczać różnicę liczoną w milionach dolarów. Czasem natomiast może nawet decydować o życiu lub śmierci. Przykłady? Wykrywanie w czasie rzeczywistym nadużyć pozwala branży finansowej zaoszczędzić ogromne kwoty. W służbie zdrowia, wykrywanie zatrzymania akcji serca, jeszcze zanim ono nastąpi, pozwala uratować wielu ludzi.

Rewolucyjna technologia o takim potencjale zasługuje na przetestowanie. Dlatego firmy IBM, Lenovo, Intel i Mellanox połączyły siły, tworząc pierwsze referencyjne rozwiązanie dla wdrożeń Spark – wymagających zarówno dużej skalowalności, jak i pojemności. Celem tego projektu było nie tylko zaprezentowanie wydajności klastra Spark oraz jego znakomitych możliwości skalowania, lecz także dostarczenie podstawowych elementów do budowania takich rozwiązań oraz technik rozstrzygania problemów i optymalizacji.

Komponenty architektury tego konkretnego rozwiązania to zrównoważona konfiguracja wysoko wydajnych serwerów, pamięci masowej oraz urządzeń sieciowych. Moc obliczeniową na potrzeby zadań data worker zapewniają serwery Lenovo X3650 M5, a na potrzeby funkcji master -serwer Lenovo X3550. Każda maszyna x3650 M5 została wyposażona w wydajny procesor Intel E5-2697 V4 i 1,5 TB pamięci operacyjnej. Choć Apache Spark to szybki silnik, wykorzystujący technologię przetwarzania danych w pamięci, który wykracza poza możliwości pamięci serwera, chcieliśmy zastosować pamięć masową o wydajności zbliżonej do pamięci operacyjnej. Dlatego wykorzystaliśmy dyski Intel NVMe SSD, które oferują nawet do 450K operacji IO na sekundę przy minimalnych opóźnieniach. Ważną rolę – biorąc pod uwagę wydajność przy dużej skali - odgrywają komponenty sieciowe. Dlatego postawiliśmy na Mellanox 100G.

Do testów wybrano benchmark Hadoop-DS (pochodna TPC-DS). Wymaga on wielu funkcji SQL 2003; Spark 2.0 je obsługuje. Spark SQL to jeden z podstawowych interfejsów wykorzystywanych przez aplikacje Spark. Rozszerzone funkcje SQL znacząco ograniczają wysiłki potrzebne do przeniesienia starych aplikacji na Spark.

Rozwiązanie, jako całość, składało się z 30 serwerów 3650 M5 umieszczonych w 2 szafach rack. Przełącznik Mellanox 100G zarządzał przepływem danych pomiędzy tymi serwerami. Całość pracowała pod kontrolą systemu operacyjnego Red Hat, Hadoop HDFS obsługiwał rozproszoną pamięć masową, a Spark 2.0 odpowiadał za przetwarzanie danych.

Podstawowe elementy infrastrukturalne, zastosowane oprogramowanie oraz Hadoop-DS zostały przedstawione poniżej:

Zaczynamy rewolucję: Spark SQL 100 TB

PIERWSZY W BRANŻY BENCHMARK100 TB SPARK SQL

Więcej informacji na temat wyników Spark SQL w testach, skalowalności i technik optymalizacji można było uzyskać na dwóch sesjach na konferencjach:

  • Spark SQL 2.0/2.1 experiences using TPC-DS, prowadzenie Berni Schiefer, konferencja Spark Summit in Europe.
  • Tuning Hadoop and Spark to improve cluster performance, prowadzenie Stewart Tate, IBM, konferencja World of Watson.

Podczas tej drugiej konferencji, IBM World of Watson, można było zobaczyć mobilne demo prezentujące wyniki testów Spark w środowisku korporacyjnym.

Zapisz się na bezpłatny newsletter. Dowiesz się o webinarach, nowych case study oraz white paperach.