
ciao sono scogliera okay, ho intenzione di parlare
sui Big Data, credo che sia il primo
cosa da fare è qualificare con le persone cosa
grande è perché ognuno ha un diverso
nozione di grande quindi suppongo che mi aprirò
facendo una domanda qui così quanti
le persone qui lavorano con i big data come
quindi che fretta fai tutto perché sei dentro
questo parlare così quante persone qui andiamo
proviamo di nuovo qui quante persone
qui lavoro con set di dati che sono
tipicamente un gigabyte o di dimensioni maggiori
oh va bene va bene, quante persone lavorano
con ingranditore di serie di 10 gig va bene
Ingranditore da 100 gig terabyte ora siamo
scendere a circa 10 terabyte
un centinaio di terabyte ora sei tu
alzarsi a quello che chiamerei grande così
il petabyte giusto e e su di esso o lo farò
fermati qui in modo che i ragazzi della coppia vadano
fino a petabyte e poi
probabilmente ci saranno persone di Google che lo faranno
continua ad andare in exabyte così per quello che siamo
facendo un grande pozzo è stato molto eccitante
per colpire di nuovo , noi siamo grandi
da qualche parte tra gigabyte e
terabyte nel senso che oltre
terabyte troppo grandi per un
soluzione in-memory convenientemente così siamo
aprire una piattaforma è pura java aperta
fonte si può ottenere direttamente
github e il sito web ha un barattolo
file che puoi scaricare e andare
prende solo un barattolo e spesso gira e
sta facendo è una piattaforma per fare
matematica distribuita in parallelo e quindi data
una piattaforma per la matematica distribuita in parallelo
cosa significa bene oltre all’essere
fare una sorta di qualsiasi tipo di matematica generica
vuoi che stiamo costruendo alti in matematica
algoritmi di apprendimento automatico logistico
generali di regressione modellistica
Grady ha potenziato il metodo delle foreste casuali in profondità
apprendere reti neurali avanti e avanti e avanti
un sacco di roba, quindi credo che andrò
di pari passo con così tanti quanti
le persone qui stanno usando la macchina
imparare o guardarlo o
pensando a te che ne stai facendo
l’apprendimento automatico va bene una certa quantità e
quante persone usano la macchina
imparando su una sorta di base quotidiana ora
come se fossi seduto alla tua scrivania
e i tuoi modelli di costruzione su un normale
base quindi no e tu vai a sentire
piani per
vai là dove costruirai
questi modelli e prova a comprarli
produzione quindi un paio di persone così così
le persone là fuori fanno un piano okay così
questo discorso è in realtà non lo farò
approfondire gli algoritmi di apprendimento automatico
di matematica di cui parlerò
piattaforma di sistemi di costruzione per consentire
algoritmi di apprendimento automatico da costruire
okay, ho detto che questa è una piattaforma per
fare i big data funziona così che cosa fa
significa in questo contesto significa quasi nessuno
lavoro vuoi su un grande
tavolo bidimensionale quindi tutto ciò
legge o scrive una singola osservazione in
i tuoi dati impostano una singola riga più forse
qualche rosa nelle vicinanze e forse un computer
riduzione o produce un grande output di dati
all’interno di quel vincolo la velocità è
interessante perché è grande e il
la velocità è in genere il volume dei dati diviso
dalla tua larghezza di banda di memoria è limitato da
larghezza di banda di memoria frequentemente che è
come 50 gigabyte al secondo per nodo che
varia in base all’hardware e al tuo originale
configurazione e alcuni degli algoritmi richiedono
più traffico di rete e quindi questo è il
collo di bottiglia e detta banda di memoria ma
di solito vediamo numeri che sei tu
sapere mille volte più veloce di
tutto ciò che fa un casino è carino
low bar ma stiamo ancora vedendo numeri
che sono dieci volte più veloci di chiunque altro
nel resto del mondo è molto veloce
roba così che apre la porta a fare
cose interessanti che ho citato i dati
è compresso parleremo di più a riguardo
in seguito è in genere molto meglio
compresso e ciò che ottieni da simili
gzip sulla scrivania e va dritto a
il volume di dati della larghezza di banda della memoria
trade-off per la velocità nel bene
direzione sto facendo matematica quindi sono limitato
ai dati che sono numeri matematici bianchi e
tempi e archi semplici e poi ho detto
tabella bidimensionale quanto è grande il
tavoli da tavolo che sono meno come un
saranno migliaia le colonne
veramente veloce come troppo veloce che puoi
a malapena interessano fino a diecimila colonne
funziona ancora abbastanza bene e 100.000 o
più grande funziona ancora, ma i loop sono
paralizzato nel modo sbagliato e non è così
veloce come forse ti piacerebbe ma la lunghezza
dei tavoli ha limitato la memoria e può essere
da milioni a miliardi a migliaia di miliardi
può essere molto molto molto lungo quindi più o
meno sai due terabyte di
il cluster girerà
ne conosci decine di miliardi
di miliardi di righe e va bene
andrà tutto bene, quindi cosa puoi fare?
con esso ora sto per entrare
alcuni esempi qui da uno sviluppatore
punto di vista e la cosa più comune
non è un paradigma di MapReduce
l’unico paradigma che supportiamo ma è a
uno comune perché si riduce semplicemente
completamente bene quindi una mappa e ridurre
prenderà qualcosa di un tipo A nel
chiama la mappa e produce qualcosa, ma digita
B in questo caso è doppio doppio e
Sto solo calcolando un quadrato e poi a
la riduzione richiederà due tipi di B
e fare uno qui sto facendo pubblicità semplice
e quindi questa è solo la somma dei quadrati e io
scrivere questo codice Java esattamente come questo
e io dico di fare tutto sui miei dati ed è così
andando a correre a velocità di banda di memoria
quindi questo richiederà un terabyte in te
sotto un secondo e ne conosci alcuni
decine di milioni di milioni e che ne dici?
il tuo cluster è così così anch’io
avere una versione e uno sviluppo da studioso
è ancora colpito da non 100
completo ma è chiaramente circa la metà del
linee di codice e si può ottenere la nozione
davvero veloce che stai solo facendo un
somme di quadrati qui quindi è una specie di a
cosa scivolosa così ho detto prima che tu lo sappia
avere come mappa e ridurre la mappa
un tipo 80 di tipo B in cui è il tipo a
i tuoi grandi dati sono il tuo input
tuttavia molte colonne che hai selezionato
o quante migliaia e centinaia di
migliaia di colonne hai questo è il tuo
digita un e puoi trattarlo come strut se
lo farai ma è una serie di strutture
Array ostruttivi fonte i due
le nozioni sono in qualche modo intercambiabili qui
sai che sono i tuoi grandi dati ma fila per
riga per riga e il tuo tipo B è il tuo
output e ci sono due tipi di output
ci sono grandi e piccoli big data devono andare
ritorna nel cluster perché di
definizione il grande è troppo grande per adattarsi
un nodo quindi se hai un grande output
questo è dell’ordine di grandezza di
il tuo input originale sarà a
output distribuito in cui vivrà
i cluster memorizzano nello stesso modo il tuo input
puoi anche avere un piccolo output di dati
che è un semplice vecchio oggetto java e il
la riduzione prenderà a tali pojos e
produrne uno aggiornerò sul posto
dove possibile e in definitiva semplicemente
crea una nuova istanza di un’attività MapReduce
scavalcare la mappa e ridurre e dire fare tutto
e tu sei
l’istanza regionale torna con
qualunque sia stata la tua riduzione
di nuovo in quel caso dopo il suo
visitato il tuo terabyte di dati, quindi ecco qui
alcuni esempi di questo qui è il mio tipo a
una doppia coppia x e y mi tipo B è quella
questo puntatore un’istanza di lineare
la regressione passa una che è informatica
somme e somme delle piazze ancora e tu
può vedere è semplicemente aggiungendo direttamente in
l’oggetto Java e la riduzione delle chiamate
prende questo in ciò che sono due di
lo stesso tipo di cosa e li piega
insieme c’è una versione erudita che è
circa la metà delle righe di codice un po ‘
più brutto su una diapositiva, ma quando dico che va
di nuovo nell’oggetto originale i
fatto un foo e posso utilizzarlo direttamente
la prossima riga di codice per andare a calcolare
cose dritte da foo e poi
di solito che si nutre del passaggio successivo I
basta scrivere il prossimo pezzo in questo caso
di regressione lineare ce ne sono tre
passa e tu diresti di passare uno fa tutto
passare a fare tutto passa attraverso un po ‘
un po ‘di algebra dentro e intorno ai passaggi
ed è un affare fatto quindi c’è un
cosa di efficienza qui e tu sai a
ottenere la mia larghezza di banda della memoria accelera
Devo davvero schivare tutti i tipi di
in testa così sotto il cappuccio ogni volta che io
dire che la mappa è in realtà un ciclo for che è
correndo su alcuni blocchi di dati che otterrò
più in quello che un pezzo è qui in a
minuto ma è una raccolta di a
da mille a un milione dei tuoi elementi
quell’unico nucleo sta per fare qualcosa
con e c’è un ciclo semplice per quello
puoi scrivere te stesso o puoi lasciarlo
il sistema ti sostituisce
la propria mappa chiama quel chunk al CX alle 6y
questo è il passo di decompressione parla di più
su questo in un minuto perché conta
per la velocità così tanto e poi lo fai
la tua presentazione della mappa standard come me
l’ho mostrato un minuto fa e quelli sono tutti
lo stesso perché tu hai un for
loop qui se hai interessante
funzioni cartografiche complicate che puoi trasportare
loop e varianti te stesso se il
Jets non ha intenzione di farlo per te
tu stesso e quando lo facciamo noi stessi
algoritmi di bocca interni lo faremo spesso
avere funzioni di mappa che sono migliaia
le linee sono più di codice Java e lo saremo
facendo un sacco di sorta di manuale
ottimizzazioni per trasportare loop e varianti
fuori e cose del genere va bene così ecco
un altro rapido tipo di cosa che posso fare sono
andando a contare qualcuno invece di a
computer matematico e questo è solo un filtro
sai se sei se i tuoi dati di input
passa qualche particolare filtraggio
condizione conta come uno o uno zero e
le riduzioni li aggiungono e quindi
La tassa sul collison è di nuovo un po ‘troppo
più corto e un po ‘più pulito e tu
so che otterrò i conti in quel modo
per quanto tempo ci vuole per spingere i dati
attraverso il bus di memoria in aggiunta a
facendo conti posso anche raccogliere set
e questa è una grande uscita di gate o ho
fatto un nuovo vettore di uscita e ho detto
passa tutto nei miei input del mio
uscite e quindi posso usarlo
immediatamente e il prossimo passo e alcuni
erano nel corpo della mappa chiamata che ho
scelto alcune condizioni e quindi impostare un pin
e quello ha raccolto un set di output che è
troppo grande per adattarsi a una macchina in genere
sai qual è la percentuale di
persone di cui hanno passato il filtro
spinto nel set di output, ma potrei
avere un set di output con un terabyte in
dimensione e se sto filtrando di solito forse
è piccolo ma se è grande lo farà
essere troppo grande per adattarsi a una macchina così
solo l’output deve essere
distribuito quindi questo è un po ‘di più
riguardo allo stile di codifica ecco a
fondamentalmente un acquisto di gruppo o ho intenzione di
fai una domanda quante auto fanno le persone
possedere in epoche diverse nella loro vita e
la cosa più interessante qui è che ho
fatto un’assegnazione nella chiamata di mappa e
il trucco chiave è che è a
l’allocazione privata privata è
fatto privatamente da un cor è singolo
accesso filettato quindi in particolare che +
+ fuori alla fine non deve essere
sincronizzato questo è un core che ne fa uno
pezzo di lavoro e non c’è
sincronizzazione coinvolta ma poi ogni
core è in esecuzione su un altro pezzo
dati in ritardo e quindi hai un sacco intero
di questa piccola macchina invecchia matrici così tu
avere una riduzione per arrotolarli
e ho una piccola utilità che sta andando
per aiutarti a conoscere l’elemento dell’array
aggiungi qui gli uniquisiti di questo caso
la differenza è che ho fatto un nuovo in
costruttore invece di chiamare la mappa
e questo significava il tempo in cui chiamavo nuovo
unici qui ho fatto un’istanza di
un oggetto e quando dico fare tutto questo
oggetto è stato replicato attorno al cluster
con tutti che condividono tanto quanto
possibile l’istanza che ho appena fatto
questo è molto utile per set di sola lettura
ma se è scrivibile allora devi
gestire la valuta in questo caso è a
non bloccante è un hash sicuro e concorrente
impostato in modo da poter avere tutti proprio in
quindi la funzione mappa semplicemente si inceppa qualcosa
nell’hashtag
dove le asole vanno filtrate
dupes e la riduzione sposta le cose
insieme e questo è chiamato ogni volta che io
devono spostare questi hash Jets sono finiti
il filo ma in così tante righe di codice i
posso calcolare gli uniques e il mio set di dati
attraverso il cluster va bene così è stato sort
di un rapido tour vorticoso che sto per fare
riassumere i limiti qui e il
il principale è che non posso farne nessuno
allocazione delle risorse a livello di macchina
perché quello non sarà raggruppato in larghezza
sono IO in particolare ogni membro di
il cluster potrebbe avere un file diverso
vista di sistema in modo da non poter leggere o scrivere
file in modo significativo lì così no
nuovi thread senza serrature non c’è
blocchi distribuiti qui nessun sistema di chiamata
esci non hai nessuna variabile globale
di per sé invece qualsiasi statica globale
variabile diventa nodo locale ora se tu
in realtà bisogno di uno stato globale, quindi se lo è
leggibile lo metti nel costruttore
e sarà clonato intorno come una lettura
unica cosa per ogni membro del
raggruppa ogni thread da usare e se lo è
cavalcabile dovrai usare a
chiamata riduzione per ottenere i risultati a
torna indietro e torna da te come a
risultato scritto veramente globale e per il
grande stato che hai appena letto e scritto
dritto nei grandi dati come
hai visto leggere puoi scriverci come
bene e il paradigma tipico qui è
andando a eseguire un passo MapReduce e
poi fai un pò di algebra e poi
eseguire un altro e un altro
dove la chiave qui è quella tipica
è il momento di fare il pastor dei dati dei pneumatici
il nel modesto numero di millisecondi
quindi è una storia diversa dalla tua
tipico che conosci il paradigma di MapReduce okay
i punti di forza qui sono i codici
in esecuzione sorta di distribuito in parallelo
senza ulteriori sforzi nel codice i
stava mostrando qui funziona davvero solo
come scritto tu dici solo che sai di nuovo
L’operazione MapReduce ha la precedenza su MapReduce bang
hai scritto in un singolo thread
stile di codifica quindi non devi
non c’è sincronizzazione e c’è
non si parla alla meccanica del cluster
in qualche modo per fare qualsiasi cosa impostata non c’è
problemi di concorrenza non ci sono risorse
Manopole di gestione devi girare una volta
il cluster è attivo e funzionante, lo sai
tutte le tue riduzioni di mappe fanno semplicemente il
cosa giusta
immediatamente non c’è bisogno di manopole
GC o CPU o di rete o di dati posizionamenti
sapere come blocchi o blocchi caldi sai
questo è tutto a posto sotto il cofano
e in effetti funziona davvero bene
okay, quindi era come il vortice
tour di quello che posso fare con esso qui lascia
mi fermo e vedo se qualcuno ne ha
domande su quello che ho appena detto sì
Dicono che posso inserire i dati nel feed
questo così adesso stiamo in esecuzione su
set di dati statici in cui uno dei primi
passi da fare è caricare i dati che dicevano il
le architetture core supportano totalmente
streaming e non ne avevamo abbastanza
utenti che chiedono di mettere lo streaming
giù così aggiungiamo algoritmi e funzionalità
in base a ciò per cui paghiamo i clienti
e non appena avrai ottenuto il quorum di
la gente ha detto che pagherò per lo streaming allora
lo mettiamo dentro ci sta arrivando
lo streaming sarà probabilmente qui prima
l’anno prima del prossimo anno conosci un
anno da ora avremo lo streaming
supporto lì okay quindi prendiamo un
guardare a ciò come funziona realmente questo
è un’istanza di fork join ma solo
forcella congiunta distribuita in modo che sia simile
alla forchetta di Doug Lee unisco il lavoro sono solo
In realtà sto usando il suo lavoro di fork touring
sorta direttamente all’interno di un nodo e ho
esteso per lavorare su cross node e in
il tuo aspetto qui è un otto nodo
cluster qualcuno sta guidando da qualche parte
questo e ha detto che sai fare un nuovo
MapReduce l’attività e fai tutto su alcuni dati
e poi faccio il tipo di registro ovvio
albero fan fuori dove tubo l’istanza
di questo oggetto dopo i costruttori
run è impostato su due come due
vicini e lo mandano ai loro due
vicini di casa e così via fino al tutto
il cluster ha un’istanza di questa attività
ora non appena l’operazione colpisce una nota
va anche sul lavoro di formazione della forcella
code e poi fanno quello che sai
i treni a forca hanno fatto tutto il che
iniziano a fare cloni di se stessi
fino a quando il set di dati si riferisce a
è troppo grande e lo fanno dividere e
conquistare e dividere fanno un altro compito
e così via fino alla quantità di lavoro
assegnato alla singola attività corrisponde
a voi conoscete una porzione di dati e poi
fanno tutte le chiamate della mappa parallela attraverso
i dati e Fortran sono davvero bravi
facendo bilanciamento del carico e sai ordinare
di sul
sul lavoro sui dati, così sarà
sbatti tutti i core sulla scatola che andrai
carico di CPU al cento per cento nonostante tutto
fai le loro cose e poi quando sono
fatto ognuno degli oggetti avrà il
piccoli poemi di dati lasciati nel compito
oggetti i cloni degli oggetti compito
che sono stati fatti tutto il tempo e poi
c’è una fase di riduzione inizia ad entrare
invertire siamo una coppia per coppia non appena
due ragazzi hanno completato la loro mappatura
passi per una riduzione immediata sul posto
e poi quei log per arrotolare make
un’altra riduzione fino a quando non si ottiene con a
singola istanza di primo livello per nodo e
quindi si esegue l’albero di registro a livello di cluster
e invertire andando indietro dove il
poverino a lungo nei registri sul
giusto riduce al suo unico amico e
gli altri due ragazzi ridotti al loro
amici hanno ottenuto i loro compiti da e
quindi nel passaggio successivo conosci il
le riduzioni continuano indietro attraverso il
cluster fino a quando non si arriva con la finale
riduzione all’istanza originale
ed è fatto così è il momento di eseguirlo
tipicamente registra il fan dell’albero per tutto il
cluster parallelo xq sui log di noi
fan dal cluster e questo si trasforma
in alcuni conosci il conto dei millisecondi
a seconda di quanto siano complicate le tue mappe
e le riduzioni vanno bene quindi è carina
semplice non forse va bene
quindi diamo un’occhiata al layout dei dati in questo modo
è un problema interessante perché le persone
Non so che sembrava che sudasse molto
sul layout dei dati di posizionamento dei dati e
stiamo facendo qualcosa che è molto
semplice e ha funzionato
abbastanza bene nella pratica quindi l’astratto
API è che ho una collezione di vettori
per i miei dati è bidimensionale
cosa da tavolo in cui un vettore è una colonna
e la colonna è trattata come una matrice
ma può essere più lungo di un int in
lunghezza mi darai miliardi di
elementi e lunghezze, sono così veloce
accesso casuale a qualsiasi dato elemento
anche se un nodo chiede tutto
elementi che verranno annegati nei dati
è troppo giusto ma può scegliere
elementi individuali gratis c’è a
nozione del valore mancante questo ed è
in un è molto importante per la macchina
imparare gli algoritmi matematici per avere a
nozione di perdere il tuo ovvio fallo
qualcosa di diverso su questo e tu puoi
scrivilo o uno spillo in modo che tu possa fustigare
la dimensione dei set di dati o modificarli
sul posto va tutto bene così ho detto che ho
un unico grande vettore è concetto
è pieno di tipicamente daba daba
primitivi comunque questo è il concettuale
guarda è in realtà è la compressione
qualunque cosa sarà ed è tutto
orientato per l’accesso lineare veloce a strisce
attraverso un cluster quindi qui ho un quattro
cluster di nodi sto mostrando blocchi di
i dati saranno su ogni membro del
cluster quindi non è a strisce con uno
vettore tenendo un vento un vm tenendo tutto
il vettore invece è distribuito attraverso
il vettore e non è completamente nel
java heap quindi i dati sono effettivamente nel
Heap Java e lavoriamo molto
GC per vedere le dimensioni del mucchio e noi
versato il disco su richiesta fare un sacco di
roba lì ma il risultato finale è se tu
prendi il raccoglitore predefinito e hai detto
è grande quanto vuoi non avrà un
Problema GC non vediamo come noi
di routine gira con 250 gcx mx2 e ggx
50 concerti su una macchina da 256 gig che max
GC fa una pausa da uno a due secondi ogni
ora e poi non si ottiene questi giganti
GC si ferma bene quindi ho detto di aggiungere un vettore
tipicamente effettivamente avere un gruppo di loro
e sono tutti allineati e sono
allineato in questo modo in modo che un nucleo su uno
JVM può accedere a tutti i membri di un insieme di
un’osservazione che ti attraversa
la memoria accelera così mentre puoi uscire
i dati con accesso casuale su qualsiasi riga
in JVM il tuo più veloce se lo fai
in una sorta di un 1 cor andando su una fila
e il motivo per cui è impostato in questo modo
Certo è che i tuoi set di dati rappresenta
alcune funzionalità del mondo reale ed eccomi qui
mostrandoti l’età di sesso codice di avviamento postale auto
qualunque cosa sarà e tu sai
concettualmente è una serie di strutture o
struct array model e kinda you flip
avanti e indietro nella tua testa in che direzione
vuoi vederlo e posso consegnare il
dati per te in modo simile a un
il nostro data frame in modo che possiamo aggiungere o sottrarre
le colonne sono gratis. È come a
il puntatore cambia per farlo in modo che sia comune
l’installazione è di raccogliere in molti
migliaia di comunicazioni hai e decidi cosa
tu verrai che andrai a lavorare
con e probabilmente ne lascerai un mucchio
colonne fuori e quindi probabilmente filtrare
e hackerare un mucchio di colonne da costruire
più funzioni e poi lo passi
per la matematica dei pesi massimi lo farò
lordo ma tutto l’aggiunta e l’eliminazione di
le colonne sono tutto gratis okay
con in una colonna c’è questa cosa
chiamato pezzo che avevo menzionato prima è
è solo l’unità di accesso parallelo a
chunk è
tipicamente da mille a un milione
gli elementi di dimensioni sono memorizzati in byte
matrici nel calore di Giava così vecchio
array di byte ed è dove facciamo
compressione e variando la compressione
strategia dal tipo di dati che siamo
osservando in quel pezzo ma il
garanzia è quella o ottieni o metti e poi
doni un elemento è solo un paio di clock
cicli compreso il passo di compressione in
questo caso la compressione è uno di
le cose divertenti chiave che facciamo per la velocità
perché stiamo spostando i dati compressi
attraverso la gerarchia della memoria e
decomprimerlo e registri macchina
al volo è una sorta di completamente gratuito
decomprimere perché non puoi tirare
dati e abbastanza veloce comunque siamo tutti
bloccato dietro il bus di memoria così di più
la compressione è effettivamente migliore e quindi
ovviamente ogni riga è una specie di
di proprietà di un singolo core in un determinato punto
nel tempo in modo che il nucleo possa accedere a tutti
membro della riga come un thread singolo
come se avesse un oggetto java, infatti, lo farò
costruisci solo un oggetto Java che vuoi
uno e poi sai che può solo
scarabocchiarlo a tutta velocità Java così così
è la sua struttura dati privata
che può solo maneggiare come lui una volta e
poi ho detto che l’unico thread su quello
serie di file c’è abbastanza lavoro chunk
lì per coprire il costo del lancio
abbastanza discussioni insieme
occupato ma è abbastanza piccolo da farmi capire
buon parallelismo dei dati a grana fine così
è questo genere di conoscete una buona miscela di
abbastanza grande da coprire il costo di
lancio o discussioni abbastanza piccoli
per ottenere un buon parallelismo e così ovviamente
quello che realmente accade sono tutte le luci principali
tutto in parallelo tutto in una volta, come
mi assicuro che i dati siano allineati I
caricalo così così quando inalare il
serie di dati inizierò a selezionare cosa
le file andranno su quale macchina
attraverso i dati in modo da conoscere un comune
la cosa da fare è leggere in un sai
terabyte CSV file in modo CSV significa è
lunghezza variabile su ogni fila è tutto
un po ‘in disaccordo ora analizza
e e costruisco il mio formato compresso
e poi prendere una decisione su cosa
le file andranno in quali luoghi e
Li raggrupperò insieme ma lo farò
sistemali con attenzione tutte le note per nota
sapendo che hai un set compatibile
di righe su un singolo nodo e poi
ci sarà un network shuffle così tu
carica un terabyte e viene dalla scrivania quindi
la rete come sai mille volte
veloce e disks la rete mescola
essenzialmente gratuito ora e tu sei limitato
per quanto riguarda la velocità in modo da ottenere i dati
così farò uno scaffale
uno dei cappa ottiene i dati dove io
lo voglio e poi non si muove di nuovo qui
okay, quindi c’è un rapido riassunto
un frame di dati è una raccolta di vettori
è davvero distribuito frame di dati è
sono tutti i dati nel complesso
cluster e quindi conosci il
i vettori sono essi stessi una raccolta di
questi pezzi che è la mia unità di
accesso parallelo a blocchi da mille a
un milione di elementi e tipo di varia
secondo tutti i tipi di fattori divertenti
e quindi elementi concettualmente Java
doppio anche se in realtà è come
rappresentato sotto il cappuccio varia da
strategia di compressione e come ho detto io
avere come una 15 diversa compressione
strategie che uso di tanto in tanto
una singola riga è un singolo tipo di
osservazione o istanza o concettualmente
una struttura Java di quelle colonne quelle sono
cose che manipoli direttamente
la tua mappa chiama ok così tanto più
domande su questo passo maledettamente bene così
lasciatemi fare una pausa per il secondo e fare un
demo e tornerò intorno ad alcuni
altre cianfrusaglie e questo è in realtà
la maggior parte del discorso vediamo se riesco a ottenere
una demo in corso qui così alcuni nel mondo
Ho intenzione di lanciare Javed s barattolo Xmax
okay il mio cluster si avvicinò ma è a
cluster di uno dei miei laptop qui um let
Prendo questa moneta così non ho parlato
qualsiasi cosa sull’implementazione ma è a
file jar standard singolo, quindi funziona correttamente
il mio portatile posso raggrupparlo sul mio portatile
dicendo barattolo di javed si conosce la e commerciale
lo sfondo lo esegue due o tre volte
un cluster di mediaone però il mio portatile
Ho intenzione di correre nel cloud in esecuzione
ec2 funzionerà da solo
Raggruppa una corsa su Hadoop ma non su
Hadoop leggerà da HDFS o s3 o
ovunque perché è un semplice barattolo
file puoi semplicemente andare più o meno
da nessuna parte, quindi inizierò
il caricamento di un insieme di dati qui ho intenzione di
scegli ma ho i tuoi set di dati, scegliamo
la bella UCI, quindi sceglieremo una cosa
chiamato tipo di copertura che è una foresta
tipo di copertina è un insieme di dati piuttosto vecchio che
le persone che usano molto l’apprendimento automatico
come set di dati di dimostrazione sto analizzando
un file CSV vedrò la pausa
fuori dalle righe iniziali quindi i dati
set è di circa settantacinque megabyte
disco come puoi vedere se leggi lì
è circa mezzo milione di file 55
colonne circa 10 megabyte e RAM
questo è il rapporto di compressione tra
disco e RAM in corso lì e poi
Ho solo una panoramica rapida di vista
il set di dati e se ne esce sai 55
colonne larghe e qualunque cosa per questo
dati particolari impostano la colonna uno
metri di elevazione dove hanno preso il
il campione e la colonna due sono come i metri
distanza dalla più vicina fonte d’acqua e il
la colonna di estrema destra è la foresta
tipo di copertina è un numero da uno a sette
quelle sono le cifre sulla destra lì
che dici di conoscere 55 225 o qualsiasi altra cosa
sarà come un alpino
foresta o pineta o prato o voi
conosci la palude o qualunque altra cosa sarà
e poi ci sono altre 50 funzionalità
fluttuare intorno è una grande pila di dati
um ho intenzione di correre perché sei tu
so che è una copertura forestale che digita a caso
la foresta è una buona cosa qui quindi questo è un
questo è l’algoritmo di apprendimento automatico
chiamato foresta casuale non ho intenzione di andare
in molti dettagli, ma ho intenzione di farlo
costruire alberi decisionali alberi con casuale
punti deboli quindi ho una raccolta di 50
strano qui premo semplicemente il pulsante Vai
qui prendi tutti i default 50 tipi dispari
di studenti deboli in cui ogni studente è un
albero decisionale un albero del carrello e poi il
la somma di loro vota insieme fa
davvero un buon lavoro nel trovare e
essere in grado di eseguire previsioni sulla
set di dati quindi se corro qui nessuno
non faremo questo bello noi
devo aspettare tutto questo ragazzo corre al
fine quindi prendi come altri 30 secondi
qui e avrò fatto qualcosa
quindi mentre stiamo aspettando qui c’è una specie di
rispondere a qualsiasi domanda su ciò che questo
significa o perché ti piacerebbe quale macchina
l’apprendimento sta facendo qui vedi ok così tu
sappi che la nozione generale è questa
modellazione predittiva che ho intenzione di costruire a
modello del mondo reale basato sul mio
inserire i dati impostati con le speranze che il
modello permettimi di prevedere nuove cose con
sorta di alto grado di precisione così
Ho questo tizio un po ‘più a lungo
qui e poi ci fermeremo e prenderemo
uno sguardo a loro così questi predittivi
i modelli sono usati da molte persone per
cose diverse ma per esempio può
prevedere se questa carta di credito o meno
frode delle transazioni o meno o meno
Sto guardando una sorta di attacco DDoS
anche se non sto guardando un blob di
cancro su una radiografia o non sai cosa
è il mio sapere costi stimati per garantire
la città di Chicago da voi conosce il
la tempesta di grandine successiva che attraversa è
andando a distruggere una certa percentuale di tetti
in un quartiere sai qual è il
costi assicurativi a vita di un particolare
popolazione di persone ce n’è di tutti i tipi
di cose che fai con l’apprendimento automatico
algoritmi e possono essere molto elevati
predittivo quindi lasciatemi spiegare questo grafico
qui la vera discesa veloce è la realtà
tipo di sai l’osservazione
fatto sul set di dati di ciò che la persona
trovato quando hanno fatto la loro verità di base
attraversare è ciò che predice il modello
quindi la diagonale è dove la previsione
era corretto e fuori dalle diagonali dove il
la previsione non è corretta quindi circa a
minuto qui o meno ho qualcosa a
modello che è circa il novanta per cento
precisione puoi vedere circa il dieci percento
non riescono a valutare la velocità laggiù a destra
fatto su di te sai mezzo milione
osservazioni in pochi secondi sul mio
portatile e questo è un sai che è un
risultato ragionevole per non molto lavoro
in realtà se dovessi averlo sai
le macchine cluster potrei andare molto più veloce
o molto più grande o entrambi e ho un
modello che fa qualcosa di interessante se
Dovevo correre un po ‘ a caso nella foresta
più a lungo mi piacerebbe farti sapere di più
modello altamente predittivo e utilizzare il
commercio generale come alcuni dei modelli
costruire sarà molto veloce da costruire con
meno precisione predittiva e alcuni lo sono
più lento da costruire con più
la precisione della forza casuale è una specie di
in mezzo l’altra cosa sta succedendo qui
che alcuni dei modelli sono di più
interpretabile quindi sì, ecco la mia cattiveria
errore quadratico da alberi che probabilmente
non c’erano altri numeri lì dentro
costruito troppo velocemente va bene così è
questa è un’unità usata per decidere quando
interrompere l’aggiunta alberi che non sei
ottenere una foresta casuale migliore è una specie
nel mezzo di essere interpretato
ciò che è nei guai significa significa che io
può guardare il modello capire perché
sta predicendo ciò che prevede
la regressione logistica è molto interpretativa
bilawal ma puoi leggere il
coefficienti diversi su un generale
regressione logistica modello lineare di tipo
capisci direttamente perché sta facendo
previsioni e che in realtà si trasforma in
come i regolamenti governativi, le persone lo fanno
Dì i modelli di tessere con punteggio FICO se lo sei
ottenere credito consentito o negato in
tu hai detto perché eri
negato il credito e quindi il governo
fondamentalmente ti sei obbligato a fare la logistica
regressione o variante di ciò perché
puoi spiegarne i risultati al
nel consumatore che hanno negato il credito
a causa di qualcosa si va al profondo
modello di apprendimento ed è altamente opaco
non sai perché prevede che sia così
anche di gran lunga il miglior dettaglio particolare
i modelli di apprendimento erano come se fossero magici
Oracle che lo farà con un livello estremamente alto
core ha fatto tutti i tipi di divertimento
previsioni quindi questo è il modello giusto
costruito proprio ora è seduto nel
memoria nella mia JVM se voglio estrarli
tutto fuori e fare qualcosa con esso sono io
andando a fare qualcosa di male tu stai andando
per prendere un secondo o alcuni ne ho intenzione
torturo il mio browser che ho intenzione di tirare
tutti fuori come un pezzo di codice java così
come un normale vecchio POJO, ma è così
abbastanza grande da essere visualizzato in
il browser è un codice gigante per un codice pissa
testo il browser sta per barf qui
per un secondo va bene così ecco
boilerplate abbiamo automaticamente tutti voi
sapere generato comprese le istruzioni su
come compilarlo e come usare il
modello ma l’obiettivo qui è quello di lasciarti
prendere questo modello e andare in produzione
impostando così alcuni sono in fondo qui dopo
tutto il boilerplate qui è un regalo così io
ha detto che era un albero decisionale ecco a
la predizione del galleggiante dell’albero decisionale è uguale
per bene se ti manca è il nan
controllare se la colonna 13 è o la colonna 14
è qualunque cosa meno di
questo indice e duh-duh-duh-duh-duh
da qualche parte qui in fondo
c’è una risposta che esce ok, deve
sei stato sai che ne prenderò due
o uno o qualunque cosa sarà questo
è di classe due delle mie sette classi
giusto quindi è un albero decisionale qui rotola
su rotoli su rotoli va bene così
gli alberi decisionali diventano grandi e da qualche parte
c’è un secondo e un terzo e un
quarto e un quinto e c’è 50
palla di alberi decisionali seppellita qui e
e quello che equivale a è se corri
questo codice con una precisione del novanta per cento
prevarrà la copertura della forza corretta
digita e se faccio la stessa cosa per mi piace
dati della carta di credito Farò un modello
che se corro con un certo livello di
la precisione mi dirà che ho ricevuto una frode o
non una frode questo particolare tutti questi
i modelli non assegnano e il loro
cicli di coroner corrono in modo limitato
quantità fissa di codici è possibile il tempo li
e sapere esattamente quanto ci vuole se
hai un problema di punteggio in base al tempo
come una carta di credito, fai scorrere i ragazzi
aspettando Starbucks per la sua risposta
giusto hai un numero di
millisecondi che dovresti segnalare
conosci i pollici in su che tu
può contare il numero di millisecondi
questo ragazzo corre a questo è quello che finisce
ed è appena pronto per entrare
produzione giusta così sì
il modello funziona all’infinito ma è tutto
una sorta di semplice le cose che faccio a
regressione logistica i modelli molto piccoli
molto semplice e puoi vedere che possiamo correre
la regressione logistica qui lo facciamo
andiamo in un nuovo server di navigazione delle schede, quindi sono
facendo questo dal browser um c’è un
numero di API supportiamo il riposo e JSON
è ovvio e il browser era
costruito sopra il resto e JSON facciamolo
che va bene, okay, dai
fatto in modo che era molto più piccoli set di dati
solo tu sai di megs e RAM 50.000
Strada 40.000 rosa uh generalizzabile
rimodellamento farà generale e
rimodellamento ok ecco quindi una compagnia aerea
data set una sua frazione e il
la domanda è che posso prevedere il tempo sul mio
il volo aereo sarà ritardato o no
particolare set di dati ha molto di quello che noi
chiama la risposta
una colonna di risposta è qualcosa che tu
ottenuto dopo il fatto in genere aggiunto a
set di dati che non sono disponibili prima
per esempio, salite sull’aereo
anche se non sei stato cancellato nel
il mezzo qui è disponibile solo fino a dopo
sei arrivato all’aeroporto e hai scoperto
il volo è stato cancellato proprio così se tu
prevedere con che il modello lo farà
scoprire immediatamente che ogni volta il
il volo è stato cancellato, si è ritardato così
è un po ‘inutile, quindi ho intenzione di farlo
escludo che, tranne io, ho sbagliato
cosa qui liberiamoci di tutto questo
eccoci finalmente ok, lasciami provare
di nuovo qui sono più facile farlo in questo modo
quindi faccio il mio turno cliccando sul modo corretto
qui sto cercando il controllo
fare clic su sto cercando non ci va
quando deviato o annullato voglio
distanza e origine e morte
ha senso chiaramente non voglio l’arrivo
ritardi CRS è il piano l’ultima volta
che voglio mantenere l’intervallo di tempo reale I
bisogno di prendere perché se il reale
il lasso di tempo è molto lungo allora da qualche parte
Mi sono fatto ritardare quando arriverò alla coda
nom e numero del volo perché coda num
è un identificatore univoco sulla maggior parte dei
voli per questo piccolo set di dati e
si limiterà a prevedere se si è arrivati a
aereo con questo numero di coda successivo
il tuo volo è stato ritardato o meno perché
non ci sono abbastanza voli per quello
giocare per averlo non essere in grado di
dire diversamente e sbarazzarsi di
attuali e mantenere i tempi del piano e lo farò
basta andare per il momento in cui i dati si presentano
vettore a che ora impiegherà il tuo volo
dalla tua fonte, dalla polvere e così via
avanti vieni qui è questo generalizzato
la modellazione lineare copre un sacco di
casi interessanti ma turni binomiali
nella regressione logistica che è un modo
per te sai fare vero o falso sto andando
per prendere solo le impostazioni predefinite lì così
regressione logistica Non conosco le persone
voglio andare in quanta matematica va bene
fatto così regressioni logistiche una volta è
in realtà piuttosto veloce e molto scalabile
fortemente in modo da poter ottenere una logistica
regressione fatta su un terabyte dentro e te
so che tra un minuto è davvero
modello di costruzione veloce ha un
modello facile da capire ma è meno
predittivo quindi qui invece di novanta
previsione percentuale sto andando in giro
sai il settanta percento e puoi vedere
sorta di
la linea rossa rappresenta un tiro di dado 50-50
e sto meglio del 5050 quindi sto ricevendo
una qualità predittiva, ma non a
enorme quantità ma l’altra parte posso andare
quassù e guarda e guarda cosa sono questi
i numeri significano e e cosa succede qui
è che i coefficienti che sono
guida positiva l’equazione sopra la y
uguale a 1 oltre 1 mappa più blah blah
verso il 1 e coefficienti negativi
guidarlo verso zero e quindi è in ritardo
essendo uno dice più probabile è quello
devi essere, sai più alto è il
coefficiente più probabile che sia
ritardato così decollando o arrivando a
questo particolare aeroporto so cosa
è o decollando da ragazzo del sud sono
entrambi altamente indicativi del fatto che tu sia
in ritardo o meno e se passo qui
c’è una nuova Chicago tipo di Chicago
Midway è proprio qui ce n’è un altro
quelli che arrivano abbastanza veloci che sono
tipo di destinazione interessante Austin
e questo è interessante, okay, lo farò
smetti di guardarlo ma puoi ordinare
attraverso di me iniziamo a scegliere te
sapere sul set di dati a dimensione intera
L’SFO si presenta subito come un male
l’aeroporto per decollare o atterrare così fa
Atlanta e poi certe compagnie aeree come
succhiare che non vuoi mai essere su questo
compagnia aerea e altre compagnie aeree sono perfettamente
bene così puoi ottenere qualcosa
dai più grandi dati impostati qui
un piccolo set di dati non ha dati sufficienti
per raccogliere tutte quelle caratteristiche ma il
equazione è questa è questa che
è il modello giusto così è quello
la linea di Dalek ti ha aggiunto di lasciar perdere
dentro e nel tuo predittivo o sul tuo cellulare
app per telefono e subito puoi rispondere
va bene così è una specie di veloce
passare attraverso la demo forse dovrei
fermarsi e prendere domande su questo i fri
torna alle diapositive okay , ok
andando a faremo, andremo
vai qui ok, quindi siamo stati molto bene
occupato qui e l’ultima cosa che siamo
pasticciare qui è l’integrazione scintilla così
stiamo facendo cose di grandi quantità di dati e quindi scintilla
anche se abbiamo molto diverso tipo di
modelli di dati ed esecuzione è chiaro
quello che sai che c’è un
interessante integrazione continua qui così
ora siamo in grado di spostare indietro i dati e
avanti tra i dati di spark e h2 o
fotogrammi ed è in corso in memoria così
in realtà è abbastanza veloce per tornare indietro
e avanti e poi puoi prendere un h2o
data frame e trasformarlo in un grady spa
ed eseguire lavori scintillanti su di esso
direttamente come ha ottenuto una riga di codice
lì e in aggiunta i dati heo
i frame ora supportano una collezione scala
notazione in modo da poter dire solo per ciascuno
e ti metto a conoscenza di qualche tipo di mappa
di codice proprio lì e i codici su
github hai bisogno della versione dev di
h2o e poi parare l’aria è frizzante
acqua è la nostra combo questo probabilmente
andare via in un altro mese o due tutti noi
bisogno di una scintilla era un gancio da chiamare
h2o all’avvio nel posto giusto
e che poniamo una richiesta di giurato e
accendi le persone e ne hanno prese un po ‘
versione di esso e quindi non sarà troppo
tanto che non abbiamo davvero bisogno di una scintilla
costruire okay in modo che possiamo andare avanti e indietro
tra i due è tutto in memoria
è tutto in corso, non c’è esterno
strumenti necessari per lo più i dati non si muovono
è la stessa forma perché sta andando
essere in formato sparks nei formati h2o
e poi c’è una differenza tra
desideroso e pigro coprirò in un secondo noi
fare una copia di dati ma l’hto data è
tipicamente molto compressi
i dati di scintilla in modo che se stai correndo
un cluster di scintilla di successo in questo momento e
fai una copia dei dati l’extra
il membro di cui hai bisogno non è molto completo
che stanno già consumando per la scintilla
lo sai questo è un po ‘di
la scintilla di layout si accumula da blocchi che
chiamate partizioni queste sono strutture
che sono limitati come JVM singoli
non attraversare il confine della macchina e hto
usa questi pezzi e collezioni per
in ogni colonna puoi avere molti di questi
in un determinato heap java limitato solo da
memoria e quindi si sa guardarla
in questo modo un RDD è tutto di memoria tutto il
i dati in hto data frame sono tutti ma
siamo separati da colonne nel rosa
per i vettori e r dds sono suddivisi
a pezzi ci saranno un paio di pezzi
per ogni JVM è un po ‘diverso
formato ma andremo avanti e indietro
tra i due diversi layout con
solo una chiamata java per tornare alla data
in giro quando convertiamo i dati h2o
montatura
la versione avviene immediatamente è
essenzialmente uguale a una scintilla
punto di controllo hai intenzione di eseguire la discussione
o in genere pigro fino a quando non richiedi
un output h2o richiederà un’uscita get
i suoi dati in formato h 12 allora puoi fare
qualcosa con un h2o tutte quelle cose
fai un h2 sono tutti fatti avidamente sul
punto quando hai finito tornerai indietro
per accendere Idd tu dici dammi un 2 tu
ottieni un oggetto rapper così è
pigro a quel punto ma hai il checkpoint
in h2o e poi puoi aggiungere il nostro DS
fin dall’inizio costruirai la tua pipeline
del calcolo e quando chiedi il
scintilla risultato tirerà fuori i dati
h2o convertendo un formato spark e poi
portare attraverso la pipeline di scintilla sorta di
il modo in cui la scintilla normalmente fa le cose bene così
questo è tutto ciò che sto per concludere
qui abbiamo un paio di usi diversi
i casi le persone usano il sistema per così no
la codifica della distribuzione è fondamentalmente intera
algoritmi o tutto il tipo di matematica vettoriale
le cose spesso questo è il resto e JSON
interfaccia di stile e stai facendo
qualcosa come set di dati caricati eseguiamo a
la regressione logistica ottiene risultati solo
cosa demo in un minuto fa e tu puoi
guidare questo dalla nostra base web Python che
era il browser che hai visto il loro accartocciarsi
scripting comunque tu vuoi eseguirlo noi
avere una comunità attiva che usa
hto come un modo per ottenere grandi dati sul nostro e
possono digitare ci sono espressioni come
hanno sempre fatto una R e il
funziona tutto fatto sul cluster sul
cloud e le dimensioni del set di dati sei tu
sapere mille volte più grande di quello che loro
puoi fare un R um puoi tuffarti nel
cappuccio e scrivere codice in te lo sai
Lo stile MapReduce è abbastanza buono
per qualsiasi tipo di algebra lineare densa qualsiasi
tempo ho intenzione di passare tutti i dati
e fare qualcosa e passare tutto
i dati e fare qualcosa sono spesso attivi
l’ordine di voi conosce modesto millisecondo
conta quindi è abbastanza veloce che puoi fare
cose interessanti con un sacco di
passa non è lo standard che conosci
Hadoop MapReduce per la velocità è molto
molto più veloce e quindi sosteniamo un sacco
cose più complicate che non ho intenzione di
parliamo di oggi ma c’è un
deposito di valori chiave a tutti gli effetti nel
cappuccio e puoi fare qualcosa di interessante
algoritmi grafici e cose così
in sintesi la maggior parte dei semplici java funziona solo io
abbiamo le funzioni della mappa a cui andare
le migliaia e migliaia di righe di
codice java e tutti funzionano e io
sembra che il codice Java funzioni come il codice Java
e tutto sembra giusto tu sai che è
veloce
e nelle persone tutti dicono veloce ma
stiamo correndo alla stessa velocità di Java
il codice sarebbe eseguito su un aumento di array java così
è veloce come si potrebbe uscire
Java che è praticamente collegato alla CPU o
la larghezza di banda di memoria limitata nella maggior parte dei casi lo è
veloce come l’hardware sta per andare
puoi anche scrivere grandi dati ed è così
un po ‘più lento ma non molto perché
stiamo facendo compressione come fai tu
Voglio dire, come ho detto che siamo in genere
la larghezza di banda della memoria sarebbe supportata
il modello di memoria java completo nel
cluster distribuito non è pigro
la consistenza ha visto esattamente che è effettivamente spenta
abbastanza veloce esatto, anche se se lo fai
diritti in conflitto che stai per
seguire il modello di memoria Java che
non ti darà necessariamente la risposta
lo vuoi perché è carino
loosey-goosey su come ordinare
aggiornamenti transazionali che facciamo
internamente molto per il comando e il controllo
tipi di cose e poi stiamo scrivendo
conosci i dati analitici distribuiti su big data
un sacco di algoritmi che abbiamo
scritto stiamo lavorando su più siamo
lavorando solidamente su set di dati da 100 gig
quello è il nostro spettacolo, il jenkins notturno
test in realtà ogni push test post è
ora facendo qualcosa sull’ordine di
grandezza che stiamo facendo a scala di terabyte
roba ora abbiamo sicuramente clienti
utilizzando i dati di scala di terabyte in questo momento e
abbiamo pagato i clienti in produzione
ed è tutto open source e gratuito, quindi vai
scarica e gioca per i big data sì
domande sì, quindi stai lavorando su questo
e anche la SE modella una foresta lineare
e vestiti giusti ecc. e disfarli
via quei sì così la corrente lo sai
interessante nuovo modello che sta venendo fuori
come cox rischi proporzionali che è
usato tipicamente per analisi di sopravvivenza o
analisi della durata di una raccolta di
un milione di persone nel tuo pool di assicurazioni
alcune persone muoiono ad un ritmo costante
dopo che sono invecchiati abbastanza e mentre
può essere duro pensare alle persone
morire è quello che sta arrivando l’assicurazione
per vivere negli ultimi cento anni
e così guardano la grande piscina di
le persone e dicono quante persone sono
vecchia dieta più vecchia e morta e poi tu
sappiamo che abbiamo pagamenti assicurativi e
qual è il set di soldi e quanto costa
abbiamo bisogno di un trak basato sull’età del nostro
pool e questa è l’analisi di sopravvivenza caca
la stessa cosa funziona davvero per tutta la vita
analisi di tutto ciò che hai e
poi ti rompi e non lo fai
quindi telefono quello che è l’assicurazione
costi di copertura per la raccolta di
le persone senza di te sanno che io telefono
pianeta quando muoiono e lo fai cadere
lo schermo si è rotto più a lungo lo hai
più è probabile che tu cali nel
lo schermo si rompe e tu entri e ottieni il tuo
pagamento assicurativo quindi il ragazzo che sta facendo
quelle assicurazioni funzionano così
analisi su questo sulla tua auto, lo sai
Non so che ci sia in realtà un
molti usi per quella particolare sì
un’altra domanda fa cosa succede se Cano
va giù quindi non siamo una soluzione H
così ci siamo guardati bene e abbiamo pensato
su di esso per un lungo periodo e sappiamo come
farlo ma non ne vale la pena
in questo momento così invece siamo andati per una sorta di
la velocità grezza e la maggior parte delle operazioni sono tutte
fatto in pochi secondi a minuti e così se
un nodo va giù riavvia il cluster in modo che il
il cluster verrà caricato in secondi
i dati richiederanno più tempo è qualsiasi cosa
conosci il conteggio dei dischi / disco mastmax
larghezza di banda che possiamo colpire maggiormente
l’ottanta percento dei loro ha votato
throughput e un carico di dati parallelo così
senza problemi e poi e tu sei
di nuovo così se un nodo scende è
come una grande calcolatrice e non serve
giù ti chiudi la calcolatrice
riaccenderlo e vai di nuovo
quindi è in questo senso che il
il modello di implementazione è molto semplice e
semplice se arriviamo a indicare dove
le persone stanno svolgendo lavori che richiedono settimane
o una settimana due settimane su cluster di a
cento o più di dimensioni probabilmente lo faremo
Ho bisogno di una soluzione e, come ho detto, so
come farlo da una tecnologia
punto di vista non è valsa la pena farlo
giusto ancora q c’è qualche idea su
in esecuzione h2o e bare metal contro il
tramite un collegamento pensato dolorosamente nudo
metal versus vm yeah quindi questo è un po ‘
la storia ovvia di VMS contro h2o
ci stiamo guardando in realtà
in questo momento un sacco di gente di solito VM
aggiungere una certa quantità di spese generali
brucia tutti i tuoi core e tutto il tuo
i ricordi sono facili e quindi se tu
aggiungi un overhead e ti limiti a rallentare
non è che abbia senso averlo
condividere piacevolmente con qualcun altro su a
vicino perché hto non è in realtà a
bel vicino di casa dici che vai sta andando
prendi tutto e vai e così non è
funziona bene non è così
lavorare a tutti si può lavorare bene solo
non è un buon vicino per averti
sappiamo di essere sullo stesso hardware che facciamo
test e corriamo in quel modo tutto il tempo
è perché succede che conosci le persone
fai così ma è forse no
il modo migliore per impostare un cluster per
eseguendo h2o ma detto che eseguiamo un ec2
tutto il tempo è molto standard
setup per noi e quelli sono tutti ovviamente
missione virtualizzata che è tutto il modo
si ok quindi è complicato che ci sia
essenzialmente nessuna connessione ma sembra
come se ci fosse una connessione davvero grande quindi
la connessione è la maggior parte delle persone
i dati sono in Hadoop HDFS, quindi leggerà da
HDFS come sorgente di file parallela va bene
ben letto da s3 leggerà da locale
guidare o leggere da tutte queste fonti
incluso HDFS ma non è necessario
su un cluster Hadoop ma possiamo farlo
gioca bene nell’ecosistema Hadoop come a
un tipo divertente di un lavoro di mapper, se vuoi
per dirigerci su Hadoop dove la mappa si attacca
in giro per sempre non se ne va mai e
allora sai brucia tutti i core quando questo
va nel suo idolo quando non stai correndo
quindi è una specie di strano lavoro di mapper um
non è molto efficiente in questo senso
ma non è poi così male in quello che realmente
succede è che entriamo in qualcuno che è
interessato a sapere come inserire h2o in
produzione e hanno già un grande
Cluster Hadoop in giro ma loro
non avere un cluster di metallo nudo di ricambio
stendendoci intorno correremo sull’Hadoop
cluster perché è il modo più rapido
per ottenere un’operazione di cluster ora
quello che ha detto la maggior parte dei cluster Hadoop
macchine che sono pesanti e CPU
e la luce della memoria e noi vogliamo esattamente il
CPU e memoria e quindi è a
ottieni una gigantesca collezione di minuscoli
macchine e questo è un po ‘ di no
necessariamente il modo ottimale per eseguire h2o
quindi spesso stai meglio con meno
nodi più grassi
tornerà ma non quello
dice qualcosa così sai lungo la linea
di meno nodi grassi il che cosa è a
la configurazione per la macchina è simile
è una specie di interessante o funziona
bene non varia da quello che vuoi
a che fare con esso la regressione logistica è
fortemente ridimensionamento e quindi davvero non puoi
farla franca con un grande mare di minori dimensioni
macchine e andrà benissimo a caso
la foresta ha in genere più rete
larghezza di banda e come gli alberi diventano più profondi
devi costruire questi istogrammi
diventa esponenzialmente più grande dell’albero
diventa più profondo e improvvisamente è molto grande
i set di dati vengono schiaffeggiati
tra i nodi e così la tua rete
il throughput diventa interessante
collo di bottiglia e stai meglio con
meno nodi semplicemente perché c’è meno
traffico di rete si va troppo in profondità di apprendimento
l’apprendimento profondo corre o reti neurali
gestisce questi algoritmi di rete neurale
all’interno di una nota sono estremamente efficienti
usando questo algoritmo selvatico di maiale il loro audace
e e come tipo di pazzo veloce ma
i modelli si allontanano l’uno dall’altro
indipendentemente dal fatto che non ci sia x86
coerenza hardware su un nodo e così via
che deve essere curato con la spedizione
i modelli attraverso il filo per risincronizzare
di nuovo verso l’alto o vanno alla deriva troppo lontano da
l’un l’altro quando li sincronizzi
sorta di cancellarsi a vicenda così da te
voglio continuare a risincronizzarli e quello
si trasforma in una latenza di rete al contrario
al problema della larghezza di banda quindi alcuni dei
gli algoritmi sono tolleranti alla rete
e alcuni sono meno tolleranti alla rete e
quindi il tuo tipo varia a seconda dell’algoritmo
se vuoi farti sapere
se riesci a farla franca
nodi o nodi skinny e più di essi
o grasso o nodi e meno di tutti
bene, in realtà lo sai
circa il tempo e e ho finito con le diapositive
ho un sacco di extra divertente in più
diapositive che possono passare attraverso le persone vogliono
ma quando chiamiamo questo la fine ufficiale
e sarò in giro per un po ‘
per Q & A qui
sui Big Data, credo che sia il primo
cosa da fare è qualificare con le persone cosa
grande è perché ognuno ha un diverso
nozione di grande quindi suppongo che mi aprirò
facendo una domanda qui così quanti
le persone qui lavorano con i big data come
quindi che fretta fai tutto perché sei dentro
questo parlare così quante persone qui andiamo
proviamo di nuovo qui quante persone
qui lavoro con set di dati che sono
tipicamente un gigabyte o di dimensioni maggiori
oh va bene va bene, quante persone lavorano
con ingranditore di serie di 10 gig va bene
Ingranditore da 100 gig terabyte ora siamo
scendere a circa 10 terabyte
un centinaio di terabyte ora sei tu
alzarsi a quello che chiamerei grande così
il petabyte giusto e e su di esso o lo farò
fermati qui in modo che i ragazzi della coppia vadano
fino a petabyte e poi
probabilmente ci saranno persone di Google che lo faranno
continua ad andare in exabyte così per quello che siamo
facendo un grande pozzo è stato molto eccitante
per colpire di nuovo , noi siamo grandi
da qualche parte tra gigabyte e
terabyte nel senso che oltre
terabyte troppo grandi per un
soluzione in-memory convenientemente così siamo
aprire una piattaforma è pura java aperta
fonte si può ottenere direttamente
github e il sito web ha un barattolo
file che puoi scaricare e andare
prende solo un barattolo e spesso gira e
sta facendo è una piattaforma per fare
matematica distribuita in parallelo e quindi data
una piattaforma per la matematica distribuita in parallelo
cosa significa bene oltre all’essere
fare una sorta di qualsiasi tipo di matematica generica
vuoi che stiamo costruendo alti in matematica
algoritmi di apprendimento automatico logistico
generali di regressione modellistica
Grady ha potenziato il metodo delle foreste casuali in profondità
apprendere reti neurali avanti e avanti e avanti
un sacco di roba, quindi credo che andrò
di pari passo con così tanti quanti
le persone qui stanno usando la macchina
imparare o guardarlo o
pensando a te che ne stai facendo
l’apprendimento automatico va bene una certa quantità e
quante persone usano la macchina
imparando su una sorta di base quotidiana ora
come se fossi seduto alla tua scrivania
e i tuoi modelli di costruzione su un normale
base quindi no e tu vai a sentire
piani per
vai là dove costruirai
questi modelli e prova a comprarli
produzione quindi un paio di persone così così
le persone là fuori fanno un piano okay così
questo discorso è in realtà non lo farò
approfondire gli algoritmi di apprendimento automatico
di matematica di cui parlerò
piattaforma di sistemi di costruzione per consentire
algoritmi di apprendimento automatico da costruire
okay, ho detto che questa è una piattaforma per
fare i big data funziona così che cosa fa
significa in questo contesto significa quasi nessuno
lavoro vuoi su un grande
tavolo bidimensionale quindi tutto ciò
legge o scrive una singola osservazione in
i tuoi dati impostano una singola riga più forse
qualche rosa nelle vicinanze e forse un computer
riduzione o produce un grande output di dati
all’interno di quel vincolo la velocità è
interessante perché è grande e il
la velocità è in genere il volume dei dati diviso
dalla tua larghezza di banda di memoria è limitato da
larghezza di banda di memoria frequentemente che è
come 50 gigabyte al secondo per nodo che
varia in base all’hardware e al tuo originale
configurazione e alcuni degli algoritmi richiedono
più traffico di rete e quindi questo è il
collo di bottiglia e detta banda di memoria ma
di solito vediamo numeri che sei tu
sapere mille volte più veloce di
tutto ciò che fa un casino è carino
low bar ma stiamo ancora vedendo numeri
che sono dieci volte più veloci di chiunque altro
nel resto del mondo è molto veloce
roba così che apre la porta a fare
cose interessanti che ho citato i dati
è compresso parleremo di più a riguardo
in seguito è in genere molto meglio
compresso e ciò che ottieni da simili
gzip sulla scrivania e va dritto a
il volume di dati della larghezza di banda della memoria
trade-off per la velocità nel bene
direzione sto facendo matematica quindi sono limitato
ai dati che sono numeri matematici bianchi e
tempi e archi semplici e poi ho detto
tabella bidimensionale quanto è grande il
tavoli da tavolo che sono meno come un
saranno migliaia le colonne
veramente veloce come troppo veloce che puoi
a malapena interessano fino a diecimila colonne
funziona ancora abbastanza bene e 100.000 o
più grande funziona ancora, ma i loop sono
paralizzato nel modo sbagliato e non è così
veloce come forse ti piacerebbe ma la lunghezza
dei tavoli ha limitato la memoria e può essere
da milioni a miliardi a migliaia di miliardi
può essere molto molto molto lungo quindi più o
meno sai due terabyte di
il cluster girerà
ne conosci decine di miliardi
di miliardi di righe e va bene
andrà tutto bene, quindi cosa puoi fare?
con esso ora sto per entrare
alcuni esempi qui da uno sviluppatore
punto di vista e la cosa più comune
non è un paradigma di MapReduce
l’unico paradigma che supportiamo ma è a
uno comune perché si riduce semplicemente
completamente bene quindi una mappa e ridurre
prenderà qualcosa di un tipo A nel
chiama la mappa e produce qualcosa, ma digita
B in questo caso è doppio doppio e
Sto solo calcolando un quadrato e poi a
la riduzione richiederà due tipi di B
e fare uno qui sto facendo pubblicità semplice
e quindi questa è solo la somma dei quadrati e io
scrivere questo codice Java esattamente come questo
e io dico di fare tutto sui miei dati ed è così
andando a correre a velocità di banda di memoria
quindi questo richiederà un terabyte in te
sotto un secondo e ne conosci alcuni
decine di milioni di milioni e che ne dici?
il tuo cluster è così così anch’io
avere una versione e uno sviluppo da studioso
è ancora colpito da non 100
completo ma è chiaramente circa la metà del
linee di codice e si può ottenere la nozione
davvero veloce che stai solo facendo un
somme di quadrati qui quindi è una specie di a
cosa scivolosa così ho detto prima che tu lo sappia
avere come mappa e ridurre la mappa
un tipo 80 di tipo B in cui è il tipo a
i tuoi grandi dati sono il tuo input
tuttavia molte colonne che hai selezionato
o quante migliaia e centinaia di
migliaia di colonne hai questo è il tuo
digita un e puoi trattarlo come strut se
lo farai ma è una serie di strutture
Array ostruttivi fonte i due
le nozioni sono in qualche modo intercambiabili qui
sai che sono i tuoi grandi dati ma fila per
riga per riga e il tuo tipo B è il tuo
output e ci sono due tipi di output
ci sono grandi e piccoli big data devono andare
ritorna nel cluster perché di
definizione il grande è troppo grande per adattarsi
un nodo quindi se hai un grande output
questo è dell’ordine di grandezza di
il tuo input originale sarà a
output distribuito in cui vivrà
i cluster memorizzano nello stesso modo il tuo input
puoi anche avere un piccolo output di dati
che è un semplice vecchio oggetto java e il
la riduzione prenderà a tali pojos e
produrne uno aggiornerò sul posto
dove possibile e in definitiva semplicemente
crea una nuova istanza di un’attività MapReduce
scavalcare la mappa e ridurre e dire fare tutto
e tu sei
l’istanza regionale torna con
qualunque sia stata la tua riduzione
di nuovo in quel caso dopo il suo
visitato il tuo terabyte di dati, quindi ecco qui
alcuni esempi di questo qui è il mio tipo a
una doppia coppia x e y mi tipo B è quella
questo puntatore un’istanza di lineare
la regressione passa una che è informatica
somme e somme delle piazze ancora e tu
può vedere è semplicemente aggiungendo direttamente in
l’oggetto Java e la riduzione delle chiamate
prende questo in ciò che sono due di
lo stesso tipo di cosa e li piega
insieme c’è una versione erudita che è
circa la metà delle righe di codice un po ‘
più brutto su una diapositiva, ma quando dico che va
di nuovo nell’oggetto originale i
fatto un foo e posso utilizzarlo direttamente
la prossima riga di codice per andare a calcolare
cose dritte da foo e poi
di solito che si nutre del passaggio successivo I
basta scrivere il prossimo pezzo in questo caso
di regressione lineare ce ne sono tre
passa e tu diresti di passare uno fa tutto
passare a fare tutto passa attraverso un po ‘
un po ‘di algebra dentro e intorno ai passaggi
ed è un affare fatto quindi c’è un
cosa di efficienza qui e tu sai a
ottenere la mia larghezza di banda della memoria accelera
Devo davvero schivare tutti i tipi di
in testa così sotto il cappuccio ogni volta che io
dire che la mappa è in realtà un ciclo for che è
correndo su alcuni blocchi di dati che otterrò
più in quello che un pezzo è qui in a
minuto ma è una raccolta di a
da mille a un milione dei tuoi elementi
quell’unico nucleo sta per fare qualcosa
con e c’è un ciclo semplice per quello
puoi scrivere te stesso o puoi lasciarlo
il sistema ti sostituisce
la propria mappa chiama quel chunk al CX alle 6y
questo è il passo di decompressione parla di più
su questo in un minuto perché conta
per la velocità così tanto e poi lo fai
la tua presentazione della mappa standard come me
l’ho mostrato un minuto fa e quelli sono tutti
lo stesso perché tu hai un for
loop qui se hai interessante
funzioni cartografiche complicate che puoi trasportare
loop e varianti te stesso se il
Jets non ha intenzione di farlo per te
tu stesso e quando lo facciamo noi stessi
algoritmi di bocca interni lo faremo spesso
avere funzioni di mappa che sono migliaia
le linee sono più di codice Java e lo saremo
facendo un sacco di sorta di manuale
ottimizzazioni per trasportare loop e varianti
fuori e cose del genere va bene così ecco
un altro rapido tipo di cosa che posso fare sono
andando a contare qualcuno invece di a
computer matematico e questo è solo un filtro
sai se sei se i tuoi dati di input
passa qualche particolare filtraggio
condizione conta come uno o uno zero e
le riduzioni li aggiungono e quindi
La tassa sul collison è di nuovo un po ‘troppo
più corto e un po ‘più pulito e tu
so che otterrò i conti in quel modo
per quanto tempo ci vuole per spingere i dati
attraverso il bus di memoria in aggiunta a
facendo conti posso anche raccogliere set
e questa è una grande uscita di gate o ho
fatto un nuovo vettore di uscita e ho detto
passa tutto nei miei input del mio
uscite e quindi posso usarlo
immediatamente e il prossimo passo e alcuni
erano nel corpo della mappa chiamata che ho
scelto alcune condizioni e quindi impostare un pin
e quello ha raccolto un set di output che è
troppo grande per adattarsi a una macchina in genere
sai qual è la percentuale di
persone di cui hanno passato il filtro
spinto nel set di output, ma potrei
avere un set di output con un terabyte in
dimensione e se sto filtrando di solito forse
è piccolo ma se è grande lo farà
essere troppo grande per adattarsi a una macchina così
solo l’output deve essere
distribuito quindi questo è un po ‘di più
riguardo allo stile di codifica ecco a
fondamentalmente un acquisto di gruppo o ho intenzione di
fai una domanda quante auto fanno le persone
possedere in epoche diverse nella loro vita e
la cosa più interessante qui è che ho
fatto un’assegnazione nella chiamata di mappa e
il trucco chiave è che è a
l’allocazione privata privata è
fatto privatamente da un cor è singolo
accesso filettato quindi in particolare che +
+ fuori alla fine non deve essere
sincronizzato questo è un core che ne fa uno
pezzo di lavoro e non c’è
sincronizzazione coinvolta ma poi ogni
core è in esecuzione su un altro pezzo
dati in ritardo e quindi hai un sacco intero
di questa piccola macchina invecchia matrici così tu
avere una riduzione per arrotolarli
e ho una piccola utilità che sta andando
per aiutarti a conoscere l’elemento dell’array
aggiungi qui gli uniquisiti di questo caso
la differenza è che ho fatto un nuovo in
costruttore invece di chiamare la mappa
e questo significava il tempo in cui chiamavo nuovo
unici qui ho fatto un’istanza di
un oggetto e quando dico fare tutto questo
oggetto è stato replicato attorno al cluster
con tutti che condividono tanto quanto
possibile l’istanza che ho appena fatto
questo è molto utile per set di sola lettura
ma se è scrivibile allora devi
gestire la valuta in questo caso è a
non bloccante è un hash sicuro e concorrente
impostato in modo da poter avere tutti proprio in
quindi la funzione mappa semplicemente si inceppa qualcosa
nell’hashtag
dove le asole vanno filtrate
dupes e la riduzione sposta le cose
insieme e questo è chiamato ogni volta che io
devono spostare questi hash Jets sono finiti
il filo ma in così tante righe di codice i
posso calcolare gli uniques e il mio set di dati
attraverso il cluster va bene così è stato sort
di un rapido tour vorticoso che sto per fare
riassumere i limiti qui e il
il principale è che non posso farne nessuno
allocazione delle risorse a livello di macchina
perché quello non sarà raggruppato in larghezza
sono IO in particolare ogni membro di
il cluster potrebbe avere un file diverso
vista di sistema in modo da non poter leggere o scrivere
file in modo significativo lì così no
nuovi thread senza serrature non c’è
blocchi distribuiti qui nessun sistema di chiamata
esci non hai nessuna variabile globale
di per sé invece qualsiasi statica globale
variabile diventa nodo locale ora se tu
in realtà bisogno di uno stato globale, quindi se lo è
leggibile lo metti nel costruttore
e sarà clonato intorno come una lettura
unica cosa per ogni membro del
raggruppa ogni thread da usare e se lo è
cavalcabile dovrai usare a
chiamata riduzione per ottenere i risultati a
torna indietro e torna da te come a
risultato scritto veramente globale e per il
grande stato che hai appena letto e scritto
dritto nei grandi dati come
hai visto leggere puoi scriverci come
bene e il paradigma tipico qui è
andando a eseguire un passo MapReduce e
poi fai un pò di algebra e poi
eseguire un altro e un altro
dove la chiave qui è quella tipica
è il momento di fare il pastor dei dati dei pneumatici
il nel modesto numero di millisecondi
quindi è una storia diversa dalla tua
tipico che conosci il paradigma di MapReduce okay
i punti di forza qui sono i codici
in esecuzione sorta di distribuito in parallelo
senza ulteriori sforzi nel codice i
stava mostrando qui funziona davvero solo
come scritto tu dici solo che sai di nuovo
L’operazione MapReduce ha la precedenza su MapReduce bang
hai scritto in un singolo thread
stile di codifica quindi non devi
non c’è sincronizzazione e c’è
non si parla alla meccanica del cluster
in qualche modo per fare qualsiasi cosa impostata non c’è
problemi di concorrenza non ci sono risorse
Manopole di gestione devi girare una volta
il cluster è attivo e funzionante, lo sai
tutte le tue riduzioni di mappe fanno semplicemente il
cosa giusta
immediatamente non c’è bisogno di manopole
GC o CPU o di rete o di dati posizionamenti
sapere come blocchi o blocchi caldi sai
questo è tutto a posto sotto il cofano
e in effetti funziona davvero bene
okay, quindi era come il vortice
tour di quello che posso fare con esso qui lascia
mi fermo e vedo se qualcuno ne ha
domande su quello che ho appena detto sì
Dicono che posso inserire i dati nel feed
questo così adesso stiamo in esecuzione su
set di dati statici in cui uno dei primi
passi da fare è caricare i dati che dicevano il
le architetture core supportano totalmente
streaming e non ne avevamo abbastanza
utenti che chiedono di mettere lo streaming
giù così aggiungiamo algoritmi e funzionalità
in base a ciò per cui paghiamo i clienti
e non appena avrai ottenuto il quorum di
la gente ha detto che pagherò per lo streaming allora
lo mettiamo dentro ci sta arrivando
lo streaming sarà probabilmente qui prima
l’anno prima del prossimo anno conosci un
anno da ora avremo lo streaming
supporto lì okay quindi prendiamo un
guardare a ciò come funziona realmente questo
è un’istanza di fork join ma solo
forcella congiunta distribuita in modo che sia simile
alla forchetta di Doug Lee unisco il lavoro sono solo
In realtà sto usando il suo lavoro di fork touring
sorta direttamente all’interno di un nodo e ho
esteso per lavorare su cross node e in
il tuo aspetto qui è un otto nodo
cluster qualcuno sta guidando da qualche parte
questo e ha detto che sai fare un nuovo
MapReduce l’attività e fai tutto su alcuni dati
e poi faccio il tipo di registro ovvio
albero fan fuori dove tubo l’istanza
di questo oggetto dopo i costruttori
run è impostato su due come due
vicini e lo mandano ai loro due
vicini di casa e così via fino al tutto
il cluster ha un’istanza di questa attività
ora non appena l’operazione colpisce una nota
va anche sul lavoro di formazione della forcella
code e poi fanno quello che sai
i treni a forca hanno fatto tutto il che
iniziano a fare cloni di se stessi
fino a quando il set di dati si riferisce a
è troppo grande e lo fanno dividere e
conquistare e dividere fanno un altro compito
e così via fino alla quantità di lavoro
assegnato alla singola attività corrisponde
a voi conoscete una porzione di dati e poi
fanno tutte le chiamate della mappa parallela attraverso
i dati e Fortran sono davvero bravi
facendo bilanciamento del carico e sai ordinare
di sul
sul lavoro sui dati, così sarà
sbatti tutti i core sulla scatola che andrai
carico di CPU al cento per cento nonostante tutto
fai le loro cose e poi quando sono
fatto ognuno degli oggetti avrà il
piccoli poemi di dati lasciati nel compito
oggetti i cloni degli oggetti compito
che sono stati fatti tutto il tempo e poi
c’è una fase di riduzione inizia ad entrare
invertire siamo una coppia per coppia non appena
due ragazzi hanno completato la loro mappatura
passi per una riduzione immediata sul posto
e poi quei log per arrotolare make
un’altra riduzione fino a quando non si ottiene con a
singola istanza di primo livello per nodo e
quindi si esegue l’albero di registro a livello di cluster
e invertire andando indietro dove il
poverino a lungo nei registri sul
giusto riduce al suo unico amico e
gli altri due ragazzi ridotti al loro
amici hanno ottenuto i loro compiti da e
quindi nel passaggio successivo conosci il
le riduzioni continuano indietro attraverso il
cluster fino a quando non si arriva con la finale
riduzione all’istanza originale
ed è fatto così è il momento di eseguirlo
tipicamente registra il fan dell’albero per tutto il
cluster parallelo xq sui log di noi
fan dal cluster e questo si trasforma
in alcuni conosci il conto dei millisecondi
a seconda di quanto siano complicate le tue mappe
e le riduzioni vanno bene quindi è carina
semplice non forse va bene
quindi diamo un’occhiata al layout dei dati in questo modo
è un problema interessante perché le persone
Non so che sembrava che sudasse molto
sul layout dei dati di posizionamento dei dati e
stiamo facendo qualcosa che è molto
semplice e ha funzionato
abbastanza bene nella pratica quindi l’astratto
API è che ho una collezione di vettori
per i miei dati è bidimensionale
cosa da tavolo in cui un vettore è una colonna
e la colonna è trattata come una matrice
ma può essere più lungo di un int in
lunghezza mi darai miliardi di
elementi e lunghezze, sono così veloce
accesso casuale a qualsiasi dato elemento
anche se un nodo chiede tutto
elementi che verranno annegati nei dati
è troppo giusto ma può scegliere
elementi individuali gratis c’è a
nozione del valore mancante questo ed è
in un è molto importante per la macchina
imparare gli algoritmi matematici per avere a
nozione di perdere il tuo ovvio fallo
qualcosa di diverso su questo e tu puoi
scrivilo o uno spillo in modo che tu possa fustigare
la dimensione dei set di dati o modificarli
sul posto va tutto bene così ho detto che ho
un unico grande vettore è concetto
è pieno di tipicamente daba daba
primitivi comunque questo è il concettuale
guarda è in realtà è la compressione
qualunque cosa sarà ed è tutto
orientato per l’accesso lineare veloce a strisce
attraverso un cluster quindi qui ho un quattro
cluster di nodi sto mostrando blocchi di
i dati saranno su ogni membro del
cluster quindi non è a strisce con uno
vettore tenendo un vento un vm tenendo tutto
il vettore invece è distribuito attraverso
il vettore e non è completamente nel
java heap quindi i dati sono effettivamente nel
Heap Java e lavoriamo molto
GC per vedere le dimensioni del mucchio e noi
versato il disco su richiesta fare un sacco di
roba lì ma il risultato finale è se tu
prendi il raccoglitore predefinito e hai detto
è grande quanto vuoi non avrà un
Problema GC non vediamo come noi
di routine gira con 250 gcx mx2 e ggx
50 concerti su una macchina da 256 gig che max
GC fa una pausa da uno a due secondi ogni
ora e poi non si ottiene questi giganti
GC si ferma bene quindi ho detto di aggiungere un vettore
tipicamente effettivamente avere un gruppo di loro
e sono tutti allineati e sono
allineato in questo modo in modo che un nucleo su uno
JVM può accedere a tutti i membri di un insieme di
un’osservazione che ti attraversa
la memoria accelera così mentre puoi uscire
i dati con accesso casuale su qualsiasi riga
in JVM il tuo più veloce se lo fai
in una sorta di un 1 cor andando su una fila
e il motivo per cui è impostato in questo modo
Certo è che i tuoi set di dati rappresenta
alcune funzionalità del mondo reale ed eccomi qui
mostrandoti l’età di sesso codice di avviamento postale auto
qualunque cosa sarà e tu sai
concettualmente è una serie di strutture o
struct array model e kinda you flip
avanti e indietro nella tua testa in che direzione
vuoi vederlo e posso consegnare il
dati per te in modo simile a un
il nostro data frame in modo che possiamo aggiungere o sottrarre
le colonne sono gratis. È come a
il puntatore cambia per farlo in modo che sia comune
l’installazione è di raccogliere in molti
migliaia di comunicazioni hai e decidi cosa
tu verrai che andrai a lavorare
con e probabilmente ne lascerai un mucchio
colonne fuori e quindi probabilmente filtrare
e hackerare un mucchio di colonne da costruire
più funzioni e poi lo passi
per la matematica dei pesi massimi lo farò
lordo ma tutto l’aggiunta e l’eliminazione di
le colonne sono tutto gratis okay
con in una colonna c’è questa cosa
chiamato pezzo che avevo menzionato prima è
è solo l’unità di accesso parallelo a
chunk è
tipicamente da mille a un milione
gli elementi di dimensioni sono memorizzati in byte
matrici nel calore di Giava così vecchio
array di byte ed è dove facciamo
compressione e variando la compressione
strategia dal tipo di dati che siamo
osservando in quel pezzo ma il
garanzia è quella o ottieni o metti e poi
doni un elemento è solo un paio di clock
cicli compreso il passo di compressione in
questo caso la compressione è uno di
le cose divertenti chiave che facciamo per la velocità
perché stiamo spostando i dati compressi
attraverso la gerarchia della memoria e
decomprimerlo e registri macchina
al volo è una sorta di completamente gratuito
decomprimere perché non puoi tirare
dati e abbastanza veloce comunque siamo tutti
bloccato dietro il bus di memoria così di più
la compressione è effettivamente migliore e quindi
ovviamente ogni riga è una specie di
di proprietà di un singolo core in un determinato punto
nel tempo in modo che il nucleo possa accedere a tutti
membro della riga come un thread singolo
come se avesse un oggetto java, infatti, lo farò
costruisci solo un oggetto Java che vuoi
uno e poi sai che può solo
scarabocchiarlo a tutta velocità Java così così
è la sua struttura dati privata
che può solo maneggiare come lui una volta e
poi ho detto che l’unico thread su quello
serie di file c’è abbastanza lavoro chunk
lì per coprire il costo del lancio
abbastanza discussioni insieme
occupato ma è abbastanza piccolo da farmi capire
buon parallelismo dei dati a grana fine così
è questo genere di conoscete una buona miscela di
abbastanza grande da coprire il costo di
lancio o discussioni abbastanza piccoli
per ottenere un buon parallelismo e così ovviamente
quello che realmente accade sono tutte le luci principali
tutto in parallelo tutto in una volta, come
mi assicuro che i dati siano allineati I
caricalo così così quando inalare il
serie di dati inizierò a selezionare cosa
le file andranno su quale macchina
attraverso i dati in modo da conoscere un comune
la cosa da fare è leggere in un sai
terabyte CSV file in modo CSV significa è
lunghezza variabile su ogni fila è tutto
un po ‘in disaccordo ora analizza
e e costruisco il mio formato compresso
e poi prendere una decisione su cosa
le file andranno in quali luoghi e
Li raggrupperò insieme ma lo farò
sistemali con attenzione tutte le note per nota
sapendo che hai un set compatibile
di righe su un singolo nodo e poi
ci sarà un network shuffle così tu
carica un terabyte e viene dalla scrivania quindi
la rete come sai mille volte
veloce e disks la rete mescola
essenzialmente gratuito ora e tu sei limitato
per quanto riguarda la velocità in modo da ottenere i dati
così farò uno scaffale
uno dei cappa ottiene i dati dove io
lo voglio e poi non si muove di nuovo qui
okay, quindi c’è un rapido riassunto
un frame di dati è una raccolta di vettori
è davvero distribuito frame di dati è
sono tutti i dati nel complesso
cluster e quindi conosci il
i vettori sono essi stessi una raccolta di
questi pezzi che è la mia unità di
accesso parallelo a blocchi da mille a
un milione di elementi e tipo di varia
secondo tutti i tipi di fattori divertenti
e quindi elementi concettualmente Java
doppio anche se in realtà è come
rappresentato sotto il cappuccio varia da
strategia di compressione e come ho detto io
avere come una 15 diversa compressione
strategie che uso di tanto in tanto
una singola riga è un singolo tipo di
osservazione o istanza o concettualmente
una struttura Java di quelle colonne quelle sono
cose che manipoli direttamente
la tua mappa chiama ok così tanto più
domande su questo passo maledettamente bene così
lasciatemi fare una pausa per il secondo e fare un
demo e tornerò intorno ad alcuni
altre cianfrusaglie e questo è in realtà
la maggior parte del discorso vediamo se riesco a ottenere
una demo in corso qui così alcuni nel mondo
Ho intenzione di lanciare Javed s barattolo Xmax
okay il mio cluster si avvicinò ma è a
cluster di uno dei miei laptop qui um let
Prendo questa moneta così non ho parlato
qualsiasi cosa sull’implementazione ma è a
file jar standard singolo, quindi funziona correttamente
il mio portatile posso raggrupparlo sul mio portatile
dicendo barattolo di javed si conosce la e commerciale
lo sfondo lo esegue due o tre volte
un cluster di mediaone però il mio portatile
Ho intenzione di correre nel cloud in esecuzione
ec2 funzionerà da solo
Raggruppa una corsa su Hadoop ma non su
Hadoop leggerà da HDFS o s3 o
ovunque perché è un semplice barattolo
file puoi semplicemente andare più o meno
da nessuna parte, quindi inizierò
il caricamento di un insieme di dati qui ho intenzione di
scegli ma ho i tuoi set di dati, scegliamo
la bella UCI, quindi sceglieremo una cosa
chiamato tipo di copertura che è una foresta
tipo di copertina è un insieme di dati piuttosto vecchio che
le persone che usano molto l’apprendimento automatico
come set di dati di dimostrazione sto analizzando
un file CSV vedrò la pausa
fuori dalle righe iniziali quindi i dati
set è di circa settantacinque megabyte
disco come puoi vedere se leggi lì
è circa mezzo milione di file 55
colonne circa 10 megabyte e RAM
questo è il rapporto di compressione tra
disco e RAM in corso lì e poi
Ho solo una panoramica rapida di vista
il set di dati e se ne esce sai 55
colonne larghe e qualunque cosa per questo
dati particolari impostano la colonna uno
metri di elevazione dove hanno preso il
il campione e la colonna due sono come i metri
distanza dalla più vicina fonte d’acqua e il
la colonna di estrema destra è la foresta
tipo di copertina è un numero da uno a sette
quelle sono le cifre sulla destra lì
che dici di conoscere 55 225 o qualsiasi altra cosa
sarà come un alpino
foresta o pineta o prato o voi
conosci la palude o qualunque altra cosa sarà
e poi ci sono altre 50 funzionalità
fluttuare intorno è una grande pila di dati
um ho intenzione di correre perché sei tu
so che è una copertura forestale che digita a caso
la foresta è una buona cosa qui quindi questo è un
questo è l’algoritmo di apprendimento automatico
chiamato foresta casuale non ho intenzione di andare
in molti dettagli, ma ho intenzione di farlo
costruire alberi decisionali alberi con casuale
punti deboli quindi ho una raccolta di 50
strano qui premo semplicemente il pulsante Vai
qui prendi tutti i default 50 tipi dispari
di studenti deboli in cui ogni studente è un
albero decisionale un albero del carrello e poi il
la somma di loro vota insieme fa
davvero un buon lavoro nel trovare e
essere in grado di eseguire previsioni sulla
set di dati quindi se corro qui nessuno
non faremo questo bello noi
devo aspettare tutto questo ragazzo corre al
fine quindi prendi come altri 30 secondi
qui e avrò fatto qualcosa
quindi mentre stiamo aspettando qui c’è una specie di
rispondere a qualsiasi domanda su ciò che questo
significa o perché ti piacerebbe quale macchina
l’apprendimento sta facendo qui vedi ok così tu
sappi che la nozione generale è questa
modellazione predittiva che ho intenzione di costruire a
modello del mondo reale basato sul mio
inserire i dati impostati con le speranze che il
modello permettimi di prevedere nuove cose con
sorta di alto grado di precisione così
Ho questo tizio un po ‘più a lungo
qui e poi ci fermeremo e prenderemo
uno sguardo a loro così questi predittivi
i modelli sono usati da molte persone per
cose diverse ma per esempio può
prevedere se questa carta di credito o meno
frode delle transazioni o meno o meno
Sto guardando una sorta di attacco DDoS
anche se non sto guardando un blob di
cancro su una radiografia o non sai cosa
è il mio sapere costi stimati per garantire
la città di Chicago da voi conosce il
la tempesta di grandine successiva che attraversa è
andando a distruggere una certa percentuale di tetti
in un quartiere sai qual è il
costi assicurativi a vita di un particolare
popolazione di persone ce n’è di tutti i tipi
di cose che fai con l’apprendimento automatico
algoritmi e possono essere molto elevati
predittivo quindi lasciatemi spiegare questo grafico
qui la vera discesa veloce è la realtà
tipo di sai l’osservazione
fatto sul set di dati di ciò che la persona
trovato quando hanno fatto la loro verità di base
attraversare è ciò che predice il modello
quindi la diagonale è dove la previsione
era corretto e fuori dalle diagonali dove il
la previsione non è corretta quindi circa a
minuto qui o meno ho qualcosa a
modello che è circa il novanta per cento
precisione puoi vedere circa il dieci percento
non riescono a valutare la velocità laggiù a destra
fatto su di te sai mezzo milione
osservazioni in pochi secondi sul mio
portatile e questo è un sai che è un
risultato ragionevole per non molto lavoro
in realtà se dovessi averlo sai
le macchine cluster potrei andare molto più veloce
o molto più grande o entrambi e ho un
modello che fa qualcosa di interessante se
Dovevo correre un po ‘ a caso nella foresta
più a lungo mi piacerebbe farti sapere di più
modello altamente predittivo e utilizzare il
commercio generale come alcuni dei modelli
costruire sarà molto veloce da costruire con
meno precisione predittiva e alcuni lo sono
più lento da costruire con più
la precisione della forza casuale è una specie di
in mezzo l’altra cosa sta succedendo qui
che alcuni dei modelli sono di più
interpretabile quindi sì, ecco la mia cattiveria
errore quadratico da alberi che probabilmente
non c’erano altri numeri lì dentro
costruito troppo velocemente va bene così è
questa è un’unità usata per decidere quando
interrompere l’aggiunta alberi che non sei
ottenere una foresta casuale migliore è una specie
nel mezzo di essere interpretato
ciò che è nei guai significa significa che io
può guardare il modello capire perché
sta predicendo ciò che prevede
la regressione logistica è molto interpretativa
bilawal ma puoi leggere il
coefficienti diversi su un generale
regressione logistica modello lineare di tipo
capisci direttamente perché sta facendo
previsioni e che in realtà si trasforma in
come i regolamenti governativi, le persone lo fanno
Dì i modelli di tessere con punteggio FICO se lo sei
ottenere credito consentito o negato in
tu hai detto perché eri
negato il credito e quindi il governo
fondamentalmente ti sei obbligato a fare la logistica
regressione o variante di ciò perché
puoi spiegarne i risultati al
nel consumatore che hanno negato il credito
a causa di qualcosa si va al profondo
modello di apprendimento ed è altamente opaco
non sai perché prevede che sia così
anche di gran lunga il miglior dettaglio particolare
i modelli di apprendimento erano come se fossero magici
Oracle che lo farà con un livello estremamente alto
core ha fatto tutti i tipi di divertimento
previsioni quindi questo è il modello giusto
costruito proprio ora è seduto nel
memoria nella mia JVM se voglio estrarli
tutto fuori e fare qualcosa con esso sono io
andando a fare qualcosa di male tu stai andando
per prendere un secondo o alcuni ne ho intenzione
torturo il mio browser che ho intenzione di tirare
tutti fuori come un pezzo di codice java così
come un normale vecchio POJO, ma è così
abbastanza grande da essere visualizzato in
il browser è un codice gigante per un codice pissa
testo il browser sta per barf qui
per un secondo va bene così ecco
boilerplate abbiamo automaticamente tutti voi
sapere generato comprese le istruzioni su
come compilarlo e come usare il
modello ma l’obiettivo qui è quello di lasciarti
prendere questo modello e andare in produzione
impostando così alcuni sono in fondo qui dopo
tutto il boilerplate qui è un regalo così io
ha detto che era un albero decisionale ecco a
la predizione del galleggiante dell’albero decisionale è uguale
per bene se ti manca è il nan
controllare se la colonna 13 è o la colonna 14
è qualunque cosa meno di
questo indice e duh-duh-duh-duh-duh
da qualche parte qui in fondo
c’è una risposta che esce ok, deve
sei stato sai che ne prenderò due
o uno o qualunque cosa sarà questo
è di classe due delle mie sette classi
giusto quindi è un albero decisionale qui rotola
su rotoli su rotoli va bene così
gli alberi decisionali diventano grandi e da qualche parte
c’è un secondo e un terzo e un
quarto e un quinto e c’è 50
palla di alberi decisionali seppellita qui e
e quello che equivale a è se corri
questo codice con una precisione del novanta per cento
prevarrà la copertura della forza corretta
digita e se faccio la stessa cosa per mi piace
dati della carta di credito Farò un modello
che se corro con un certo livello di
la precisione mi dirà che ho ricevuto una frode o
non una frode questo particolare tutti questi
i modelli non assegnano e il loro
cicli di coroner corrono in modo limitato
quantità fissa di codici è possibile il tempo li
e sapere esattamente quanto ci vuole se
hai un problema di punteggio in base al tempo
come una carta di credito, fai scorrere i ragazzi
aspettando Starbucks per la sua risposta
giusto hai un numero di
millisecondi che dovresti segnalare
conosci i pollici in su che tu
può contare il numero di millisecondi
questo ragazzo corre a questo è quello che finisce
ed è appena pronto per entrare
produzione giusta così sì
il modello funziona all’infinito ma è tutto
una sorta di semplice le cose che faccio a
regressione logistica i modelli molto piccoli
molto semplice e puoi vedere che possiamo correre
la regressione logistica qui lo facciamo
andiamo in un nuovo server di navigazione delle schede, quindi sono
facendo questo dal browser um c’è un
numero di API supportiamo il riposo e JSON
è ovvio e il browser era
costruito sopra il resto e JSON facciamolo
che va bene, okay, dai
fatto in modo che era molto più piccoli set di dati
solo tu sai di megs e RAM 50.000
Strada 40.000 rosa uh generalizzabile
rimodellamento farà generale e
rimodellamento ok ecco quindi una compagnia aerea
data set una sua frazione e il
la domanda è che posso prevedere il tempo sul mio
il volo aereo sarà ritardato o no
particolare set di dati ha molto di quello che noi
chiama la risposta
una colonna di risposta è qualcosa che tu
ottenuto dopo il fatto in genere aggiunto a
set di dati che non sono disponibili prima
per esempio, salite sull’aereo
anche se non sei stato cancellato nel
il mezzo qui è disponibile solo fino a dopo
sei arrivato all’aeroporto e hai scoperto
il volo è stato cancellato proprio così se tu
prevedere con che il modello lo farà
scoprire immediatamente che ogni volta il
il volo è stato cancellato, si è ritardato così
è un po ‘inutile, quindi ho intenzione di farlo
escludo che, tranne io, ho sbagliato
cosa qui liberiamoci di tutto questo
eccoci finalmente ok, lasciami provare
di nuovo qui sono più facile farlo in questo modo
quindi faccio il mio turno cliccando sul modo corretto
qui sto cercando il controllo
fare clic su sto cercando non ci va
quando deviato o annullato voglio
distanza e origine e morte
ha senso chiaramente non voglio l’arrivo
ritardi CRS è il piano l’ultima volta
che voglio mantenere l’intervallo di tempo reale I
bisogno di prendere perché se il reale
il lasso di tempo è molto lungo allora da qualche parte
Mi sono fatto ritardare quando arriverò alla coda
nom e numero del volo perché coda num
è un identificatore univoco sulla maggior parte dei
voli per questo piccolo set di dati e
si limiterà a prevedere se si è arrivati a
aereo con questo numero di coda successivo
il tuo volo è stato ritardato o meno perché
non ci sono abbastanza voli per quello
giocare per averlo non essere in grado di
dire diversamente e sbarazzarsi di
attuali e mantenere i tempi del piano e lo farò
basta andare per il momento in cui i dati si presentano
vettore a che ora impiegherà il tuo volo
dalla tua fonte, dalla polvere e così via
avanti vieni qui è questo generalizzato
la modellazione lineare copre un sacco di
casi interessanti ma turni binomiali
nella regressione logistica che è un modo
per te sai fare vero o falso sto andando
per prendere solo le impostazioni predefinite lì così
regressione logistica Non conosco le persone
voglio andare in quanta matematica va bene
fatto così regressioni logistiche una volta è
in realtà piuttosto veloce e molto scalabile
fortemente in modo da poter ottenere una logistica
regressione fatta su un terabyte dentro e te
so che tra un minuto è davvero
modello di costruzione veloce ha un
modello facile da capire ma è meno
predittivo quindi qui invece di novanta
previsione percentuale sto andando in giro
sai il settanta percento e puoi vedere
sorta di
la linea rossa rappresenta un tiro di dado 50-50
e sto meglio del 5050 quindi sto ricevendo
una qualità predittiva, ma non a
enorme quantità ma l’altra parte posso andare
quassù e guarda e guarda cosa sono questi
i numeri significano e e cosa succede qui
è che i coefficienti che sono
guida positiva l’equazione sopra la y
uguale a 1 oltre 1 mappa più blah blah
verso il 1 e coefficienti negativi
guidarlo verso zero e quindi è in ritardo
essendo uno dice più probabile è quello
devi essere, sai più alto è il
coefficiente più probabile che sia
ritardato così decollando o arrivando a
questo particolare aeroporto so cosa
è o decollando da ragazzo del sud sono
entrambi altamente indicativi del fatto che tu sia
in ritardo o meno e se passo qui
c’è una nuova Chicago tipo di Chicago
Midway è proprio qui ce n’è un altro
quelli che arrivano abbastanza veloci che sono
tipo di destinazione interessante Austin
e questo è interessante, okay, lo farò
smetti di guardarlo ma puoi ordinare
attraverso di me iniziamo a scegliere te
sapere sul set di dati a dimensione intera
L’SFO si presenta subito come un male
l’aeroporto per decollare o atterrare così fa
Atlanta e poi certe compagnie aeree come
succhiare che non vuoi mai essere su questo
compagnia aerea e altre compagnie aeree sono perfettamente
bene così puoi ottenere qualcosa
dai più grandi dati impostati qui
un piccolo set di dati non ha dati sufficienti
per raccogliere tutte quelle caratteristiche ma il
equazione è questa è questa che
è il modello giusto così è quello
la linea di Dalek ti ha aggiunto di lasciar perdere
dentro e nel tuo predittivo o sul tuo cellulare
app per telefono e subito puoi rispondere
va bene così è una specie di veloce
passare attraverso la demo forse dovrei
fermarsi e prendere domande su questo i fri
torna alle diapositive okay , ok
andando a faremo, andremo
vai qui ok, quindi siamo stati molto bene
occupato qui e l’ultima cosa che siamo
pasticciare qui è l’integrazione scintilla così
stiamo facendo cose di grandi quantità di dati e quindi scintilla
anche se abbiamo molto diverso tipo di
modelli di dati ed esecuzione è chiaro
quello che sai che c’è un
interessante integrazione continua qui così
ora siamo in grado di spostare indietro i dati e
avanti tra i dati di spark e h2 o
fotogrammi ed è in corso in memoria così
in realtà è abbastanza veloce per tornare indietro
e avanti e poi puoi prendere un h2o
data frame e trasformarlo in un grady spa
ed eseguire lavori scintillanti su di esso
direttamente come ha ottenuto una riga di codice
lì e in aggiunta i dati heo
i frame ora supportano una collezione scala
notazione in modo da poter dire solo per ciascuno
e ti metto a conoscenza di qualche tipo di mappa
di codice proprio lì e i codici su
github hai bisogno della versione dev di
h2o e poi parare l’aria è frizzante
acqua è la nostra combo questo probabilmente
andare via in un altro mese o due tutti noi
bisogno di una scintilla era un gancio da chiamare
h2o all’avvio nel posto giusto
e che poniamo una richiesta di giurato e
accendi le persone e ne hanno prese un po ‘
versione di esso e quindi non sarà troppo
tanto che non abbiamo davvero bisogno di una scintilla
costruire okay in modo che possiamo andare avanti e indietro
tra i due è tutto in memoria
è tutto in corso, non c’è esterno
strumenti necessari per lo più i dati non si muovono
è la stessa forma perché sta andando
essere in formato sparks nei formati h2o
e poi c’è una differenza tra
desideroso e pigro coprirò in un secondo noi
fare una copia di dati ma l’hto data è
tipicamente molto compressi
i dati di scintilla in modo che se stai correndo
un cluster di scintilla di successo in questo momento e
fai una copia dei dati l’extra
il membro di cui hai bisogno non è molto completo
che stanno già consumando per la scintilla
lo sai questo è un po ‘di
la scintilla di layout si accumula da blocchi che
chiamate partizioni queste sono strutture
che sono limitati come JVM singoli
non attraversare il confine della macchina e hto
usa questi pezzi e collezioni per
in ogni colonna puoi avere molti di questi
in un determinato heap java limitato solo da
memoria e quindi si sa guardarla
in questo modo un RDD è tutto di memoria tutto il
i dati in hto data frame sono tutti ma
siamo separati da colonne nel rosa
per i vettori e r dds sono suddivisi
a pezzi ci saranno un paio di pezzi
per ogni JVM è un po ‘diverso
formato ma andremo avanti e indietro
tra i due diversi layout con
solo una chiamata java per tornare alla data
in giro quando convertiamo i dati h2o
montatura
la versione avviene immediatamente è
essenzialmente uguale a una scintilla
punto di controllo hai intenzione di eseguire la discussione
o in genere pigro fino a quando non richiedi
un output h2o richiederà un’uscita get
i suoi dati in formato h 12 allora puoi fare
qualcosa con un h2o tutte quelle cose
fai un h2 sono tutti fatti avidamente sul
punto quando hai finito tornerai indietro
per accendere Idd tu dici dammi un 2 tu
ottieni un oggetto rapper così è
pigro a quel punto ma hai il checkpoint
in h2o e poi puoi aggiungere il nostro DS
fin dall’inizio costruirai la tua pipeline
del calcolo e quando chiedi il
scintilla risultato tirerà fuori i dati
h2o convertendo un formato spark e poi
portare attraverso la pipeline di scintilla sorta di
il modo in cui la scintilla normalmente fa le cose bene così
questo è tutto ciò che sto per concludere
qui abbiamo un paio di usi diversi
i casi le persone usano il sistema per così no
la codifica della distribuzione è fondamentalmente intera
algoritmi o tutto il tipo di matematica vettoriale
le cose spesso questo è il resto e JSON
interfaccia di stile e stai facendo
qualcosa come set di dati caricati eseguiamo a
la regressione logistica ottiene risultati solo
cosa demo in un minuto fa e tu puoi
guidare questo dalla nostra base web Python che
era il browser che hai visto il loro accartocciarsi
scripting comunque tu vuoi eseguirlo noi
avere una comunità attiva che usa
hto come un modo per ottenere grandi dati sul nostro e
possono digitare ci sono espressioni come
hanno sempre fatto una R e il
funziona tutto fatto sul cluster sul
cloud e le dimensioni del set di dati sei tu
sapere mille volte più grande di quello che loro
puoi fare un R um puoi tuffarti nel
cappuccio e scrivere codice in te lo sai
Lo stile MapReduce è abbastanza buono
per qualsiasi tipo di algebra lineare densa qualsiasi
tempo ho intenzione di passare tutti i dati
e fare qualcosa e passare tutto
i dati e fare qualcosa sono spesso attivi
l’ordine di voi conosce modesto millisecondo
conta quindi è abbastanza veloce che puoi fare
cose interessanti con un sacco di
passa non è lo standard che conosci
Hadoop MapReduce per la velocità è molto
molto più veloce e quindi sosteniamo un sacco
cose più complicate che non ho intenzione di
parliamo di oggi ma c’è un
deposito di valori chiave a tutti gli effetti nel
cappuccio e puoi fare qualcosa di interessante
algoritmi grafici e cose così
in sintesi la maggior parte dei semplici java funziona solo io
abbiamo le funzioni della mappa a cui andare
le migliaia e migliaia di righe di
codice java e tutti funzionano e io
sembra che il codice Java funzioni come il codice Java
e tutto sembra giusto tu sai che è
veloce
e nelle persone tutti dicono veloce ma
stiamo correndo alla stessa velocità di Java
il codice sarebbe eseguito su un aumento di array java così
è veloce come si potrebbe uscire
Java che è praticamente collegato alla CPU o
la larghezza di banda di memoria limitata nella maggior parte dei casi lo è
veloce come l’hardware sta per andare
puoi anche scrivere grandi dati ed è così
un po ‘più lento ma non molto perché
stiamo facendo compressione come fai tu
Voglio dire, come ho detto che siamo in genere
la larghezza di banda della memoria sarebbe supportata
il modello di memoria java completo nel
cluster distribuito non è pigro
la consistenza ha visto esattamente che è effettivamente spenta
abbastanza veloce esatto, anche se se lo fai
diritti in conflitto che stai per
seguire il modello di memoria Java che
non ti darà necessariamente la risposta
lo vuoi perché è carino
loosey-goosey su come ordinare
aggiornamenti transazionali che facciamo
internamente molto per il comando e il controllo
tipi di cose e poi stiamo scrivendo
conosci i dati analitici distribuiti su big data
un sacco di algoritmi che abbiamo
scritto stiamo lavorando su più siamo
lavorando solidamente su set di dati da 100 gig
quello è il nostro spettacolo, il jenkins notturno
test in realtà ogni push test post è
ora facendo qualcosa sull’ordine di
grandezza che stiamo facendo a scala di terabyte
roba ora abbiamo sicuramente clienti
utilizzando i dati di scala di terabyte in questo momento e
abbiamo pagato i clienti in produzione
ed è tutto open source e gratuito, quindi vai
scarica e gioca per i big data sì
domande sì, quindi stai lavorando su questo
e anche la SE modella una foresta lineare
e vestiti giusti ecc. e disfarli
via quei sì così la corrente lo sai
interessante nuovo modello che sta venendo fuori
come cox rischi proporzionali che è
usato tipicamente per analisi di sopravvivenza o
analisi della durata di una raccolta di
un milione di persone nel tuo pool di assicurazioni
alcune persone muoiono ad un ritmo costante
dopo che sono invecchiati abbastanza e mentre
può essere duro pensare alle persone
morire è quello che sta arrivando l’assicurazione
per vivere negli ultimi cento anni
e così guardano la grande piscina di
le persone e dicono quante persone sono
vecchia dieta più vecchia e morta e poi tu
sappiamo che abbiamo pagamenti assicurativi e
qual è il set di soldi e quanto costa
abbiamo bisogno di un trak basato sull’età del nostro
pool e questa è l’analisi di sopravvivenza caca
la stessa cosa funziona davvero per tutta la vita
analisi di tutto ciò che hai e
poi ti rompi e non lo fai
quindi telefono quello che è l’assicurazione
costi di copertura per la raccolta di
le persone senza di te sanno che io telefono
pianeta quando muoiono e lo fai cadere
lo schermo si è rotto più a lungo lo hai
più è probabile che tu cali nel
lo schermo si rompe e tu entri e ottieni il tuo
pagamento assicurativo quindi il ragazzo che sta facendo
quelle assicurazioni funzionano così
analisi su questo sulla tua auto, lo sai
Non so che ci sia in realtà un
molti usi per quella particolare sì
un’altra domanda fa cosa succede se Cano
va giù quindi non siamo una soluzione H
così ci siamo guardati bene e abbiamo pensato
su di esso per un lungo periodo e sappiamo come
farlo ma non ne vale la pena
in questo momento così invece siamo andati per una sorta di
la velocità grezza e la maggior parte delle operazioni sono tutte
fatto in pochi secondi a minuti e così se
un nodo va giù riavvia il cluster in modo che il
il cluster verrà caricato in secondi
i dati richiederanno più tempo è qualsiasi cosa
conosci il conteggio dei dischi / disco mastmax
larghezza di banda che possiamo colpire maggiormente
l’ottanta percento dei loro ha votato
throughput e un carico di dati parallelo così
senza problemi e poi e tu sei
di nuovo così se un nodo scende è
come una grande calcolatrice e non serve
giù ti chiudi la calcolatrice
riaccenderlo e vai di nuovo
quindi è in questo senso che il
il modello di implementazione è molto semplice e
semplice se arriviamo a indicare dove
le persone stanno svolgendo lavori che richiedono settimane
o una settimana due settimane su cluster di a
cento o più di dimensioni probabilmente lo faremo
Ho bisogno di una soluzione e, come ho detto, so
come farlo da una tecnologia
punto di vista non è valsa la pena farlo
giusto ancora q c’è qualche idea su
in esecuzione h2o e bare metal contro il
tramite un collegamento pensato dolorosamente nudo
metal versus vm yeah quindi questo è un po ‘
la storia ovvia di VMS contro h2o
ci stiamo guardando in realtà
in questo momento un sacco di gente di solito VM
aggiungere una certa quantità di spese generali
brucia tutti i tuoi core e tutto il tuo
i ricordi sono facili e quindi se tu
aggiungi un overhead e ti limiti a rallentare
non è che abbia senso averlo
condividere piacevolmente con qualcun altro su a
vicino perché hto non è in realtà a
bel vicino di casa dici che vai sta andando
prendi tutto e vai e così non è
funziona bene non è così
lavorare a tutti si può lavorare bene solo
non è un buon vicino per averti
sappiamo di essere sullo stesso hardware che facciamo
test e corriamo in quel modo tutto il tempo
è perché succede che conosci le persone
fai così ma è forse no
il modo migliore per impostare un cluster per
eseguendo h2o ma detto che eseguiamo un ec2
tutto il tempo è molto standard
setup per noi e quelli sono tutti ovviamente
missione virtualizzata che è tutto il modo
si ok quindi è complicato che ci sia
essenzialmente nessuna connessione ma sembra
come se ci fosse una connessione davvero grande quindi
la connessione è la maggior parte delle persone
i dati sono in Hadoop HDFS, quindi leggerà da
HDFS come sorgente di file parallela va bene
ben letto da s3 leggerà da locale
guidare o leggere da tutte queste fonti
incluso HDFS ma non è necessario
su un cluster Hadoop ma possiamo farlo
gioca bene nell’ecosistema Hadoop come a
un tipo divertente di un lavoro di mapper, se vuoi
per dirigerci su Hadoop dove la mappa si attacca
in giro per sempre non se ne va mai e
allora sai brucia tutti i core quando questo
va nel suo idolo quando non stai correndo
quindi è una specie di strano lavoro di mapper um
non è molto efficiente in questo senso
ma non è poi così male in quello che realmente
succede è che entriamo in qualcuno che è
interessato a sapere come inserire h2o in
produzione e hanno già un grande
Cluster Hadoop in giro ma loro
non avere un cluster di metallo nudo di ricambio
stendendoci intorno correremo sull’Hadoop
cluster perché è il modo più rapido
per ottenere un’operazione di cluster ora
quello che ha detto la maggior parte dei cluster Hadoop
macchine che sono pesanti e CPU
e la luce della memoria e noi vogliamo esattamente il
CPU e memoria e quindi è a
ottieni una gigantesca collezione di minuscoli
macchine e questo è un po ‘ di no
necessariamente il modo ottimale per eseguire h2o
quindi spesso stai meglio con meno
nodi più grassi
tornerà ma non quello
dice qualcosa così sai lungo la linea
di meno nodi grassi il che cosa è a
la configurazione per la macchina è simile
è una specie di interessante o funziona
bene non varia da quello che vuoi
a che fare con esso la regressione logistica è
fortemente ridimensionamento e quindi davvero non puoi
farla franca con un grande mare di minori dimensioni
macchine e andrà benissimo a caso
la foresta ha in genere più rete
larghezza di banda e come gli alberi diventano più profondi
devi costruire questi istogrammi
diventa esponenzialmente più grande dell’albero
diventa più profondo e improvvisamente è molto grande
i set di dati vengono schiaffeggiati
tra i nodi e così la tua rete
il throughput diventa interessante
collo di bottiglia e stai meglio con
meno nodi semplicemente perché c’è meno
traffico di rete si va troppo in profondità di apprendimento
l’apprendimento profondo corre o reti neurali
gestisce questi algoritmi di rete neurale
all’interno di una nota sono estremamente efficienti
usando questo algoritmo selvatico di maiale il loro audace
e e come tipo di pazzo veloce ma
i modelli si allontanano l’uno dall’altro
indipendentemente dal fatto che non ci sia x86
coerenza hardware su un nodo e così via
che deve essere curato con la spedizione
i modelli attraverso il filo per risincronizzare
di nuovo verso l’alto o vanno alla deriva troppo lontano da
l’un l’altro quando li sincronizzi
sorta di cancellarsi a vicenda così da te
voglio continuare a risincronizzarli e quello
si trasforma in una latenza di rete al contrario
al problema della larghezza di banda quindi alcuni dei
gli algoritmi sono tolleranti alla rete
e alcuni sono meno tolleranti alla rete e
quindi il tuo tipo varia a seconda dell’algoritmo
se vuoi farti sapere
se riesci a farla franca
nodi o nodi skinny e più di essi
o grasso o nodi e meno di tutti
bene, in realtà lo sai
circa il tempo e e ho finito con le diapositive
ho un sacco di extra divertente in più
diapositive che possono passare attraverso le persone vogliono
ma quando chiamiamo questo la fine ufficiale
e sarò in giro per un po ‘
per Q & A qui
Please follow and like us: