Mi dispiace se questa è una domanda sciocca, ma non sono riuscito a trovare una risposta con una ricerca su Google. Come posso capire il tipo LongWritable
? Che cos'è? Qualcuno può collegarsi a uno schema o altra pagina utile.Understanding LongWritable
risposta
Hadoop deve essere in grado di serializzare i dati dentro e fuori i tipi Java tramite gli oggetti DataInput
e DataOutput
(I flussi di IO in genere). Le classi scrivibili lo fanno implementando due metodi `write (DataOut) e readField (DataInput).
In particolare LongWritable
è una classe Writable
che avvolge un java lungo.
La maggior parte delle volte (in particolare solo all'inizio) è possibile sostituire mentalmente LongWritable
->Long
, ovvero è solo un numero. Se si arriva a definire i propri tipi di dati si inizierà a diventare ogni familiarità con l'implementazione dell'interfaccia scrivibile:
che sembra qualche cosa come:
public interface Writable {
public void write(DataOutput out) throws IOException;
public void readFields(DataInput in) throws IOException;
}
La classe Mapper è un tipo generico, con quattro di tipo formale parametri che specificano la chiave di input, il valore di input, la chiave di output e i tipi di valore di output della funzione mappa.
public class MaxTemperatureMapper
extends Mapper<LongWritable, Text, Text, IntWritable> {
@Override
public void map(LongWritable key, Text value, Context context)
throws IOException, InterruptedException {
}
@Override
public void reduce(Text key, Iterable<IntWritable> values, Context context)
throws IOException, InterruptedException
{
}
}
Per l'esempio di codice, la chiave di ingresso è un offset intero lungo, il valore di ingresso è una riga di testo. la chiave di uscita è intera e il valore di uscita è un numero intero. Anziché utilizzare i tipi Java predefiniti, Hadoop fornisce il proprio set di tipi di base ottimizzati per la serializzazione di rete. Questi si trovano nel pacchetto org.apache.hadoop.io.
Qui viene utilizzato LongWritable, che corrisponde a Java Long, Text (come Java String) e IntWritable (come Java Integer).
Da Apache documentazione page,
Writable
è descritto come:
oggetto serializzabile che implementa una semplice, efficiente, protocollo serializzazione, basato su DataInput e DataOutput.
LongWritable
è A WritableComparable per i lunghi.
Need for Writables:
In Hadoop, comunicazione tra processi è stato costruito con le chiamate di procedura remota (RPC). Il protocollo RPC usa la serializzazione per rendere il messaggio in un flusso binario al mittente e verrà deserializzato nel messaggio originale dal flusso binario al ricevitore.
La serializzazione Java presenta molti svantaggi in termini di prestazioni ed efficienza. La serializzazione Java è molto più lenta dell'utilizzo negli archivi di memoria e tende ad espandere significativamente le dimensioni dell'oggetto. Anche la serializzazione Java crea molta spazzatura.
riferiscono a queste due post:
dzone articolo
Per efficacia Hadoop, il processo di serializzazione/de-serializzazione Occorre ottimizzare perché enorme numero di chiamate remote accadere tra i nodi nel cluster. So the serialization format should be fast, compact, extensible and interoperable
. Per questo motivo, il framework Hadoop ha creato proprie classi IO per sostituire i tipi di dati primitivi java. per esempio. IntWritbale
per int
, LongWritable
per long
, Text
per String
ecc
È possibile ottenere ulteriori informazioni se si fa riferimento a "Hadoop la guida definitiva" quarta edizione.
- 1. Understanding Bloodhound.tokenizers.obj.whitespace
- 2. Understanding "bfprt" algoritmo
- 3. Tkinter understanding mainloop
- 4. C++ regex not understanding
- 5. Understanding Chef only_if not_if
- 6. Android - Understanding View.getLocalVisibleRect (Rect)
- 7. QuickSelect Algorithm Understanding
- 8. Swift: Understanding // MARK
- 9. Understanding * nix icone percorsi
- 10. Understanding treeReduce() in Spark
- 11. Understanding "questa" parola chiave
- 12. segmenti Lucene Understanding
- 13. Simple SQL Join Understanding?
- 14. Ackermann Function Understanding
- 15. Rami Git Understanding Vista grafico
- 16. asincrona Understanding/attendono senza fili
- 17. Understanding Collections.reverseOrder() metodo in Java
- 18. Comportamento Understanding Driven Development (BDD)
- 19. Qual è l'input chiave LongWritable per la mappa()?
- 20. Understanding .AsEnumerable() in LINQ to SQL
- 21. Understanding Linux superiore CPU uscita utilizzo
- 22. Understanding I/O remoto AudioStreamBasicDescription (ASBD)
- 23. java: Arrays.asList Understanding (T ... array) Metodo per i tipi primitivi
- 24. Depth Prima ricerca e ampiezza Prima ricerca Understanding
- 25. No Understanding Nozioni di base su Dynamic DataBinding (bindPropety) in Flex
- 26. Utilizzo degli argomenti della riga di comando in Python: Understanding sys.argv
- 27. Ignora RecordReader per leggere il paragrafo in una sola volta anziché la riga
- 28. come accedere al valore del contatore del mapper in un riduttore?
- 29. Scala/Hadoop: specificare il contesto per il riduttore
- 30. MapReduceBase e Mapper deprecati
[Questo] (http://hadoop.apache.org/common/docs/current/api/org/apache/hadoop/io/LongWritable.html) e [questo] (http://www.google. co.in/#hl=en&sclient=psy-ab&q=understanding+longwritable+hadoop+example&oq=understanding+longwritable+hadoop+example&aq=f&aqi=&aql=&gs_l=serp.3...3375.6585.0.7061.18.17.1.0.0.12 .309.3777.0j4j12j1.17.0 ... 0.0.EABizvklF9A & pbx = 1 & bav = on.2, o.r_gc.r_pw.r_qf., Cf.osb & fp = 1183525b389c0f4f & biw = 1366 & bih = 704) dovrebbe essere sufficiente? –
Oh, grazie, aiuto libro "Hadoop in azione". Quindi, questo è solo il tipo Long per hadoop :) – Mijatovic