SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
Hadoop w Hurtowni Danych nk.pl
wojciech.langiewicz@nasza-klasa.pl, 4 Developers 2012
Plan prezentacji

●

Problem

●

Rozwiązanie

●

Przykład nk.pl
Problem
Problem

●

Ogromna ilość danych

●

Które chcemy zbierać

●

Analizować

●

Wyciągać wnioski

●

Jak najszybciej

●

I najtaniej
Problem

●

Coraz więcej firm/portali/stron

●

Coraz więcej użytkowników

●

Coraz aktywniejsi użytkownicy

●

Maszyny generują coraz więcej danych
Rozwiązania
Rozwiązanie 1

●

Usuwamy dane po pewnym czasie

●

Początkowo logujemy ostatnie 30 dni

●

Wraz ze wzrostem ilości danych ten okres
maleje
Rozwiązanie 2

●

●

●

Zbieramy tylko pewną część danych
np. logujemy aktywności co 10
użytkownika (próbkowanie)
Lub zmniejszamy ilość danych informacji
jakie logujemy
Rozwiązanie „optymalne”

●

Hadoop - open-source software for
reliable, scalable, distributed computing

●

Nigdy więcej usuwania danych

●

Bez próbkowania

●

Commodity hardware, relability, avability,
open, free
Hadoop - założenia

●

Dane nie mieszczące się na jednej maszynie

●

Więcej maszyn → większa szansa awarii

●

Wcześniejsze rozwiązania nie skalowały się

●

Skanowanie (scan) dysku jest szybsze niż wyszukiwanie
(seek)

●

Przenoszenie obliczeń zamiast danych

●

Przetwarzanie danych nie mieści się na jednej maszynie
Hadoop - właściwości

●

●

●

●

●

Liniowo skalowany
na tysiące maszyn
Oparty na Javie
Analizy bez
agregacji

●

●

Bezpieczny –
replikacja

●

●

Prosty w użyciu
Massive parallel
processing
Używany przez
największych

●

Rozproszony

●

●

Cały ekosystem
Dane
niestrukturalizowane

Jeden system –
wiele zastosowań

Wbudowany failover

●

Prosty
Hadoop – podstawa architektury

●

●

Warstwa „niższa”: przechowywanie danych
(HDFS)
Warstwa „wyższa”: silnik wykonujący
zapytania (MapReduce)
HDFS

●

Hadoop Distributed File System

●

Optymalizacja pod dostęp sekwencyjny

●

Wbudowana replikacja

●

Metadane przechowywane na serwerze
Master (NameNode)
Źródło: http://hadoop.apache.org/common/docs/current/hdfs_design.html
MapReduce

●

●

●

●

Paradygmat programowania
rozproszonego
Czyni łatwiejszym rozproszone
przetwarzanie danych
Programista dostarcza implementacje
dwóch funkcji, map oraz reduce
Ukrywa przed programistą większość
problemów programowania rozproszonego
MapReduce – pseudokod Wordcount

map(String key, String value)
foreach word in value:
emit(word, 1);
reduce(String key, int[] values)
int result = 0;
foreach val in values:
result += val;
emit(key, result);
MapReduce - przykład
map (in): abaaabcab
map (out):
a 1
b 1
a 1
a 1
a 1
b 1
c 1
a 1
b 1

reduce
a [1 1
b [1 1
c [1]
reduce
a 5
b 3
c 1

(in):
1 1 1]
1]
(out):
MapReduce - diagram
map
reduce

map

HDFS
HDFS
reduce

map
map
Wczytanie danych

Sort, Shuffle, Merge

Zapis danych
Przykłady zadań

●

Szukanie wzorca (grep)

●

Zliczenia

●

Odwracanie grafu www (inverted index)

●

Sortowanie

●

Wszystko co możemy zapisać jako
MapReduce
Dostęp do danych (interfejsy)

●

Java

●

Streaming

●

Hive

●

Pig
Hive

●

„Hurtownia danych na Hadoopie”

●

Dostęp do danych za pomocą SQL

●

Interface JDBC

●

Wymaga wcześniejszej konfiguracji bazy z
metadanymi
Problemy

●

●

●

●

Na start potrzeba kilku serwerów, aby
zauważyć wzrost wydajności
To nie jest OLTP (zapytania mogą trwać
minuty, a nawet godziny)
Projekt we wczesnej wersji, 1.0 dopiero od
niedawna (ale i tak popularny)
Potrzebujesz zarządzania konfiguracją
Przykład nk.pl
Logi aplikacji (PHP)
LVS

300GB dziennie

syslog

Klaster PHP

Flume

ETL
RDBMS

Serwer BI

HDFS

HiveQL

Hive
JDBC
Co dalej?

●

www.cloudera.com

●

http://pig.apache.org

●

http://hbase.apache.org
Czas na pytania
Dziękuję za uwagę!
developers.nk.pl

Weitere ähnliche Inhalte

Andere mochten auch

Verruga Peruana: An Infectious Endemic Angiomatosis
Verruga Peruana: An Infectious Endemic AngiomatosisVerruga Peruana: An Infectious Endemic Angiomatosis
Verruga Peruana: An Infectious Endemic AngiomatosisDr. Juan Rodriguez-Tafur
 
4 que entiendo por desarrollo fisico
4 que entiendo por desarrollo fisico4 que entiendo por desarrollo fisico
4 que entiendo por desarrollo fisicoamaliafdz
 
Apresentaçao oficial total one
Apresentaçao oficial total oneApresentaçao oficial total one
Apresentaçao oficial total oneWellisson Araujo
 
Qtum How To Make EVM Run On UTXO Model - Patrick Dai
Qtum How To Make EVM Run On UTXO Model - Patrick DaiQtum How To Make EVM Run On UTXO Model - Patrick Dai
Qtum How To Make EVM Run On UTXO Model - Patrick DaiQtum
 
Закон об онлайн-кассах и сроки его реализации
Закон об онлайн-кассах и сроки его реализацииЗакон об онлайн-кассах и сроки его реализации
Закон об онлайн-кассах и сроки его реализацииMoySklad
 
Partners On Demand: Working with your printer to print sustainably
Partners On Demand: Working with your printer to print sustainablyPartners On Demand: Working with your printer to print sustainably
Partners On Demand: Working with your printer to print sustainablyAIGA Portland
 
saskia_koerner_resume_2015_photo
saskia_koerner_resume_2015_photosaskia_koerner_resume_2015_photo
saskia_koerner_resume_2015_photoSaskia Koerner
 
שנה טובה מישראל נגלית לעין
שנה טובה מישראל נגלית לעיןשנה טובה מישראל נגלית לעין
שנה טובה מישראל נגלית לעיןisraelalbum_ybz
 
Fazzini varoli sindrome di werner
Fazzini varoli sindrome di wernerFazzini varoli sindrome di werner
Fazzini varoli sindrome di wernerALESSIA VAROLI
 
Jardi mregulamento interno_julho2015
Jardi mregulamento interno_julho2015Jardi mregulamento interno_julho2015
Jardi mregulamento interno_julho2015patronatobonanca
 
External financial support for researchers and academics
External financial support for researchers and academicsExternal financial support for researchers and academics
External financial support for researchers and academicsMoayad Alserihi
 

Andere mochten auch (14)

Verruga Peruana: An Infectious Endemic Angiomatosis
Verruga Peruana: An Infectious Endemic AngiomatosisVerruga Peruana: An Infectious Endemic Angiomatosis
Verruga Peruana: An Infectious Endemic Angiomatosis
 
4 que entiendo por desarrollo fisico
4 que entiendo por desarrollo fisico4 que entiendo por desarrollo fisico
4 que entiendo por desarrollo fisico
 
Apresentaçao oficial total one
Apresentaçao oficial total oneApresentaçao oficial total one
Apresentaçao oficial total one
 
Qtum How To Make EVM Run On UTXO Model - Patrick Dai
Qtum How To Make EVM Run On UTXO Model - Patrick DaiQtum How To Make EVM Run On UTXO Model - Patrick Dai
Qtum How To Make EVM Run On UTXO Model - Patrick Dai
 
Закон об онлайн-кассах и сроки его реализации
Закон об онлайн-кассах и сроки его реализацииЗакон об онлайн-кассах и сроки его реализации
Закон об онлайн-кассах и сроки его реализации
 
Partners On Demand: Working with your printer to print sustainably
Partners On Demand: Working with your printer to print sustainablyPartners On Demand: Working with your printer to print sustainably
Partners On Demand: Working with your printer to print sustainably
 
saskia_koerner_resume_2015_photo
saskia_koerner_resume_2015_photosaskia_koerner_resume_2015_photo
saskia_koerner_resume_2015_photo
 
PGDM(SCM)_2015
PGDM(SCM)_2015PGDM(SCM)_2015
PGDM(SCM)_2015
 
שנה טובה מישראל נגלית לעין
שנה טובה מישראל נגלית לעיןשנה טובה מישראל נגלית לעין
שנה טובה מישראל נגלית לעין
 
Fazzini varoli sindrome di werner
Fazzini varoli sindrome di wernerFazzini varoli sindrome di werner
Fazzini varoli sindrome di werner
 
World of Champions (3)
World of Champions (3)World of Champions (3)
World of Champions (3)
 
Jardi mregulamento interno_julho2015
Jardi mregulamento interno_julho2015Jardi mregulamento interno_julho2015
Jardi mregulamento interno_julho2015
 
External financial support for researchers and academics
External financial support for researchers and academicsExternal financial support for researchers and academics
External financial support for researchers and academics
 
Gramática - Advérbio
Gramática - Advérbio Gramática - Advérbio
Gramática - Advérbio
 

Ähnlich wie Hadoop w NK.pl

Wprowadzenie do Big Data i Apache Spark
Wprowadzenie do Big Data i Apache SparkWprowadzenie do Big Data i Apache Spark
Wprowadzenie do Big Data i Apache SparkSages
 
Rozproszona analiza danych w Hadoop - wprowadzenie
Rozproszona analiza danych w Hadoop - wprowadzenieRozproszona analiza danych w Hadoop - wprowadzenie
Rozproszona analiza danych w Hadoop - wprowadzenieŁukasz Król
 
Docker na MacOS przy wsparciu maszyny wirtualnej z Linuksem [PL]
Docker na MacOS przy wsparciu maszyny wirtualnej z Linuksem [PL]Docker na MacOS przy wsparciu maszyny wirtualnej z Linuksem [PL]
Docker na MacOS przy wsparciu maszyny wirtualnej z Linuksem [PL]Droptica
 
Paweł Kucharski: Oswajamy Słonia czyli po co nam Hadoop
Paweł Kucharski: Oswajamy Słonia czyli po co nam HadoopPaweł Kucharski: Oswajamy Słonia czyli po co nam Hadoop
Paweł Kucharski: Oswajamy Słonia czyli po co nam HadoopAnalyticsConf
 
[#4] spark - IBM Integrated Analytics System
[#4] spark - IBM Integrated Analytics System[#4] spark - IBM Integrated Analytics System
[#4] spark - IBM Integrated Analytics SystemArtur Wronski
 
Confitura 2018 - Sekretne życie jobów Sparkowych
Confitura 2018 - Sekretne życie jobów SparkowychConfitura 2018 - Sekretne życie jobów Sparkowych
Confitura 2018 - Sekretne życie jobów SparkowychMarcin Jasiński
 
Struktura i własności systemu zarządzania treścią Drupal
Struktura i własności systemu zarządzania treścią DrupalStruktura i własności systemu zarządzania treścią Drupal
Struktura i własności systemu zarządzania treścią DrupalGrzegorz Bartman
 
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014Grzegorz Bartman
 
CodiLime Tech Talk - Michał Sochoń: Sphinx, reST & Ansible
CodiLime Tech Talk - Michał Sochoń: Sphinx, reST & AnsibleCodiLime Tech Talk - Michał Sochoń: Sphinx, reST & Ansible
CodiLime Tech Talk - Michał Sochoń: Sphinx, reST & AnsibleCodiLime
 
The story of GOG.com Cache - PHPers 2014 ( PL )
 The story of GOG.com Cache - PHPers 2014 ( PL ) The story of GOG.com Cache - PHPers 2014 ( PL )
The story of GOG.com Cache - PHPers 2014 ( PL )GOG.com dev team
 
Dlaczego Twoja kolejna aplikacja powinna bazować na platformie Drupal?
Dlaczego Twoja kolejna aplikacja powinna bazować na platformie Drupal?Dlaczego Twoja kolejna aplikacja powinna bazować na platformie Drupal?
Dlaczego Twoja kolejna aplikacja powinna bazować na platformie Drupal?Grzegorz Bartman
 
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegroallegro.tech
 
The story of GOG.com Cache - 4developers 2014 ( PL )
The story of GOG.com Cache - 4developers 2014 ( PL )The story of GOG.com Cache - 4developers 2014 ( PL )
The story of GOG.com Cache - 4developers 2014 ( PL )GOG.com dev team
 
Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...
Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...
Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...The Software House
 
Jak przygotować dane do uczenia maszynowego? | Ermlab Software
Jak przygotować dane do uczenia maszynowego? | Ermlab SoftwareJak przygotować dane do uczenia maszynowego? | Ermlab Software
Jak przygotować dane do uczenia maszynowego? | Ermlab SoftwareErmlab Software
 
Wiosenne Wieczory ze Scrum 2 Estymacja i Planowanie
Wiosenne Wieczory ze Scrum 2 Estymacja i PlanowanieWiosenne Wieczory ze Scrum 2 Estymacja i Planowanie
Wiosenne Wieczory ze Scrum 2 Estymacja i PlanowanieMichał Parkoła
 
multi-tier cache at gog.com - 4developers
multi-tier cache at gog.com -  4developersmulti-tier cache at gog.com -  4developers
multi-tier cache at gog.com - 4developersMaciej Włodarkiewicz
 

Ähnlich wie Hadoop w NK.pl (20)

Wprowadzenie do Big Data i Apache Spark
Wprowadzenie do Big Data i Apache SparkWprowadzenie do Big Data i Apache Spark
Wprowadzenie do Big Data i Apache Spark
 
Rozproszona analiza danych w Hadoop - wprowadzenie
Rozproszona analiza danych w Hadoop - wprowadzenieRozproszona analiza danych w Hadoop - wprowadzenie
Rozproszona analiza danych w Hadoop - wprowadzenie
 
Docker na MacOS przy wsparciu maszyny wirtualnej z Linuksem [PL]
Docker na MacOS przy wsparciu maszyny wirtualnej z Linuksem [PL]Docker na MacOS przy wsparciu maszyny wirtualnej z Linuksem [PL]
Docker na MacOS przy wsparciu maszyny wirtualnej z Linuksem [PL]
 
Paweł Kucharski: Oswajamy Słonia czyli po co nam Hadoop
Paweł Kucharski: Oswajamy Słonia czyli po co nam HadoopPaweł Kucharski: Oswajamy Słonia czyli po co nam Hadoop
Paweł Kucharski: Oswajamy Słonia czyli po co nam Hadoop
 
[#4] spark - IBM Integrated Analytics System
[#4] spark - IBM Integrated Analytics System[#4] spark - IBM Integrated Analytics System
[#4] spark - IBM Integrated Analytics System
 
Confitura 2018 - Sekretne życie jobów Sparkowych
Confitura 2018 - Sekretne życie jobów SparkowychConfitura 2018 - Sekretne życie jobów Sparkowych
Confitura 2018 - Sekretne życie jobów Sparkowych
 
Struktura i własności systemu zarządzania treścią Drupal
Struktura i własności systemu zarządzania treścią DrupalStruktura i własności systemu zarządzania treścią Drupal
Struktura i własności systemu zarządzania treścią Drupal
 
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
 
CodiLime Tech Talk - Michał Sochoń: Sphinx, reST & Ansible
CodiLime Tech Talk - Michał Sochoń: Sphinx, reST & AnsibleCodiLime Tech Talk - Michał Sochoń: Sphinx, reST & Ansible
CodiLime Tech Talk - Michał Sochoń: Sphinx, reST & Ansible
 
The story of GOG.com Cache - PHPers 2014 ( PL )
 The story of GOG.com Cache - PHPers 2014 ( PL ) The story of GOG.com Cache - PHPers 2014 ( PL )
The story of GOG.com Cache - PHPers 2014 ( PL )
 
MongoDB 2011
MongoDB 2011MongoDB 2011
MongoDB 2011
 
Dlaczego Twoja kolejna aplikacja powinna bazować na platformie Drupal?
Dlaczego Twoja kolejna aplikacja powinna bazować na platformie Drupal?Dlaczego Twoja kolejna aplikacja powinna bazować na platformie Drupal?
Dlaczego Twoja kolejna aplikacja powinna bazować na platformie Drupal?
 
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
 
The story of GOG.com Cache - 4developers 2014 ( PL )
The story of GOG.com Cache - 4developers 2014 ( PL )The story of GOG.com Cache - 4developers 2014 ( PL )
The story of GOG.com Cache - 4developers 2014 ( PL )
 
Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...
Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...
Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...
 
Jak przygotować dane do uczenia maszynowego? | Ermlab Software
Jak przygotować dane do uczenia maszynowego? | Ermlab SoftwareJak przygotować dane do uczenia maszynowego? | Ermlab Software
Jak przygotować dane do uczenia maszynowego? | Ermlab Software
 
Wiosenne Wieczory ze Scrum 2 Estymacja i Planowanie
Wiosenne Wieczory ze Scrum 2 Estymacja i PlanowanieWiosenne Wieczory ze Scrum 2 Estymacja i Planowanie
Wiosenne Wieczory ze Scrum 2 Estymacja i Planowanie
 
multi-tier cache at gog.com - 4developers
multi-tier cache at gog.com -  4developersmulti-tier cache at gog.com -  4developers
multi-tier cache at gog.com - 4developers
 
Data Vault w chmurze
Data Vault w chmurzeData Vault w chmurze
Data Vault w chmurze
 
The story of GOG.com Cache
The story of GOG.com Cache The story of GOG.com Cache
The story of GOG.com Cache
 

Mehr von Wojciech Langiewicz

Mehr von Wojciech Langiewicz (9)

JSON API Specificiation
JSON API SpecificiationJSON API Specificiation
JSON API Specificiation
 
Bitcoin: introduction for programmers - Pecha Kucha
Bitcoin:   introduction for programmers - Pecha KuchaBitcoin:   introduction for programmers - Pecha Kucha
Bitcoin: introduction for programmers - Pecha Kucha
 
Ionic 2 intro
Ionic 2   introIonic 2   intro
Ionic 2 intro
 
Mutation testing in Java
Mutation testing in JavaMutation testing in Java
Mutation testing in Java
 
Bitcoin for programmers - part 1 version 2
Bitcoin for programmers - part 1 version 2Bitcoin for programmers - part 1 version 2
Bitcoin for programmers - part 1 version 2
 
Introduction to Bitcoin for programmers
Introduction to Bitcoin for programmersIntroduction to Bitcoin for programmers
Introduction to Bitcoin for programmers
 
2014 hadoop wrocław jug
2014 hadoop   wrocław jug2014 hadoop   wrocław jug
2014 hadoop wrocław jug
 
Badanie skalowalności HBase
Badanie skalowalności HBaseBadanie skalowalności HBase
Badanie skalowalności HBase
 
Introduction to Octopress at DRUG
Introduction to Octopress at DRUGIntroduction to Octopress at DRUG
Introduction to Octopress at DRUG
 

Hadoop w NK.pl