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:
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:
Podczas tej drugiej konferencji, IBM World of Watson, można było zobaczyć mobilne demo prezentujące wyniki testów Spark w środowisku korporacyjnym.