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

Author: James Dyalim, 2016-09-23

1 answers

Ti suggerirei di usare l'approccio HDFS/HIVE/JSONSerde.

Il contorno della soluzione sarebbe simile.

  1. Memorizza i tuoi dati JSON su HDFS.
  2. Crea tabelle esterne usando hive e usa jsonSerde per mappare i dati json alle colonne della tua tabella.
  3. 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

 1
Author: Mufaddal Kamdar, 2017-02-18 17:44:49