Java Hadoop inserimento e query di dati di grandi dimensioni in formato JSON
Ho l'obbligo di creare un sistema con Java e Hadoop per gestire l'elaborazione di dati di grandi dimensioni (in formato JSON). Il sistema che sto per creare include l'inserimento di dati nell'archiviazione dei file (che si tratti di HDFS o database) e interroga i dati elaborati
Ho una grande immagine dell'utilizzo di Hadoop MapReduce per interrogare i dati che l'utente desidera. Ma una cosa che mi fa confondere è come dovrei inserire i dati. Dovrei usare HDFS e inserire il file usando Java con l'API Hadoop? O è HBase, Database relazionale, Database NoSQL) per inserire i dati in modo che Hadoop MapReduce prenderà i dati di input da altri strumenti che verranno utilizzati?
Si prega di avvisare.
Vi ringrazio molto
1 answers
Ti suggerirei di usare l'approccio HDFS/HIVE/JSONSerde.
Il contorno della soluzione sarebbe simile.
- Memorizza i tuoi dati JSON su HDFS.
- Crea tabelle esterne usando hive e usa jsonSerde per mappare i dati json alle colonne della tua tabella.
- Interroga i tuoi dati usando hiveQL.
Nella soluzione precedente, poiché hive è schema-on-read, i dati json verranno analizzati ogni volta che si interrogano le tabelle.
Ma se si desidera analizzare i dati una volta e se si dispone di dati che arrivano in batch (settimanale, mensile), sarebbe bene analizzare i dati una volta e creare una tabella di staging. che può essere utilizzato per query frequenti per evitare l'analisi ripetitiva da parte di serde.
Ho un esempio creato in : Hadoopgig