Wprowadzenie do Apache Hadoop i ekosystemu projektów z nim powiązanych w oparciu o nasze doświadczenia przechodzenia na Hadoop'a z tradycynego SQLa. Opowiem czym jest Hadoop i czym rózni się od relacyjnych baz danych, dlaczego zdecydowaliśmy się na Hadoop'a, co zyskalismy i jakie problemy napotkalismy pracując z Hadoop'em.
Introduction to Hadoop Map Reduce, Pig, Hive and HBase technologies.
Workshop deck prepared and presented on May 30th 2015 by Radosław Stankiewicz.
During that day participants had also possibility to go through prepared tutorials and test their analysis on real cluster.
Rozproszona analiza danych w Hadoop - wprowadzenieŁukasz Król
Jednym z najważniejszych trendów współczesnej informatyki jest ciągły wzrost rozmiaru przechowywanych oraz analizowanych danych. Giganci internetowi (np. Google, Facebook, Twitter) dla których analiza nieustrukturalizowanych danych o rozmiarze powyżej kilkunastu terabajtów jest koniecznością musieli zmierzyć się z sytuacją, w której rozwiązania klasyczne okazywały się niewystarczające lub zbyt drogie. Odpowiedzią na te wyzywania okazał się Hadoop. Sam trend Big Data sprawił, że i inne podmioty zaczęły szukać wartości dodanej w wykorzystaniu Hadoopa - jeśli nie dla własnych danych, to dla tych pochodzących z zewnątrz. Nie brakuje też inicjatyw wykorzystania Hadoopa do analizy danych biologicznych.
W ramach 3 godzinnego połączonego z warsztatami wykładu przedstawione zostaną na podstawie dystrybucji firmy Cloudera założenia Hadoopa oraz jego podstawowe komponenty. Poruszone zostaną również zagadnienia przypadków użycia dla Hadoopa w kontekście rozwiązań klasycznych (relacyjna hurtownia danych).
Confitura 2018 - Sekretne życie jobów SparkowychMarcin Jasiński
Apache Spark to coraz bardziej popularny framework do tworzenia przetwarzań Big Data. Gdy wywalają się executory, zwiększamy ilość pamięci. Gdy job wykonuje się zbyt wolno, zwiększamy ilość executorów. Zwiększenie ilości zasobów to żadna optymalizacja i z czasem nasz klaster Hadoop jest w pełni utylizowany i nie można uruchamiać kolejnych przetwarzań. A przecież da się inaczej! Klaster Hadoop w Allegro to setki jobów uruchomionych jednocześnie, z czego większość to joby Sparkowe. Opowiemy historię kilku z nich i przemiany, które przeszły. W tym najbardziej spektakularną: od 2500 do 240GB RAM.
4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...PROIDEA
Krzysztof Suszka
Language: Polish
Duża dostępność chmur spowodowała, że tworzenie olbrzymich, skalowalnych systemów stało się dostępne dla każdego. Jednak sama chmura nie rozwiązuje wszystkich problemów. Nadal trzeba włożyć sporo wysiłku w taką konstrukcję systemu, która pozwoli z tej chmury efektywnie korzystać. Orleans jest eksperymentalną platformą, która próbuje odnieść się do tego problemu, zrzucając z programisty obowiązek myślenia o fizycznej dystrybucji elementów aplikacji. Orleans dostarcza API zbudowane w oparciu o sprawdzony Actor Model. W czasie prelekcji przedstawione zostaną podstawowe mechanizmy działania tej platformy oraz prosty przykład pokazujący fragment jej możliwości.
Allegro Tech Talks Poznań #4: Jak przyspieszyć SOLRa w kilku prostych krokach. allegro.tech
40 milionów wyszukiwań dziennie, setki tysięcy uaktualizacji indeksu czyni z Allegro.pl drugą co do wielkości wyszukiwarkę w Polsce. Nie wszyscy wiedzą, że główną wyszukiwarkę ofertową w Allegro.pl napędza Apache SOLR. Opowiemy o naszych doświadczeniach z optymalizacją zapytań do SOLRa, o tym jak udało nam się znacznie zmniejszyć czasy odpowiedzi i zwiększyć stabilność działania naszego searcha. W czasie prezentacji poruszymy kwestie związane z tworzeniem schematu, wykorzystaniem odpowiednich typów danych, wykorzystania cachea, efektywnego filtrowania i innych optymalizacji, które udało nam się wdrożyć z sukcesem.
Wygłoszono w trakcie czwartej edycji Allegro Tech Talks w Poznaniu.
Adam Dudczak - Starszy programista w Grupie Allegro, pracuje z Javą i technologiami powiązanymi od 2004 roku. Na codzień pracuje nad wyszukiwarką allegro.pl. Jeden z liderów Poznań JUG (http://www.jug.poznan.pl) i współorganizator konferencji GeeCON (http://geecon.org).
Przemysław Szeremiota - Starszy programista w Grupie Allegro od 2008. Zaczynał pracę w zespole wydajności programując w C/C++, przeżył fascynację Javascriptem i zaznał Javy, obecnie doskonale czuje się pływając w mieszance Basha i JQ. W wolnych chwilach przetłumaczył ponad 70 książek technicznych.
Introduction to Hadoop Map Reduce, Pig, Hive and HBase technologies.
Workshop deck prepared and presented on May 30th 2015 by Radosław Stankiewicz.
During that day participants had also possibility to go through prepared tutorials and test their analysis on real cluster.
Rozproszona analiza danych w Hadoop - wprowadzenieŁukasz Król
Jednym z najważniejszych trendów współczesnej informatyki jest ciągły wzrost rozmiaru przechowywanych oraz analizowanych danych. Giganci internetowi (np. Google, Facebook, Twitter) dla których analiza nieustrukturalizowanych danych o rozmiarze powyżej kilkunastu terabajtów jest koniecznością musieli zmierzyć się z sytuacją, w której rozwiązania klasyczne okazywały się niewystarczające lub zbyt drogie. Odpowiedzią na te wyzywania okazał się Hadoop. Sam trend Big Data sprawił, że i inne podmioty zaczęły szukać wartości dodanej w wykorzystaniu Hadoopa - jeśli nie dla własnych danych, to dla tych pochodzących z zewnątrz. Nie brakuje też inicjatyw wykorzystania Hadoopa do analizy danych biologicznych.
W ramach 3 godzinnego połączonego z warsztatami wykładu przedstawione zostaną na podstawie dystrybucji firmy Cloudera założenia Hadoopa oraz jego podstawowe komponenty. Poruszone zostaną również zagadnienia przypadków użycia dla Hadoopa w kontekście rozwiązań klasycznych (relacyjna hurtownia danych).
Confitura 2018 - Sekretne życie jobów SparkowychMarcin Jasiński
Apache Spark to coraz bardziej popularny framework do tworzenia przetwarzań Big Data. Gdy wywalają się executory, zwiększamy ilość pamięci. Gdy job wykonuje się zbyt wolno, zwiększamy ilość executorów. Zwiększenie ilości zasobów to żadna optymalizacja i z czasem nasz klaster Hadoop jest w pełni utylizowany i nie można uruchamiać kolejnych przetwarzań. A przecież da się inaczej! Klaster Hadoop w Allegro to setki jobów uruchomionych jednocześnie, z czego większość to joby Sparkowe. Opowiemy historię kilku z nich i przemiany, które przeszły. W tym najbardziej spektakularną: od 2500 do 240GB RAM.
4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...PROIDEA
Krzysztof Suszka
Language: Polish
Duża dostępność chmur spowodowała, że tworzenie olbrzymich, skalowalnych systemów stało się dostępne dla każdego. Jednak sama chmura nie rozwiązuje wszystkich problemów. Nadal trzeba włożyć sporo wysiłku w taką konstrukcję systemu, która pozwoli z tej chmury efektywnie korzystać. Orleans jest eksperymentalną platformą, która próbuje odnieść się do tego problemu, zrzucając z programisty obowiązek myślenia o fizycznej dystrybucji elementów aplikacji. Orleans dostarcza API zbudowane w oparciu o sprawdzony Actor Model. W czasie prelekcji przedstawione zostaną podstawowe mechanizmy działania tej platformy oraz prosty przykład pokazujący fragment jej możliwości.
Allegro Tech Talks Poznań #4: Jak przyspieszyć SOLRa w kilku prostych krokach. allegro.tech
40 milionów wyszukiwań dziennie, setki tysięcy uaktualizacji indeksu czyni z Allegro.pl drugą co do wielkości wyszukiwarkę w Polsce. Nie wszyscy wiedzą, że główną wyszukiwarkę ofertową w Allegro.pl napędza Apache SOLR. Opowiemy o naszych doświadczeniach z optymalizacją zapytań do SOLRa, o tym jak udało nam się znacznie zmniejszyć czasy odpowiedzi i zwiększyć stabilność działania naszego searcha. W czasie prezentacji poruszymy kwestie związane z tworzeniem schematu, wykorzystaniem odpowiednich typów danych, wykorzystania cachea, efektywnego filtrowania i innych optymalizacji, które udało nam się wdrożyć z sukcesem.
Wygłoszono w trakcie czwartej edycji Allegro Tech Talks w Poznaniu.
Adam Dudczak - Starszy programista w Grupie Allegro, pracuje z Javą i technologiami powiązanymi od 2004 roku. Na codzień pracuje nad wyszukiwarką allegro.pl. Jeden z liderów Poznań JUG (http://www.jug.poznan.pl) i współorganizator konferencji GeeCON (http://geecon.org).
Przemysław Szeremiota - Starszy programista w Grupie Allegro od 2008. Zaczynał pracę w zespole wydajności programując w C/C++, przeżył fascynację Javascriptem i zaznał Javy, obecnie doskonale czuje się pływając w mieszance Basha i JQ. W wolnych chwilach przetłumaczył ponad 70 książek technicznych.
Prezentacja dotycząca wydajnego przetwarzania ruchu IP na PC wygłoszona podczas IT Conference na WAT (http://itacademicday.azurewebsites.net/), listopad 2015.
(Polish only) Talk regarding effective IP traffic processing on x86 platforms, given at IT Academic Day / Military University of Technology in Warsaw, November 2015.
[#2] architektura - IBM Integrated Analytics SystemArtur Wronski
Presentation #2 from IBM conference "Analityka Nowej Generacji", 8th of March 2018, Warsaw
Title: IBM Integrated Analytics System architecture
Presenter: Marcin Marczewski
[language: polish]
Monitoring systemu. Dlaczego mój kardiolog jest bogatym człowiekiem?The Software House
Wojciech Wójcik: W temacie monitorowania systemów IT powiedziano już oceany słów na niezliczonych prezentacjach. Przedstawię wam jednak opowieść o mitologicznym Prometheuszu. Opowieść, która mogłaby konkurować z Grą o tron, a Koronę Królów zjadłaby na przystawkę. W jej trakcie zdradzę wam sekrety monitorowania Kubernetes, ale i nie tylko. Miejcie jednak na uwadze, że nie wszystkie potyczki się wygrywa – dzięki czemu zaszczycę was też możliwością wysłuchania ciekawych historii o fuckupach.
Prezentacja będzie zawierała luźne anegdoty i doświadczenia z używania kontenerów dockera w produkcji, również do hostowania aplikacji PHP. Sposoby budowania kontenerów, typowe problemy deploymentu.
[#4] spark - IBM Integrated Analytics SystemArtur Wronski
Presentation #4 from IBM conference "Analityka Nowej Generacji", 8th of March 2018, Warsaw
Title: Introduction to data science and spark
Presenter: Marcin Janiszewski
[language: polish]
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...The Software House
Niezależnie od tego, czy jesteście developerami, sysadminami, czy też DevOps Engineers – prawie na pewno mieliście doświadczenie z webowymi panelami dostawców usług infrastrukturalnych takich jak AWS, GCP czy też OVH. Z poziomu tych paneli da się “wyklikać” wszystko, czego potrzeba, ale… czy aby na pewno tędy droga? Środowiskiem bardziej naturalnym dla każdego inżyniera jest wszakże edytor tekstu (czy też IDE) oraz różnorakie polecenia wydawane komputerowi w formie skryptów. Czemu by więc z tego nie skorzystać? Jeśli od klikania bez możliwości pomyłki boli Was ręka, zainwestuj w podkładkę pod mysz… ale przede wszystkim wpadnij na prelekcję Piotra, na której to opowie o założeniach podejścia IaC, jego zaletach oraz przedstawi najpopularniejsze narzędzia.
Michał Żyliński: Cortana dla niewtajemniczonychAnalyticsConf
Praktyczne wprowadzenie do nowoczesnych narzędzi analitycznych na przykładzie usług wchodzących w skład Microsoft Cortana Analytics Suite. Na konkretnych przykładach postaram się pokazać uczestnikom, jak przygotować się do przetwarzania dużej ilości danych. Jakie (darmowe i komercyjne) technologie znaleźć można na rynku? Jakie role i kompetencje przydadzą się wewnątrz organizacji? Jak dobrać właściwe narzędzia? Na czym warto skupić się samemu, a kiedy szukać pomocy na zewnątrz? Omówione zostaną również pierwsze komercyjne wdrożenia Cortany.
Prezentacja dotycząca wydajnego przetwarzania ruchu IP na PC wygłoszona podczas IT Conference na WAT (http://itacademicday.azurewebsites.net/), listopad 2015.
(Polish only) Talk regarding effective IP traffic processing on x86 platforms, given at IT Academic Day / Military University of Technology in Warsaw, November 2015.
[#2] architektura - IBM Integrated Analytics SystemArtur Wronski
Presentation #2 from IBM conference "Analityka Nowej Generacji", 8th of March 2018, Warsaw
Title: IBM Integrated Analytics System architecture
Presenter: Marcin Marczewski
[language: polish]
Monitoring systemu. Dlaczego mój kardiolog jest bogatym człowiekiem?The Software House
Wojciech Wójcik: W temacie monitorowania systemów IT powiedziano już oceany słów na niezliczonych prezentacjach. Przedstawię wam jednak opowieść o mitologicznym Prometheuszu. Opowieść, która mogłaby konkurować z Grą o tron, a Koronę Królów zjadłaby na przystawkę. W jej trakcie zdradzę wam sekrety monitorowania Kubernetes, ale i nie tylko. Miejcie jednak na uwadze, że nie wszystkie potyczki się wygrywa – dzięki czemu zaszczycę was też możliwością wysłuchania ciekawych historii o fuckupach.
Prezentacja będzie zawierała luźne anegdoty i doświadczenia z używania kontenerów dockera w produkcji, również do hostowania aplikacji PHP. Sposoby budowania kontenerów, typowe problemy deploymentu.
[#4] spark - IBM Integrated Analytics SystemArtur Wronski
Presentation #4 from IBM conference "Analityka Nowej Generacji", 8th of March 2018, Warsaw
Title: Introduction to data science and spark
Presenter: Marcin Janiszewski
[language: polish]
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...The Software House
Niezależnie od tego, czy jesteście developerami, sysadminami, czy też DevOps Engineers – prawie na pewno mieliście doświadczenie z webowymi panelami dostawców usług infrastrukturalnych takich jak AWS, GCP czy też OVH. Z poziomu tych paneli da się “wyklikać” wszystko, czego potrzeba, ale… czy aby na pewno tędy droga? Środowiskiem bardziej naturalnym dla każdego inżyniera jest wszakże edytor tekstu (czy też IDE) oraz różnorakie polecenia wydawane komputerowi w formie skryptów. Czemu by więc z tego nie skorzystać? Jeśli od klikania bez możliwości pomyłki boli Was ręka, zainwestuj w podkładkę pod mysz… ale przede wszystkim wpadnij na prelekcję Piotra, na której to opowie o założeniach podejścia IaC, jego zaletach oraz przedstawi najpopularniejsze narzędzia.
Michał Żyliński: Cortana dla niewtajemniczonychAnalyticsConf
Praktyczne wprowadzenie do nowoczesnych narzędzi analitycznych na przykładzie usług wchodzących w skład Microsoft Cortana Analytics Suite. Na konkretnych przykładach postaram się pokazać uczestnikom, jak przygotować się do przetwarzania dużej ilości danych. Jakie (darmowe i komercyjne) technologie znaleźć można na rynku? Jakie role i kompetencje przydadzą się wewnątrz organizacji? Jak dobrać właściwe narzędzia? Na czym warto skupić się samemu, a kiedy szukać pomocy na zewnątrz? Omówione zostaną również pierwsze komercyjne wdrożenia Cortany.
Laravel Poznań Meetup #7 - "Praktyczne użycie Repository Pattern w Laravel cz...HighSolutions Sp. z o.o.
Prezentacja, która miała miejsce 2018-10-04 w Poznaniu.
Wykonanie: Marek Tenus (HighSolutions)
Temat: "Praktyczne użycie Repository Pattern w Laravel cz. I"
Tor Hovland: Taking a swim in the big data lakeAnalyticsConf
Are you curious about the possibilities enabled by Microsoft Azure and Cortana Analytics? Come and see how to handle data input from a large number of “Internet of Things” devices, how to work with all the data, how to scale big computations, how to make predictions, and how to build applications on top of it. There will be demos!
Rafał Korszuń: Security in Design of Cloud ApplicationsAnalyticsConf
W jaki sposób projektowanie aplikacji wpływa na bezpieczeństwo? Zasady projektowania aplikacji krytycznych ze względu na charakter przetrzymywanych danych. Omówienie ciekawszych przypadków wdrożenia lub nie securyty designu.
Tomasz Kopacz: Architektura i service fabric - jak budować aplikacje w paas v2AnalyticsConf
Service Fabric zmienia sposób myślenia o architekturze rozwiązań. Skalowanie warstwy UI jest proste. Ale - w przypadku logiki biznesowej, dotychczas można było albo budować szybko działające aplikacje typu "monolit" albo - skalowalne, n-warstwowe aplikacje oparte o kolejki (i podobne mechanizmy). Tu - dzięki zupełnie innemu podejściu do problemu - można te światy połączyć. Sesja dosyć techniczna!
The document discusses functional programming in C# and how it can help control complexity. It defines functional programming as treating computations as mathematical functions without changing state. The document provides examples of copying photo files using both object-oriented and functional approaches in C#. The functional approach uses function composition and immutable data to avoid state changes and control flow, making the focus on specifying transformations rather than algorithms.
Grzegorz Rycaj: Zdebuguj swoja prezentacjeAnalyticsConf
Każdy z nas staje czasem przed zadaniem pokazania światu swojego rozwiązania. No właśnie – jak zachęcić słuchacza do zainteresowania się naszym dziełem? Co sprawi, że zostaniemy obdarzeni zaufaniem oraz jakich najpopularniejszych błędów się wystrzegać? Na te i inne pytania odpowiem podczas mojej sesji!
Związany z technologiami Microsoft od początku kariery zawodowej, najpierw jako programista .NET, później architekt hurtowni danych. Zarządzał zespołami wdrażającymi rozwiązania oparte o MS BI m.in. w Grupie Energa, LOTOS, czy EuroStyl. Nastawiony na tworzenie rozwiązań praktycznych, zautomatyzowanych, prostych. MCSE: Business Intelligence
Sesja zapoznawcza na temat narzędzia Microsoftu do analizy danych – PowerBI. Koncepcja działania. Obsługiwane platformy. Wymagania. Źródła danych. Pulpit nawigacyjny i dashboardy oraz dostępne wizualizacje.
Shannon Holgate: Bending non-splittable data to harness distributed performanceAnalyticsConf
Performant XML processing in a distributed environment is a major challenge. We will dive into a financially viable pipeline to extract, load and transform XML on a platform of performance and flexibility. Hadoop, Spark and Impala will feature in this session about bringing commodity applications to a market of proprietary solutions.
What can we achieve by processing non-splittable data in a distributed fashion? I will talk about the motivation behind our research and show how we evolved a solution to cope with an ever changing environment. Stepping into the solution, I will show how you can strip away the restrictions of XML and load it onto Hadoop ready for analysis at scale in both an adhoc and modelling fashion.
Evaluating and evolving this solution is paramount. Load and throughput testing methods are highlighted along with guidance on tuning both the pipeline and the Hadoop platform to ensure your solution is optimised for a dynamic environment.
This document discusses open data initiatives in Gdańsk, Poland. It notes that open data has significant economic benefits, estimating a 0.4-4.1% increase in GDP. Gdańsk has an open data policy and shares various city datasets like expenditures, prices, and information requests. The city develops open source web applications using this data to engage residents and show the potential of open data. It also partners with civil society to collaboratively work on projects through an open platform.
Włodek Bielski: Efektywne wdrożenie BI - z notatnika praktykaAnalyticsConf
Podczas sesji na rzeczywistych przykładach prześledzimy częste błędy popełniane podczas wdrożenia systemu BI. Rozważymy typowe sytuacje kryzysowe oraz sposoby radzenia z nimi. Przedyskutujemy też możliwości zastosowania formalnych procesów we wdrażaniu BI. Na koniec postaramy się określić zbiór najlepszych praktyk, mających zastosowanie w większości projektów.
Piotr Janczyk: Modele zachowań klientówAnalyticsConf
Czyli jak analizować dane w sprzedaży i marketingu?
Dynamiczna segmentacja Klientów
Podejście klasyczne, a może innowacyjne?
Segmentacja - odkrywanie nowych modeli w oparciu o dane.
Geolokalizacja
Analizy makro i mikroekonomiczne.
Czy adres o czymś świadczy?
Alex Kornilov: Building Big Data Company in Sports-Betting Industry - BETEGY ...AnalyticsConf
The session will cover following points from the experience of BETEGY founders:
- practical application of the Big Data in sports and betting;
- financing of the company (venture money vs. private money vs. strategic investors);
- product plans vs. market expansion;
- marketing techniques to promote Big Data company & product;
- challenges related to the product & industry;
- global vs. local company;
- other related topics.
13. CZYM JEST HADOOP
Otwarta implementacja paradygmatów
Google: GoogleFileSystem i MapReduce
Hadoop umożliwia:
• przetwarzanie dużych ilościach danych
• równolegle
• niezawodnie
• skalowalnie
• zbudowanych z tanich komponentów
14. CZYM JEST HADOOP
Zalety
• Elastyczny format danych
• Nie wymaga agregacji (surowe dane)
• Nie wymaga próbkowania (wszystkie dane)
• Nie ma potrzeby usuwania danych
• Skalowalny (od kilku do tysięcy węzłów)
15.
16. CZYM JEST HADOOP
Zamiast przesyłać dane do programu,
przesyłamy program do danych
Data Data Data DataData Data
Map Map Map Map Map Map
reducer
33. MAPREDUCE
Pochodzenie: MPI, Google
Składa się z trzech kroków
• „Map” – operacje lokalne
• „Shuffle” – redystrybucji wyników
• „Reduce” – grupowanie wyników
MapReduce nie ma być szybki, ale
umożliwiać zrównoleglenie obliczeń na dużą
skalę.
38. MAPREDUCE ON YARN
YARN
• Otwarty
• Skalowalny
• Zarządza tylko zasobami
• Logika przenisiona do App Mstr
http://hortonworks.com/blog/apache-hadoop-yarn-concepts-and-applications/
39. PRZYKŁAD - WORDCOUNT
public static class TokenizerMapper
extends Mapper<Object, Text, Text, IntWritable>{
private final static IntWritable one = new IntWritable(1);
private Text word = new Text();
public void map(Object key, Text value, Context context ) throws IOException, InterruptedException {
StringTokenizer itr = new StringTokenizer(value.toString());
while (itr.hasMoreTokens()) {
word.set(itr.nextToken());
context.write(word, one);
}
}
}
public static class IntSumReducer
extends Reducer<Text,IntWritable,Text,IntWritable> {
private IntWritable result = new IntWritable();
public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException,
InterruptedException {
int sum = 0;
for (IntWritable val : values) {
sum += val.get();
}
result.set(sum);
context.write(key, result);
}
}
40. PRZYKŁAD - WORDCOUNT
import sys
for line in sys.stdin:
line = line.strip()
words = line.split()
for word in words:
print '%st%s' % (word, 1)
from operator import itemgetter
import sys
current_word = None
current_count = 0
word = None
for line in sys.stdin:
line = line.strip()
word, count = line.split('t', 1)
try:
count = int(count)
except ValueError:
continue
# this IF-switch only works because Hadoop sorts map output
if current_word == word:
current_count += count
else:
if current_word:
print '%st%s' % (current_word, current_count)
current_count = count
current_word = word
if current_word == word:
print '%st%s' % (current_word, current_count)
http://www.michael-noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/
41. PRZYKŁAD - WORDCOUNT
test@debian:~$ hadoop jar /usr/lib/hadoop-mapreduce/hadoop-streaming.jar
-file /home/test/mapper.py -mapper /home/test/mapper.py
-file /home/test/reducer.py -reducer /home/test/reducer.py
-input /user/test/gutenberg/* -output /user/test/gutenberg-output
45. HIVE
• Prosty interfejs do przetwarzania danych w
Hadoopie, wygodniejszy niż pisanie
własnych funkcji
• Wykorzystuje język HiveQL, podobny do
SQL
46. HIVE
SQL -> MapReduce
SELECT COUNT(*) FROM test_table
WHERE id IN( SELECT id FROM
test_table2) GROUP BY grp_id
zostaje przeszktałocne w serię zadań
MapReduce
47. HIVE
• Możliwość czytania z wielu źródeł
• External Tables
• Pliki, Hbase, Hypertable, Cassandra, JDBC
• Indeksy
• Własne UDF i funkcje Map/Reduce
48. HIVE
CREATE TABLE input (line STRING);
LOAD DATA LOCAL INPATH 'input.tsv'
OVERWRITE INTO TABLE input;
SELECT word, COUNT(*) FROM input
LATERAL VIEW explode(split(text, ' '))
ITable as word GROUP BY word;
Przykład: word count
52. PIG
Ten sam cel co HIVE inna droga
Pig Latin
Język skryptowy kompilowanych do zadań
MapReduce
53. PIG
a = load '/user/test/word_count_text.txt';
b = foreach a generate flatten(TOKENIZE((chararray)$0)) as word;
c = group b by word;
d = foreach c generate COUNT(b), group;
store d into '/user/test/pig_wordcount';
Wordcount example
55. SPARK
Apache Spark™ is a fast and general
engine for large-scale data processing.
• Łatwy w użyciu
• Możliwość pisania w:
• Java, Scala, Python, R
• Ponad 80 operacji wysokiego poziomu
56. SPARK
Transformation Meaning
map(func)
Return a new distributed dataset formed by passing
each element of the source through a function func.
filter(func)
Return a new dataset formed by selecting those
elements of the source on which func returns true.
flatMap(func)
Similar to map, but each input item can be mapped to
0 or more output items (so func should return a Seq
rather than a single item).
mapPartitions(func)
Similar to map, but runs separately on each partition
(block) of the RDD, so func must be of type Iterator<T>
=> Iterator<U> when running on an RDD of type T.
mapPartitionsWithIndex(func)
Similar to mapPartitions, but also provides func with an
integer value representing the index of the partition, so
func must be of type (Int, Iterator<T>) => Iterator<U>
when running on an RDD of type T.
sample(withReplacement, fraction, seed)
Sample a fraction fraction of the data, with or without
replacement, using a given random number generator
seed.
union(otherDataset)
Return a new dataset that contains the union of the
elements in the source dataset and the argument.
intersection(otherDataset)
Return a new RDD that contains the intersection of
elements in the source dataset and the argument.
distinct([numTasks]))
Return a new dataset that contains the distinct
elements of the source dataset.
57. SPARK
Action Meaning
reduce(func)
Aggregate the elements of the dataset using a
function func (which takes two arguments and returns
one). The function should be commutative and
associative so that it can be computed correctly in
parallel.
collect()
Return all the elements of the dataset as an array at
the driver program. This is usually useful after a filter
or other operation that returns a sufficiently small
subset of the data.
count() Return the number of elements in the dataset.
first()
Return the first element of the dataset (similar to
take(1)).
take(n)
Return an array with the first n elements of the
dataset.
takeSample(withReplacement, num, [seed])
Return an array with a random sample of num
elements of the dataset, with or without replacement,
optionally pre-specifying a random number generator
seed.
saveAsTextFile(path)
Write the elements of the dataset as a text file (or set
of text files) in a given directory in the local filesystem,
HDFS or any other Hadoop-supported file system.
Spark will call toString on each element to convert it
to a line of text in the file.
58. SPARK
text_file = spark.textFile("hdfs://...")
counts = text_file.flatMap(lambda line:
line.split(" "))
.map(lambda word: (word, 1))
.reduceByKey(lambda a, b: a + b)
counts.saveAsTextFile("hdfs://...")
Przykład: word count
63. HBASE
Hbase
• Opraty na Google BigTable
• Baza danych
• Obsługuje szybkie (w czasie rzeczywistym)
operacje CRUD
• Zapewnia spójność oczytu i zapisu
• NoSQL – klucz-wartość
• Jedynie proste operacje
• Zbudowany na bazie HDFS
64. HBASE
• Rozproszona
• Działa na wielu maszynach
• Skalowalna
• Automatyczny sharding
• Dla dużych danych
• Miliardy wierszy
• Współpracuje z innymi elementami
Hadoop
65. HBASE
Wady:
• Tylko podstawowy zestaw operacji
• Brak transakcji
• Brak operacji na wielu tabelach
• Wymaga dużych ilości danych
• Inaczej nie ma sensu
• Wymaga dużo IO, CPU i RAM
66. HBASE
• Dane są zapisywane w tabeli
• Tabela składa się z wierszy
• Każdy wiersz ma przypisany klucz
• Tabela może mieć wiele rodzin kolumn
• W każdej rodzinie kolumn może być wiele
kolumn
Row Stats Text
20151111 Total = 1 Count = 10 Msg = blabla
20151112 Total = 2 Posts = 10 Msg = hehe Tags = funny
67. HBASE
• Tabele dzielone są na regiony – zakresy
kluczy
• Regiony z jednej tabeli mogą być
obsługiwane przez różne węzły
(RegionServer)
68. Dostęp:
• Natywne API (Java)
• REST
• Thrift
• Binarny protokół
• Szybki
• Obsługuje wiele języków
70. POCZĄTKI
MySQL
• Zaczynaliśmy od 1 serwera
• Dodawaliśmy kolejne serwery co kilka
miesięcy
• Zmienialiśmy serwery na co raz
mocniejsze
• Doszliśmy do 6 maszyn
71. MySQL
• Problem z migracją danych między
serwerami
• Brak skalowalności
• Problem z modyfikacją struktury
• Długi czas odzyskiwania po awarii
• Trudna konfiguracja
72. MYSQL
TokuDB
• Drzewa fraktalne
• Kompresja (do 25x)
• Tworzenie indeksów bez blokowania
• Modyfikacja struktury bez blokowania
• Działa efektywnie „out of box”
• Replikacja „read free”
73. HADOOP SOTRENDER
Hadoop
• Hbase
• Zbieranie danych
• Serwowanie danych w narzędziu
• Hive
• Niestandardowe analizy
• Pig
• Wyznaczanie trendów, dzienne obliczenia
74. HADOOP SOTRENDER
MySQL
• 3 TB danych (skompresowanych)
• 56 mld wierszy
Hadoop:
• 6 wezłów
• 28 TB danych
• HBase, Hive, Spark
81. R I HADOOP
• Do czego wykorzystujemy?
• Delegowanie szczególnie „kosztownych”
operacji na danych (np. tabele frekwencyjne,
agregowanie rekordów
dziennych/godzinnych),
• Łatwy i relatywnie szybki dostęp do
ogromnych tabel,
82. R I HADOOP - DOSTĘP
• Szereg pakietów w R do operacji na
klastrze hadoopowym:
• rmr – umożliwiający pisanie programów
MapReduce w R,
• rhdfs – dostęp do plików w HDFS,
• rhbase – funkcje umożliwiające dostęp do
tabel w Hbase
• Możliwość nawiązania połączenia z Hive
przez JDBC (pakiet RJDBC w R)
84. R I HADOOP - PRZYKŁAD
R
Operacje na już zagregowanych danych
Tworzenie końcowego produktu (wykresy,
raporty)
Hive
Agregowanie danych (np. podsumowanie
aktywności pod tweetami)
Bezpośrednie zapytania
HBase
Mapowanie tabel z Hbase do Hive
85. R I HADOOP - PRODUKT
http://www.sotrender.pl/trends/twitt
er/reports/201510