Sono nuovo di hadoop. Mi piacerebbe avere qualche approccio con te che mi è venuto in mente.Similarity join using Hadoop
Problema:
2 set di dati: A e B.
Entrambi i set di dati rappresentano canzoni: attribuisce un certo livello superiore, i titoli (1 .. ), interpreti (1 ..).
Ho bisogno di abbinare questi set di dati usando gli algoritmi di uguaglianza o fuzzy (come levenshtein, jaccard, jaro-winkler, ecc.) Basati su titoli ed esecutori.
Le dimensioni del set di dati sono: A = 20-30M, B ~ = 1-6M.
Così qui ci sono approcci che mi si avvicinò con:
carico dataset B (il più piccolo) in HDFS. Utilizzare mapreduce rispetto al set di dati A (il più grande), dove:
fase mappa: per ogni record in A accesso HDFS e tirare i record B per la corrispondenza;
ridurre fase: scrive coppie idcarico di dati A nella cache distirubted (cioè jboss cache) in forma ottimizzata per velocizzare la ricerca. Utilizzare MapReduce contro dataset B, dove:
mappa fase: per ogni record nella query B cache distribuita per la corrispondenza
ridurre: scrive coppie iduso MapReduce di unire entrambe le serie di dati, in cui
fase mappa: ottiene un registra dal set A e set B, fa corrispondere
riduci fase: lo stesso
(Sono confuso su quello 1. Primo: join sarà il prodotto cartesiano con trilioni di record, 2 °: non è sicuro di come hadoop può farlo in parallelo cluster)utilizzare alveare (sto guardando proprio ora cercando di capire come plug-in funzioni personalizzate che faranno string matching)
sto loooking per un puntatori, quale approccio sarebbe il miglior candidato o forse ci sono alcuni altri approcci che non vedo.
Grazie per la risposta. Il collegamento è abbastanza utile. – mtim