Big Data – Jak zacząć?

No właśnie. Jak zacząć w świecie Big Data? Przecież tyle tych technologii. Widać to choćby na tym schemacie. http://mattturck.com/wp-content/uploads/2019/07/2019_Matt_Turck_Big_Data_Landscape_Final_Fullsize.png.

Newsletter

Amerykańscy naukowcy i radzieccy uczeni są zgodni w jednym: nie ma lepszego sposobu na początek przygody z Big Data, jak subskrypcja Wiadro Danych 😎

Język

Oczywiście najważniejszym językiem w IT jest… język angielski. Ale skończmy heheszki i oto czym powinieneś/aś się zainteresować:

  • Python – Przyda się praktycznie wszędzie. Od prostych skryptów, przez skrypty w PySparku, po machine learning i inne cuda.
  • Scala/Java – Większość bardziej znanych bloków składowych big data jest oparta na JVM, dlatego warto choć trochę znać te języki. Scala głównie dla Apache Spark.

Jeśli znasz już jakiś język to super. Z doświadczeniem coraz bardziej widać wspólny mianownik wszystkich języków programowania.

Środowisko

No dobra znamy już trochę te języki. Co teraz? Od czego zacząć? Przecież tego jest od cholery!?

Hadoop + HDFS + Spark lokalnie

Okazuje się, że nie trzeba wcale dużo, aby odpalić obliczenia na swojej maszynie. W internecie znajdziesz dużo tutoriali pokazujących jak ściągnąć, zainstalować i skonfigurować w.w elementy (np. https://code.dblock.org/2017/04/02/getting-started-with-spark-hadoop-hdfs-hive.html ).

Docker

Znasz Dockera? Jak nie to najwyższy czas go poznać. Od kiedy poznałem tę technologię, nie pamiętam kiedy ostatni raz zainstalowałem jakąś bazę danych ręcznie. Chcesz pobawić się Apache NiFi? Nie ma problemu. Prawdopodobnie na Docker Hub już dawno ktoś przygotował kontener. Odpalasz. Bawisz się. Usuwasz. Żadnych śmieci.

Najszybszą opcją na rozpoczęcie zabawy z Apache Spark jest odpalenie odpowiedniego kontenera Jupyter-a. Jest to taki interaktywny, webowy „notatnik” w którym piszesz kod.

Bazy NoSQL / NewSQL

Warto wyjść poza tradycyjne relacyjne bazy danych. Odpowiedzią m.in na rosnące zapotrzebowania na skalowanie horyzontalne powstały bazy NoSQL. Rozproszenie (patrz: teoria CAP). Wybierz jedną z baz np. Mongodb, Cassandra, Elasticsearch, Redis i poznaj jej właściwości oraz działanie.

Kolejki

Prędzej czy później spotkasz się z koniecznością użycia jakiejś kolejki. Najpopularniejsze to Apache Kafka i RabbitMQ. Wykorzystuje się je m.in do rozproszenia obciążenia. Klasyka: producent i konsument 😉

Hortonworks lub Cloudera Sandbox

Co prawda Cloudera wykupiła Hortonworks-a, ale nadal są dostępne sandboxy i jednej i drugiej firmy.

Jest to bardzo wygodne rozwiązanie. Odpalamy wirtualkę i mamy namiastkę klastra Hadoop razem z innymi komponentami. Jest to dobry pomysł na poznawanie nowych technologii. W dokumentacji znajdziesz sporo przykładów i tutoriali.

Własny klaster

Jeśli masz gdzie, to możesz pokusić się o postawienie swojego klastra. Możesz wykorzystać Ambari (czyli powyższy Hortonworks) lub Cloudera Data Warehouse (CDH). Bardzo fajną instrukcję dotyczącą Ambari znajdziesz na blogu Big Data Passion.

Rozwiązania chmurowe

Czasami patrząc na ilość serwisów i produktów dostępnych w ramach chmury publicznej jest tak duża, że nie wiadomo, od czego zacząć. Mimo wszystko warto zainteresować się tymi związanymi z Big Data. Okaże się, że to co się instalowało i konfigurowało pół dnia na AWS/Azure/GCP robi się kilkoma kliknięciami w formularzu.

W Azure jest HDInsight, w AWS jest EMR (Elastic MapReduce), a w GCP Dataproc

Skąd brać dane?

Załóżmy, że już masz czym. Teraz pytanie, jakie dane masz przetwarzać. Jest wiele opcji. Tutaj znajdziesz listę źródeł danych (w tym polskie).