12 ekscytujących pomysłów i tematów na projekty Spark dla początkujących [2022]
Opublikowany: 2021-01-10Pomysły na projekty Spark łączą programowanie, uczenie maszynowe i narzędzia Big Data w kompletnej architekturze. Jest to odpowiednie narzędzie do opanowania dla początkujących, którzy chcą włamać się do świata szybkich analiz i technologii obliczeniowych.
Spis treści
Dlaczego iskra?
Apache Spark to najlepszy wybór wśród programistów, jeśli chodzi o przetwarzanie dużych zbiorów danych. Ta platforma typu open source zapewnia ujednolicony interfejs do programowania całych klastrów. Wbudowane moduły zapewniają szeroką obsługę SQL, uczenia maszynowego, przetwarzania strumieniowego i obliczania wykresów. Ponadto może przetwarzać dane równolegle i samodzielnie odzyskiwać utracone dane w przypadku awarii.
Spark nie jest ani językiem programowania, ani bazą danych. Jest to silnik obliczeniowy ogólnego przeznaczenia zbudowany na Scali. Łatwo jest nauczyć się Sparka, jeśli masz podstawową wiedzę na temat Pythona i innych interfejsów API, w tym Java i R.
Ekosystem Spark ma szeroki zakres zastosowań ze względu na posiadane zaawansowane możliwości przetwarzania. Poniżej wymieniliśmy kilka przypadków użycia, które pomogą Ci iść naprzód w Twojej podróży edukacyjnej!
Pomysły i tematy projektów Spark
1. Serwer zadań Spark
Ten projekt pomaga w obsłudze kontekstów zadań Spark z interfejsem RESTful, umożliwiając przesyłanie zadań z dowolnego języka lub środowiska. Nadaje się do wszystkich aspektów zarządzania pracą i kontekstem.
Repozytorium deweloperskie z testami jednostkowymi i wdrażaniem skryptów. Oprogramowanie jest również dostępne jako kontener Docker, który wstępnie pakuje Spark z serwerem zadań.

2. Apache Mesos
AMPLab na Uniwersytecie Kalifornijskim w Berkeley opracował ten menedżer klastrów, aby umożliwić efektywne działanie odpornych na awarie i elastycznych systemów rozproszonych. Mesos oddziela zasoby komputera, takie jak pamięć, pamięć masowa i procesor, od maszyn fizycznych i wirtualnych.
Naucz się tworzyć aplikacje, takie jak Swiggy, Quora, IMDB i nie tylkoJest to doskonałe narzędzie do uruchamiania dowolnej aplikacji rozproszonej wymagającej klastrów. Od wielkich gigantów, takich jak Twitter, po firmy takie jak Airbnb, różne firmy używają Mesos do administrowania swoją infrastrukturą big data. Oto niektóre z jego kluczowych zalet:
- Może obsługiwać obciążenia przy użyciu dynamicznego podziału obciążenia i izolacji
- Parkuje się między warstwą aplikacji a systemem operacyjnym, aby umożliwić wydajne wdrażanie w środowiskach o dużej skali
- Ułatwia liczne usługi do współdzielenia puli serwerów
- Łączy różne zasoby fizyczne w zunifikowany zasób wirtualny
Możesz powielić ten projekt open source, aby zrozumieć jego architekturę, która obejmuje między innymi Mesos Master, Agent i Framework.
Przeczytaj: Pomysły na projekty tworzenia stron internetowych
3. Złącze Spark-Cassandra
Cassandra to skalowalny system zarządzania danymi NoSQL. Możesz połączyć Sparka z Cassandrą za pomocą prostego narzędzia. Projekt nauczy Cię następujących rzeczy:
- Zapisywanie dysków Spark RDD i DataFrames do tabel Apache Cassandra
- Wykonywanie zapytań CQL w aplikacji Spark
Wcześniej trzeba było włączyć interakcję między Sparkiem i Cassandrą poprzez rozbudowane konfiguracje. Ale dzięki temu aktywnie rozwijanemu oprogramowaniu możesz połączyć te dwa elementy bez wcześniejszych wymagań. Możesz znaleźć przypadek użycia bezpłatnie dostępny na GitHub.
Przeczytaj więcej: Git kontra Github: różnica między Git a Github
4. Przewidywanie opóźnień lotów
Możesz użyć Sparka do przeprowadzenia praktycznej analizy statystycznej (opisowej i wnioskowej) w zestawie danych linii lotniczej. Rozbudowany projekt analizy zestawu danych może zapoznać Cię z Spark MLib, jego strukturami danych i algorytmami uczenia maszynowego.
Ponadto możesz podjąć się zadania zaprojektowania kompleksowej aplikacji do prognozowania opóźnień w lotach. Dzięki temu praktycznemu ćwiczeniu możesz nauczyć się następujących rzeczy:
- Instalowanie Apache Kylin i wdrażanie schematu gwiazdy
- Wykonywanie wielowymiarowej analizy na dużym zbiorze danych lotu za pomocą Spark lub MapReduce
- Budowanie kostek za pomocą RESTful API
- Stosowanie kostek za pomocą silnika Spark
5. Potok danych oparty na komunikatach
Potok danych obejmuje zestaw działań od momentu pozyskania danych do momentu, w którym nastąpią procesy ekstrakcji, transformacji lub ładowania. Symulując potok danych wsadowych, możesz dowiedzieć się, jak podejmować decyzje projektowe po drodze, budować narzędzie potoku plików oraz jak testować i rozwiązywać problemy. Możesz także zebrać wiedzę na temat konstruowania ogólnych tabel i zdarzeń w Spark oraz interpretowania danych wyjściowych generowanych przez architekturę.
Przeczytaj: Pomysły i tematy dotyczące projektów w Pythonie
6. Konsolidacja danych
Jest to projekt dla początkujących dotyczący tworzenia jeziora danych lub centrum danych przedsiębiorstwa. Konsolidacja danych w ramach tego modelu nie wymaga znacznego wysiłku integracyjnego. Możesz po prostu poprosić o dostęp grupowy i zastosować MapReduce i inne algorytmy, aby rozpocząć projekt przetwarzania danych.

Takie jeziora danych są szczególnie przydatne w konfiguracjach korporacyjnych, w których dane są przechowywane w różnych obszarach funkcjonalnych. Zazwyczaj są one materializowane jako pliki w tabelach Hive lub HDFS, oferując korzyści w postaci skalowalności poziomej.
Aby ułatwić analizę w interfejsie użytkownika, możesz skonfigurować program Excel, Tableau lub bardziej wyrafinowany notatnik iPython.
7. Zeppelin
Jest to projekt inkubacji w ramach Apache Foundation, który wprowadza do Sparka notebooki w stylu Jupytera. Jego interpreter IPython oferuje programistom lepszy sposób udostępniania i współpracy przy projektach. Zeppelin obsługuje szereg innych języków programowania oprócz Pythona. Lista obejmuje Scala, SparkSQL, Hive, powłokę i przecenę.
Z Zeppelinem możesz z łatwością wykonywać następujące zadania:
- Korzystaj z internetowego notatnika z interaktywną analizą danych
- Publikuj wyniki wykonania kodu bezpośrednio (jako osadzony element iframe) na swojej stronie internetowej lub blogu
- Twórz imponujące, oparte na danych dokumenty, organizuj je i współpracuj z innymi
8. Projekt e-commerce
Spark zyskał na znaczeniu w funkcjach inżynierii danych w środowiskach e-commerce. Jest w stanie pomóc w projektowaniu wysokowydajnych infrastruktur danych. Przyjrzyjmy się najpierw, co jest możliwe w tej przestrzeni:
- Strumieniowanie transakcji w czasie rzeczywistym za pomocą algorytmów klastrowania, takich jak k-średnie
- Skalowalne wspólne filtrowanie za pomocą Spark MLib
- Łączenie wyników z nieustrukturyzowanymi źródłami danych (na przykład recenzje produktów i komentarze)
- Dostosowywanie rekomendacji do zmieniających się trendów
Na tym dynamika się nie kończy. Możesz użyć interfejsu, aby sprostać konkretnym wyzwaniom w swoim e-handlu. Spróbuj swoich sił w wyjątkowej aplikacji hurtowni danych Big Data, która optymalizuje ceny i alokację zapasów w zależności od danych geograficznych i sprzedaży. Dzięki temu projektowi możesz zrozumieć, jak podejść do rzeczywistych problemów i wpłynąć na wynik finansowy.
Sprawdź: Pomysły na projekty uczenia maszynowego
9. Alluxio
Alluxio działa jako warstwa orkiestracji w pamięci między Sparkiem a systemami pamięci masowej, takimi jak HDFS, Amazon S3, Ceph itp. Ogólnie rzecz biorąc, przenosi dane z magazynu centralnego do struktury obliczeniowej w celu przetwarzania. Projekt badawczy został początkowo nazwany Tachyon, kiedy został opracowany na Uniwersytecie Kalifornijskim.
Oprócz wypełnienia luki, ten projekt typu open source poprawia wydajność analiz podczas pracy z dużymi zbiorami danych i obciążeniami AI/ML w dowolnej chmurze. Zapewnia dedykowane możliwości udostępniania danych w ramach zadań klastra napisanych w Apache Spark, MapReduce i Flink. Można to nazwać wirtualnym rozproszonym systemem pamięci masowej zorientowanym na pamięć.
10. Streamingowy projekt analityczny dotyczący wykrywania oszustw
Aplikacje do analizy strumieniowej są popularne w branży finansowej i bezpieczeństwa. Warto analizować dane transakcyjne w trakcie procesu, zamiast dowiadywać się o oszustwach pod koniec cyklu. Spark może pomóc w tworzeniu takich narzędzi do wykrywania włamań i anomalii z HBase jako ogólnym magazynem danych. Kolejną instancję tego rodzaju śledzenia można spotkać w systemach zarządzania zapasami.
11. Kompleksowe przetwarzanie zdarzeń
Dzięki temu projektowi można badać aplikacje o bardzo niskich opóźnieniach, w których zaangażowane są subsekundy, pikosekundy i nanosekundy. Poniżej wymieniliśmy kilka przykładów.
- Wysokiej klasy aplikacje handlowe
- Systemy do oceny zapisów rozmów w czasie rzeczywistym
- Przetwarzanie zdarzeń IoT
Szybka architektura lambda Sparka umożliwia tym programom milisekundowy czas odpowiedzi.
Oprócz tematów wymienionych powyżej, możesz również przyjrzeć się wielu innym pomysłom na projekt Spark . Załóżmy, że chcesz stworzyć aplikację do monitorowania pojazdów w czasie zbliżonym do rzeczywistego. Tutaj dane z czujników są symulowane i odbierane za pomocą Spark Streaming i Flume. Struktura danych Redis może służyć jako oprogramowanie pośredniczące pub/sub w tym projekcie Spark.

12. Przypadek użycia do gier
Branża gier wideo wymaga niezawodnych programów do natychmiastowego przetwarzania i wykrywania wzorców. Zdarzenia w grze wymagają szybkich reakcji i wydajnych możliwości retencji graczy, automatycznego dostosowywania poziomów złożoności, reklam docelowych itp. W takich scenariuszach Apache Spark może uwzględnić różnorodność, prędkość i objętość przychodzących danych.
Kilka potęg technologicznych i firm internetowych jest znanych z używania Sparka do analizowania dużych zbiorów danych i zarządzania swoimi systemami ML. Niektóre z tych czołowych marek to Microsoft, IBM, Amazon, Yahoo, Netflix, Oracle i Cisco. Mając odpowiednie umiejętności, możesz realizować lukratywną karierę jako pełnoprawny programista, inżynier danych, a nawet pracować w doradztwie i innych technicznych stanowiskach kierowniczych.
Wniosek
Powyższa lista pomysłów na projekty Spark wcale nie jest wyczerpująca. Odkrywaj więc piękno bazy kodu i odkrywaj nowe aplikacje!
Jeśli chcesz dowiedzieć się więcej o Big Data, sprawdź nasz program PG Diploma in Software Development Specialization in Big Data, który jest przeznaczony dla pracujących profesjonalistów i zawiera ponad 7 studiów przypadków i projektów, obejmuje 14 języków programowania i narzędzi, praktyczne praktyczne warsztaty, ponad 400 godzin rygorystycznej pomocy w nauce i pośrednictwie pracy w najlepszych firmach.
Sprawdź nasze inne kursy inżynierii oprogramowania w upGrad.