Apache Spark – 2 Kroki do Lepszej Utylizacji Zasobów

Chcemy, aby nasze aplikacje w Apache Spark wykorzystywały wszystkie przydzielone zasoby. Niestety nie jest to takie proste. Rozproszenie obliczeń niesie za sobą koszty zarządzania zadaniami, a same zadania mają wobec siebie zależności. Z jednej strony ogranicza nas CPU (szybkość obliczeń), z drugiej strony dyski i sieć. MapReduce poświęciłem dedykowany materiał wideo. W artykule dowiesz się jak w 2 prostych krokach poprawić utylizację zasobów w Apache Spark.

Czytaj dalej Apache Spark – 2 Kroki do Lepszej Utylizacji Zasobów

Stream Processing – There’s no time like the present [nagranie]

Nagranie z mojego wystąpienia o przetwarzaniu strumieniowym w ramach DataOps Poland. Klasyczne podejście polegające na przetwarzaniu wsadowym nie zawsze się sprawdza. Wartość informacji maleje wraz z upływem czasu. Musimy wybrać kompromis pomiędzy szybkością, a dokładnością wyników. Z nagrania dowiesz się, dlaczego warto zainteresować się przetwarzaniem strumieniowym i jakie niesie ze sobą problemy.

Czytaj dalej Stream Processing – There’s no time like the present [nagranie]

Change Data Capture – Zmień Bazę W Strumień (Debezium)

Myślałeś/aś kiedyś o utworzeniu strumienia z operacji w bazie danych? W tym wpisie dowiesz się czym jest Change Data Capture i jak go wykorzystać planując architekturę naszego systemu. W części praktycznej sprawdzimy działanie Debezium na bazie MySQL

Czytaj dalej Change Data Capture – Zmień Bazę W Strumień (Debezium)

Najprostszy sposób na Klaster Apache Spark (Standalone Spark Cluster)

Apache Spark potrafi pokonać wydajnością Pandas działając na pojedynczej maszynie, ale zaprojektowany został by działać w klastrze. Uruchomienie klastra może wydawać się trudne, ale w rzeczywistości to bułka z masłem. W tym wpisie dowiesz się jak uruchomić najprostszy z klastrów, czyli Standalone Spark Cluster.

Czytaj dalej Najprostszy sposób na Klaster Apache Spark (Standalone Spark Cluster)

Jak Używać Variables i XCom w Apache Airflow?

Mówi się, że Apache Airflow to CRON na sterydach. Zdobywa uznanie wśród narzędzi do orchestracji ETL’i. Harmonogramowanie, zarządzanie i monitorowanie zadań mu nie straszne. Podstawowym sposobem definiowania zadań są acyklicze grafy skierowane (DAG). Zadania w nich muszą wymieniać się informacjami. We wpisie dowiesz się jak używać Variables i XCom w Apache Airflow.

Czytaj dalej Jak Używać Variables i XCom w Apache Airflow?

Czytelny Kod Scala w Apache Spark (4 podejścia)

Jupyter i Apache Zeppelin to dobre miejsce na eksperymentowanie z danymi. Niestety, specyfika notebook’ów nie zachęca do organizacji kodu, a w tym jego dekompozycji i czytelności. Możemy przekopiować komórki do Intellij IDEA i zbudować JAR’a, ale efekt będzie taki sobie. W artykule dowiesz się jak napisać czytelny kod Scala Apache Spark w Intellij IDEA.

Czytaj dalej Czytelny Kod Scala w Apache Spark (4 podejścia)

Analiza danych z Twitter dla leni w Elastic Stack (Xbox VS PlayStation)

Dane z Twitter można pozyskać na wiele sposobów, ale komu chce się pisać kod 😉. Szczególnie taki, który będzie działał 24/7. W Elastic Stack można w prosty sposób zbierać i analizować dane z Twitter’a. Logstash ma gotowe wejście do zbierania strumienia tweet’ów. Kafka Connect omawiana w poprzednim artykule również ma taką opcję, jednak Logstash może wysyłać dane do wielu źródeł (w tym do Apache Kafka) i jest prostszy w obsłudze.

W artykule:

  • Zapis strumienia tweetów do Elasticsearch w Logstash’u
  • Wizualizacje w Kibana (Xbox vs PlayStation)
  • Usunięcie tagów HTML dla keyword’a mechanizmem normalizacji
Czytaj dalej Analiza danych z Twitter dla leni w Elastic Stack (Xbox VS PlayStation)

PySpark ETL z MySQL i MongoDB do Cassandra

W Apache Spark/PySpark posługujemy się abstrakcjami, a faktyczne przetwarzanie dokonywane jest dopiero gdy chcemy zmaterializować wynik operacji. Do dyspozycji mamy szereg bibliotek, którymi możemy łączyć się z różnymi bazami i systemami plików. W tym artykule dowiesz się jak połączyć dane z MySQL i MongoDB, a następnie zapisać je w Apache Cassandra.

Czytaj dalej PySpark ETL z MySQL i MongoDB do Cassandra