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.
Paweł Kucharski: Oswajamy Słonia czyli po co nam HadoopAnalyticsConf
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.
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: Property-based testing w języku Scala - Paweł GrajewskiPROIDEA
Paweł Grajewski
Language: Polish
Techniki Test-driven development (TDD) oraz Behavior-driven development (BDD) są dziś powszechnie stosowaną metodą poprawy jakości wytwarzanego oprogramowania. Obie zakładają w swej konstrukcji budowę zestawu przypadków testowych, ale stworzenie poprawnego i kompletnego zestawu takich przypadków jest nie lada sztuką. Często nie jesteśmy w stanie przewidzieć wszystkich sytuacji brzegowych, w skutek czego nie możemy być pewni na ile w rzeczywistości poprawny jest kod naszej aplikacji
Z pomocą może przyjść nam technika property-based testing, która w miejsce testowania poprawności działania systemu dla skończonego zbioru przypadków testowych wprowadza koncepcję “badania jego właściwości”. Idea ta zrodziła się już wiele lat temu, a dzisiaj znowu wraca do łask wraz ze wzrostem popularności funkcyjnych języków programowania. Zaufało jej już wiele dużych, złożonych projektów m.in. projekt kompilatora języka Scala oraz framework Akka. Prawidłowo zastosowana jest w stanie zapewnić wymierne korzyści - zwiększyć pokrycie kodu testami, ale przede wszystkim uchronić nas przed wieloma typowymi niedopatrzeniami.
Prezentacja przybliży koncepcję property-based testing oraz zademonstruje tę technikę na przykładach.
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.
Konrad Kokosa - Pamięć w .NET - od ogólu do szczegółu- 4developers2016PROIDEA
.NET ma zarządzaną pamięć, to wie każdy. Ale jak to wszystko naprawdę działa? Czy mamy się w ogóle czym przejmować? Czy znajomość szczegółów implementacyjnych Garbage Collectora jest nam do czegoś potrzebna i co z tego wynika dla codziennego życia .NET deva? Przyglądając się temu jak CLR zarządza pamięcią z tej i owej strony poznamy przy okazji kilka smaczków, ciekawostek ale i zagrożeń.
Paweł Kucharski: Oswajamy Słonia czyli po co nam HadoopAnalyticsConf
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.
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: Property-based testing w języku Scala - Paweł GrajewskiPROIDEA
Paweł Grajewski
Language: Polish
Techniki Test-driven development (TDD) oraz Behavior-driven development (BDD) są dziś powszechnie stosowaną metodą poprawy jakości wytwarzanego oprogramowania. Obie zakładają w swej konstrukcji budowę zestawu przypadków testowych, ale stworzenie poprawnego i kompletnego zestawu takich przypadków jest nie lada sztuką. Często nie jesteśmy w stanie przewidzieć wszystkich sytuacji brzegowych, w skutek czego nie możemy być pewni na ile w rzeczywistości poprawny jest kod naszej aplikacji
Z pomocą może przyjść nam technika property-based testing, która w miejsce testowania poprawności działania systemu dla skończonego zbioru przypadków testowych wprowadza koncepcję “badania jego właściwości”. Idea ta zrodziła się już wiele lat temu, a dzisiaj znowu wraca do łask wraz ze wzrostem popularności funkcyjnych języków programowania. Zaufało jej już wiele dużych, złożonych projektów m.in. projekt kompilatora języka Scala oraz framework Akka. Prawidłowo zastosowana jest w stanie zapewnić wymierne korzyści - zwiększyć pokrycie kodu testami, ale przede wszystkim uchronić nas przed wieloma typowymi niedopatrzeniami.
Prezentacja przybliży koncepcję property-based testing oraz zademonstruje tę technikę na przykładach.
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.
Konrad Kokosa - Pamięć w .NET - od ogólu do szczegółu- 4developers2016PROIDEA
.NET ma zarządzaną pamięć, to wie każdy. Ale jak to wszystko naprawdę działa? Czy mamy się w ogóle czym przejmować? Czy znajomość szczegółów implementacyjnych Garbage Collectora jest nam do czegoś potrzebna i co z tego wynika dla codziennego życia .NET deva? Przyglądając się temu jak CLR zarządza pamięcią z tej i owej strony poznamy przy okazji kilka smaczków, ciekawostek ale i zagrożeń.
W ostatnich latach TypeScript bez wątpienia coraz częściej staje się standardowym narzędziem w JavaScriptowych środowiskach. Pomaga wyłapać wiele błędów nim aplikacja zostanie uruchomiona, ale niestety samo jego użycie w projekcie nie jest panaceum na wszystkie tego typu błędy. Dlatego też podczas prezentacji przyjrzymy się technikom, które pozwalają zaprojektować kod, który prowadzi programistów za rączkę do świata w którym błędy w trybie runtime są rzadkością.
Znaki mocy dla laików – Programowanie funkcyjne w JavaScriptThe Software House
Presentation from Uszanowanko Programowanko meetup - http://www.uszanowanko.pl/z-biblioteki-cechu-ubijacza-potworow
Wiktor Toporek - Znaki mocy dla laików
Programowanie funkcyjne nierzadko postrzegane jest jako dziwna oraz trudna do opanowania technika, tymczasem każdy może korzystać z jej dobrodziejstw.
Architektura aplikacji z wykorzystaniem wzorca redux i implementacji angular 2+ oraz ngrx. Prezentacja ze szkolenia przeznaczonego dla programistów angular1.
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 z webinaru "GraphQL w React z wykorzystaniem Apollo" przeprowadzonej przez Michała Tomsie i Michała Czmiela.
Czy wiesz, że można zbudować aplikację bazując na danych dotyczących eksploracji kosmosu?
Dowiedz się jak to zrobić wykorzystując technologie takie jak React, GraphQL, Apollo Client i Apollo Server.
--
Join Boldare's newsletter to learn about a C-level point of view on user-centered design, software outsourcing services and the future of business.
Subscribe now --> https://go.boldare.com/newsletter-slideshare/
Wprowadzenie do technologii Big Data / Intro to Big Data EcosystemSages
Introduction to Hadoop Map Reduce, Pig, Hive and Ambari technologies.
Workshop deck prepared and presented on September 5th 2015 by Radosław Stankiewicz.
During that the day participants had also the possibility to go through prepared tutorials and test their analysis on real cluster.
Hadoop World 2011: Hadoop Network and Compute Architecture Considerations - J...Cloudera, Inc.
Hadoop is a popular framework for web 2.0 and enterprise businesses who are challenged to store, process and analyze large amounts of data as part of their business requirements. Hadoop’s framework brings a new set of challenges related to the compute infrastructure and underlined network architectures. This session reviews the state of Hadoop enterprise environments, discusses fundamental and advanced Hadoop concepts and reviews benchmarking analysis and projection for big data growth as related to Data Center and Cluster designs. The session also discusses network architecture tradeoffs, and the advantages of close integration between compute and networking.
What is a Data Warehouse and How Do I Test It?RTTS
ETL Testing: A primer for Testers on Data Warehouses, ETL, Business Intelligence and how to test them.
Are you hearing and reading about Big Data, Enterprise Data Warehouses (EDW), the ETL Process and Business Intelligence (BI)? The software markets for EDW and BI are quickly approaching $22 billion, according to Gartner, and Big Data is growing at an exponential pace.
Are you being tasked to test these environments or would you like to learn about them and be prepared for when you are asked to test them?
RTTS, the Software Quality Experts, provided this groundbreaking webinar, based upon our many years of experience in providing software quality solutions for more than 400 companies.
You will learn the answer to the following questions:
• What is Big Data and what does it mean to me?
• What are the business reasons for a building a Data Warehouse and for using Business Intelligence software?
• How do Data Warehouses, Business Intelligence tools and ETL work from a technical perspective?
• Who are the primary players in this software space?
• How do I test these environments?
• What tools should I use?
This slide deck is geared towards:
QA Testers
Data Architects
Business Analysts
ETL Developers
Operations Teams
Project Managers
...and anyone else who is (a) new to the EDW space, (b) wants to be educated in the business and technical sides and (c) wants to understand how to test them.
W ostatnich latach TypeScript bez wątpienia coraz częściej staje się standardowym narzędziem w JavaScriptowych środowiskach. Pomaga wyłapać wiele błędów nim aplikacja zostanie uruchomiona, ale niestety samo jego użycie w projekcie nie jest panaceum na wszystkie tego typu błędy. Dlatego też podczas prezentacji przyjrzymy się technikom, które pozwalają zaprojektować kod, który prowadzi programistów za rączkę do świata w którym błędy w trybie runtime są rzadkością.
Znaki mocy dla laików – Programowanie funkcyjne w JavaScriptThe Software House
Presentation from Uszanowanko Programowanko meetup - http://www.uszanowanko.pl/z-biblioteki-cechu-ubijacza-potworow
Wiktor Toporek - Znaki mocy dla laików
Programowanie funkcyjne nierzadko postrzegane jest jako dziwna oraz trudna do opanowania technika, tymczasem każdy może korzystać z jej dobrodziejstw.
Architektura aplikacji z wykorzystaniem wzorca redux i implementacji angular 2+ oraz ngrx. Prezentacja ze szkolenia przeznaczonego dla programistów angular1.
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 z webinaru "GraphQL w React z wykorzystaniem Apollo" przeprowadzonej przez Michała Tomsie i Michała Czmiela.
Czy wiesz, że można zbudować aplikację bazując na danych dotyczących eksploracji kosmosu?
Dowiedz się jak to zrobić wykorzystując technologie takie jak React, GraphQL, Apollo Client i Apollo Server.
--
Join Boldare's newsletter to learn about a C-level point of view on user-centered design, software outsourcing services and the future of business.
Subscribe now --> https://go.boldare.com/newsletter-slideshare/
Wprowadzenie do technologii Big Data / Intro to Big Data EcosystemSages
Introduction to Hadoop Map Reduce, Pig, Hive and Ambari technologies.
Workshop deck prepared and presented on September 5th 2015 by Radosław Stankiewicz.
During that the day participants had also the possibility to go through prepared tutorials and test their analysis on real cluster.
Hadoop World 2011: Hadoop Network and Compute Architecture Considerations - J...Cloudera, Inc.
Hadoop is a popular framework for web 2.0 and enterprise businesses who are challenged to store, process and analyze large amounts of data as part of their business requirements. Hadoop’s framework brings a new set of challenges related to the compute infrastructure and underlined network architectures. This session reviews the state of Hadoop enterprise environments, discusses fundamental and advanced Hadoop concepts and reviews benchmarking analysis and projection for big data growth as related to Data Center and Cluster designs. The session also discusses network architecture tradeoffs, and the advantages of close integration between compute and networking.
What is a Data Warehouse and How Do I Test It?RTTS
ETL Testing: A primer for Testers on Data Warehouses, ETL, Business Intelligence and how to test them.
Are you hearing and reading about Big Data, Enterprise Data Warehouses (EDW), the ETL Process and Business Intelligence (BI)? The software markets for EDW and BI are quickly approaching $22 billion, according to Gartner, and Big Data is growing at an exponential pace.
Are you being tasked to test these environments or would you like to learn about them and be prepared for when you are asked to test them?
RTTS, the Software Quality Experts, provided this groundbreaking webinar, based upon our many years of experience in providing software quality solutions for more than 400 companies.
You will learn the answer to the following questions:
• What is Big Data and what does it mean to me?
• What are the business reasons for a building a Data Warehouse and for using Business Intelligence software?
• How do Data Warehouses, Business Intelligence tools and ETL work from a technical perspective?
• Who are the primary players in this software space?
• How do I test these environments?
• What tools should I use?
This slide deck is geared towards:
QA Testers
Data Architects
Business Analysts
ETL Developers
Operations Teams
Project Managers
...and anyone else who is (a) new to the EDW space, (b) wants to be educated in the business and technical sides and (c) wants to understand how to test them.
Codepot - Pig i Hive: szybkie wprowadzenie / Pig and Hive crash courseSages
Szybkie wprowadzenie do technologii Pig i Hive z ekosystemu Hadoop. Prezentacja wykonana w ramach warsztatów Codepot w dniu 29.08.2015. Prezentacja wykonana przez Radosława Stankiewicza oraz Bartłomieja Tartanusa.
12. Klasyfikacja problemu
• Baza danych ulic Warszawy, Dane w formacie JSON,
optymalizacja odbioru śmieci jednego z usługodawców.
• Zdarzenia z bazy transakcyjnej i kart kredytowych w
celu lepszego wykrywania fraudów
• System wyszukujący dobre oferty samochodów z wielu
serwisów - web crawling, parsowanie danych, analiza
trendów cen samochodów
• Centralne repozytorium skanów umów, TB danych,
codziennie przybywa kilkaset nowych dokumentów
12
26. ● User Commands
o dfs
o fsck
● Administration Commands
o datanode
o dfsadmin
o namenode
dfs:
appendToFile cat chgrp chmod chown copyFromLocal copyToLocal count cp du
dus expunge get getfacl getfattr getmerge ls lsr mkdir moveFromLocal
moveToLocal mv put rm rmr setfacl setfattr setrep stat tail test text touchz
hdfs dfs -put localfile1 localfile2 /user/tmp/hadoopdir
hdfs dfs -getmerge /user/hadoop/output/ localfile
komendy
26
31. Mapper
#!/usr/bin/env python
import sys
for line in sys.stdin:
words = line.strip().split()
for word in words:
print '%st%s' % (word, 1)
line = “Ala ma kota”
Ala 1
ma 1
kota 1
31
32. Reducer
#!/usr/bin/env python
import sys
current_word = None
current_count = 0
word = None
for line in sys.stdin:
line = line.strip()
word, count = line.split('t', 1)
count = int(count)
if current_word == word:
current_count += count
else:
if current_word:
print '%s,%s' % (current_word, current_count)
current_count = count
current_word = word
if current_word == word:
print '%s,%s' % (current_word, current_count)
ala 1
ala 1
bela 1
dela 1
ala,2
bela,1
dela,1
32
34. Map Reduce w Java
(input) <k1, v1> -> map -> <k2, v2> -> combine ->
<k2, v2> -> reduce -> <k3, v3> (output)
1) Mapper
2) Reducer
3) run
public class WordCount extends Configured
implements Tool {
public static class TokenizerMapper{...}
public static class IntSumReducer{...}
public int run(...){...}
}
34
35. Mapper<KEYIN,VALUEIN,KEY
OUT,VALUEOUT>
public static class TokenizerMapper
extends Mapper<LongWritable, Text, Text, IntWritable>{
private final static IntWritable one = new IntWritable(1);
private Text word = new Text();
public void map(LongWritable 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 void setup(...) {...}
public void cleanup(...) {...}
public void run(...) {...}
}
value = “Ala ma kota”
Ala,1
ma,1
kota,1
36. Reducer<KEYIN,VALUEIN,KEY
OUT,VALUEOUT>
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);
}
public void setup(...) {...}
public void cleanup(...) {...}
public void run(...) {...}
}
kota,(1,1,1,1)
kota,4
37. Main
public int run(String[] args) throws Exception {
Configuration conf = new Configuration();
Job job = Job.getInstance(conf, "word count");
job.setJarByClass(WordCount.class);
job.setMapperClass(TokenizerMapper.class);
job.setCombinerClass(IntSumReducer.class);
job.setReducerClass(IntSumReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
System.exit(job.waitForCompletion(true) ? 0 : 1);
}
public static void main(String[] args) throws Exception {
int res = ToolRunner.run(new Configuration(), new WordCount(),args);
System.exit(res);
}
yarn jar wc.jar WordCount /tmp/wordcount/input /tmp/wordcount/output
38. Co dalej?
• Map Reduce w Javie
• Testowanie MRUnit
• Joins
• Avro
• Custom Key, Value
• Złączanie wielu zadań
• Custom Input, Output
38
50. Podstawy Pig Latin -
wielkość liter
• A = LOAD 'data' USING PigStorage() AS (f1:int, f2:int, f3:int);
B = GROUP A BY f1;
C = FOREACH B GENERATE COUNT ($0);
DUMP C;
• Nazwy zmiennych A, B, and C (tzw. aliasy) są case sensitive.
• Wielkość liter jest też istotna dla:
• nazwy pól f1, f2, i f3
• nazwy zmiennych A, B, C
• nazwy funkcji PigStorage, COUNT
• Z wyjątkiem: LOAD, USING, AS, GROUP, BY, FOREACH, GENERATE, oraz DUMP
50
52. Pierwsze kroki
data = LOAD 'input' AS (query:CHARARRAY);
A = LOAD 'data' USING PigStorage('t') AS (f1:int, f2:int, f3:int);
STORE A INTO '/tmp/result' USING PigStorage(';')
52
54. Kolejne kroki - operacje na
danych
A = LOAD 'student' USING PigStorage() AS (name:chararray, age:int, semestre:int,
scholarship:float);
B = FILTER A BY age > 20;
54
55. Kolejne kroki - operacje na
danych
A = LOAD 'student' USING PigStorage() AS (name:chararray, age:int, semestre:int,
scholarship:float);
B = FILTER A BY age > 20;
C = LIMIT B 5;
55
56. Kolejne kroki - operacje na
danych
A = LOAD 'student' USING PigStorage() AS (name:chararray, age:int, semestre:int,
scholarship:float);
B = FILTER A BY age > 20;
C = LIMIT B 5;
D = FOREACH C GENERATE name, scholarship*semestre as funds
56
57. Kolejne kroki - operacje na
danych
A = LOAD 'student' USING PigStorage() AS (name:chararray, age:int, semestre:int,
scholarship:float);
E = GROUP A by age
57
58. Kolejne kroki - operacje na
danych
A = LOAD 'student' USING PigStorage() AS (name:chararray, age:int, semestre:int,
scholarship:float);
E = GROUP A by age
F = FOREACH E GENERATE group as age, AVG(A.scholarship)
58
65. Unikalne cechy Hive
Znaczne przyspieszenie analizy - nie potrzeba pisać Map Reduce
Optymalizacja, wykonywanie części operacji w pamięci zamiast MR
65
68. Hive CLI
Tryb Interaktywny
hive
Tryb Wsadowy:
hive -e ‘select foo from bar’
hive -f ‘/path/to/my/script.q’
hive -f ‘hdfs://namenode:port/path/to/my/
script.q’
więcej opcji: hive --help
68
69. Typy danych
INT, TINYINT, SMALLINT, BIGINT
BOOLEAN
DECIMAL
FLOAT, DOUBLE
STRING
BINARY
TIMESTAMP
ARRAY, MAP, STRUCT, UNION
DATE
CHAR
VARCHAR
69
70. Składnia zapytań
SELECT, INSERT, UPDATE
GROUP BY
UNION
LEFT, RIGHT, FULL INNER, FULL OUTER JOIN
OVER, RANK
(NOT) IN, HAVING
(NOT) EXISTS
70
71. Data Definition Language
• CREATE DATABASE/SCHEMA, TABLE, VIEW, FUNCTION, INDEX
• DROP DATABASE/SCHEMA, TABLE, VIEW, INDEX
• TRUNCATE TABLE
• ALTER DATABASE/SCHEMA, TABLE, VIEW
• MSCK REPAIR TABLE (or ALTER TABLE RECOVER PARTITIONS)
• SHOW DATABASES/SCHEMAS, TABLES, TBLPROPERTIES,
PARTITIONS, FUNCTIONS, INDEX[ES], COLUMNS, CREATE TABLE
• DESCRIBE DATABASE/SCHEMA, table_name, view_name
71
72. Tabele
CREATE TABLE page_view(viewTime INT, userid BIGINT,
page_url STRING, referrer_url STRING,
ip STRING COMMENT 'IP Address of the User')
COMMENT 'This is the page view table'
PARTITIONED BY(dt STRING, country STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '001'
STORED AS TEXTFILE;
72
73. Pierwsze kroki w Hive
CREATE TABLE tablename1 (foo INT, bar STRING) PARTITIONED BY (ds STRING);
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename1;
INSERT INTO TABLE tablename1 PARTITION (ds='2014') select_statement1 FROM
from_statement;
73
74. Pierwsze kroki w Hive
UPDATE tablename SET column = value [, column = value ...] [WHERE expression]
DELETE FROM tablename [WHERE expression]
74
75. Inne formaty plików? SerDe
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 "http://www.example.com/
start.html" "Mozilla/4.08 [en] (Win98; I ;Nav)"
CREATE TABLE apachelog (
host STRING, identity STRING, user STRING, time STRING, request STRING, status STRING,
size STRING, referer STRING, agent STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "([^]*) ([^]*) ([^]*) (-|[^]*]) ([^ "]*|"[^"]*") (-|[0-9]*) (-|[0-9]*)(?:
([^ "]*|".*") ([^ "]*|".*"))?"
)
STORED AS TEXTFILE;
75
76. Inne formaty plików? SerDe
CREATE TABLE table (
foo STRING, bar STRING)
STORED AS TEXTFILE; ← lub SEQUENCEFILE, ORC, AVRO lub PARQUET
76
77. Zalety, wady, porównanie
Hive Pig
deklaratywny proceduralny
tabele tymczasowe pipeline
polegamy na optymalizatorze
bardziej ingerujemy w
implementacje
UDF, Transform UDF, streaming
sterowniki sql data pipeline splits
77
109. Chcesz wiedzieć więcej?
Szkolenia pozwalają na indywidualną pracę z każdym
uczestnikiem
• pracujemy w grupach 4-8 osobowych
• program może być dostosowany do oczekiwań
grupy
• rozwiązujemy i odpowiadamy na indywidualne
pytania uczestników
• mamy dużo więcej czasu :)
110. Szkolenie dedykowane dla
Ciebie
Jesteś architektem lub team leaderem?
• na przekrojowym szkoleniu 5-dniowym omawiamy i
ćwiczymy cały ekosystem Hadoopa
• na szkoleniu dedykowanym dla architektów dyskutujemy
o projektowaniu systemów BigData
Jesteś analitykiem?
• na dedykowanym szkoleniu przećwiczysz w szczegółach
Pig i Hive i rozwiążesz przykładowe problemy analityczne
111. Szkolenie dedykowane dla
Ciebie
Jesteś programistą?
• szkolenie 3-dniowe pozwala w szczegółach zapoznać się z
programowaniem zaawansowanych aspektów MapReduce
w Javie i programowaniem w podejściu strumieniowym
Interesuje Cię całość zagadnienia BigData?
• Przetwarzanie Big Data z użyciem Apache Spark
• Bazy danych NoSQL - Cassandra
• Bazy danych NoSQL - MongoDB