Introduzione ad Azure HDInsight, allo stack di tecnologie Hadoop e ai cluster Hadoop

Questo articolo offre un'introduzione ad Azure HDInsight, una distribuzione cloud dello stack di tecnologie Hadoop. Illustra anche il cluster Hadoop e quando viene usato.

Informazioni su Azure HDInsight e sullo stack di tecnologie Hadoop

Azure HDInsight è una distribuzione cloud dei componenti Hadoop di Hortonworks Data Platform (HDP). Apache Hadoop era il framework open source originale per l'elaborazione distribuita e l'analisi di set di Big Data in cluster di computer.

Lo stack di tecnologie Hadoop include software e utilità correlate, tra cui Apache Hive, HBase, Spark, Kafka e molti altri. Per i componenti dello stack di tecnologie Hadoop disponibili in HDInsight, vedere Componenti e versioni disponibili con HDInsight. Per altre informazioni su Hadoop in HDInsight, vedere la pagina delle funzionalità di Azure per HDInsight.

Definizione di cluster Hadoop e casi d'uso

Hadoop è anche un tipo di cluster con:

  • YARN per la pianificazione dei processi e la gestione delle risorse
  • MapReduce per l'elaborazione parallela
  • Hadoop Distributed File System (HDFS)

I cluster Hadoop vengono spesso usati per l'elaborazione batch di dati archiviati. Altri tipi di cluster in HDInsight hanno funzionalità aggiuntive: Spark è particolarmente diffuso in virtù dell'elaborazione in memoria più rapida. Vedere Tipi di cluster in HDInsight per informazioni dettagliate.

Informazioni sui Big Data

I Big Data descrivono qualsiasi corpo di informazioni digitali di grandi dimensioni, ad esempio:

  • Dati di sensori di macchine industriali
  • Attività dei clienti raccolta da un sito Web
  • Un newsfeed Twitter

I Big Data vengono raccolti in volumi sempre più elevati, a velocità crescenti e in una gamma crescente di formati. I Big Data possono essere cronologici (dati archiviati) oppure in tempo reale (trasmessi dall'origine).

Tipi di cluster in HDInsight

HDInsight include tipi di cluster specifici e funzionalità di personalizzazione dei cluster, ad esempio l'aggiunta di componenti, utilità e linguaggi.

Tipi di cluster Spark, Kafka, Interactive Hive, HBase, personalizzati e di altro tipo

HDInsight offre i seguenti tipi di cluster:

I cluster possono anche essere configurati nei modi seguenti:

Script di personalizzazione cluster di esempio

Le azioni script sono script Bash in Linux che vengono eseguiti durante il provisioning del cluster e che possono essere usati per installare componenti aggiuntivi nel cluster.

I seguenti gli script di esempio vengono forniti dal team di HDInsight:

  • Hue: un insieme di applicazioni Web che consente di interagire con un cluster. Solamente cluster Linux
  • Giraph: elaborazione Graph per modellare le relazioni tra persone o elementi.
  • Solr: una piattaforma di ricerca su scala aziendale che consente di eseguire ricerche full-text sui dati.

Per informazioni su come sviluppare azioni script personalizzate, vedere Sviluppo di azioni script con HDInsight.

Componenti e utilità nei cluster HDInsight

Nei cluster HDInsight sono inclusi i componenti e le utilità seguenti:

  • Ambari: provisioning, gestione, monitoraggio e utilità dei cluster.
  • Avro (la libreria Microsoft .NET per Avro): serializzazione dei dati per l'ambiente Microsoft .NET.
  • Hive e HCatalog: query simili a SQL e un livello di gestione di tabelle e archiviazione.
  • Mahout: per applicazioni Machine Learning scalabili.
  • MapReduce: framework legacy per l'elaborazione distribuita e la gestione delle risorse Hadoop. Vedere YARN.
  • Oozie: gestione dei flussi di lavoro.
  • Phoenix: un livello di database relazionale su HBase.
  • Pig: script semplice per le trasformazioni MapReduce.
  • Sqoop: importazione ed esportazione dei dati.
  • Tez: consente di eseguire in modo efficiente a livello di scalabilità processi a elevato utilizzo di dati.
  • YARN: gestione delle risorse nell'ambito della libreria principale di Hadoop.
  • ZooKeeper: coordinamento di processi in sistemi distribuiti.
Nota

Per informazioni sui componenti specifici e sulle versioni, vedere Componenti e versioni Hadoop in HDInsight

Ambari

Apache Ambari viene usato per il provisioning, la gestione e il monitoraggio di cluster Apache Hadoop. Comprende una raccolta di strumenti operatore intuitivi e un set affidabile di API che nascondono la complessità di Hadoop, semplificando le operazioni sui cluster. I cluster HDInsight in Linux forniscono sia l'interfaccia utente Web Ambari che l'API REST Ambari. Le viste di Ambari nei cluster HDInsight consentono funzionalità di plug-in dell'interfaccia utente. Vedere Gestire i cluster HDInsight tramite Ambari e le informazioni di riferimento sull'API Apache Ambari.

Avro (Libreria Microsoft .NET per Avro)

La libreria Microsoft .NET per Avro implementa il formato compatto di interscambio dei dati binari Apache Avro per la serializzazione nell'ambiente Microsoft .NET. Definisce uno schema indipendente dal linguaggio in modo che i dati serializzati in un linguaggio possano essere letti in un altro. Informazioni dettagliate sul formato sono disponibili nelle specifiche di Apache Avro. Il formato dei file Avro supporta il modello di programmazione MapReduce: i file possono essere suddivisi, ossia è possibile cercare un qualsiasi punto del file e iniziare a leggere da un blocco specifico. Per informazioni sulle procedure, vedere Serializzazione dei dati con la libreria Microsoft .NET per Avro. Il supporto di cluster basati su Linux è in programma.

HDFS

Hadoop Distributed File System (HDFS) è un file system che, insieme a MapReduce e YARN, costituisce il nucleo della tecnologia Hadoop. Si tratta del file system standard per i cluster Hadoop in HDInsight. Vedere Eseguire query sui dati da un archivio compatibile con HDFS.

Apache Hive e HCatalog

Apache Hive è un software di data warehouse basato su Hadoop che consente di eseguire query e gestire grandi set di dati nella risorsa di archiviazione distribuita con un linguaggio simile a SQL chiamato HiveQL. Hive, analogamente a Pig, è un'astrazione basata su MapReduce e converte le query in una serie di processi MapReduce. Hive è più simile a un sistema di gestione di database relazionali che a Pig e viene usato con dati più strutturati. Pig è invece la scelta ottimale per dati non strutturati. Vedere Usare Hive con Hadoop in HDInsight.

Apache HCatalog è un livello di gestione tabella e archiviazione per Hadoop che fornisce agli utenti una visualizzazione relazionale dei dati. In HCatalog, è possibile leggere e scrivere file in qualsiasi formato adatto per un SerDe (serializzatore-deserializzatore) Hive.

Mahout

Apache Mahout è una libreria di algoritmi di Machine Learning eseguita in Hadoop. Usando i principi della statistica, le applicazioni di Machine Learning istruiscono i sistemi in modo che apprendano dai dati e usino i risultati precedenti per determinare i comportamenti futuri. Vedere Generare consigli sui film usando Mahout in Hadoop.

MapReduce

MapReduce è un software legacy per Hadoop per la scrittura di applicazioni per l'elaborazione batch di set di Big Data in parallelo. Un processo MapReduce suddivide i set di dati di grandi dimensioni e organizza i dati in coppie chiave-valore per l'elaborazione. I processi MapReduce vengono eseguiti in YARN. Vedere MapReduce nel wiki di Hadoop.

Oozie

Apache Oozie è un sistema di coordinamento dei flussi di lavoro che consente di gestire i processi Hadoop. È integrato con lo stack Hadoop e supporta i processi Hadoop per MapReduce, Pig, Hive e Sqoop. Può anche essere usato per pianificare processi specifici di un sistema, come i programmi Java o gli script della shell. Vedere Usare Oozie con Hadoop per definire ed eseguire un flusso di lavoro in HDInsight.

Phoenix

Apache Phoenix è un livello di database relazionale su HBase. Phoenix include un driver JDBC che consente agli utenti di eseguire query e di gestire direttamente le tabelle SQL. Anziché utilizzare MapReduce, Phoenix converte query e altre istruzioni in chiamate API NoSQL native, consentendo in tal modo applicazioni più rapide in archivi NoSQL. Vedere Usare Apache Phoenix e SQuirreL con i cluster HBase.

Pig

Apache Pig è una piattaforma di alto livello che consente di eseguire trasformazioni MapReduce complesse in set di dati di grandi dimensioni usando un linguaggio di scripting semplice chiamato Pig Latin. Pig converte gli script Pig Latin in modo che possano essere eseguiti in Hadoop. È possibile creare funzioni definite dall'utente (UDF) per estendere Pig Latin. Vedere Usare Pig con Hadoop in HDInsight.

Sqoop

Apache Sqoop è uno strumento che consente di trasferire dati in blocco tra Hadoop e i database relazionali, ad esempio SQL o altri archivi dati strutturati, nel modo più efficace possibile. Vedere Uso di Sqoop con HDInsight.

Tez

Apache Tez è un framework di applicazione basato su Hadoop YARN che esegue grafici complessi, aciclici di elaborazione dati generali. È il successore più flessibile e potente del framework MapReduce, che consente l’esecuzione di processi di uso intensivo di dati, ad esempio Hive, in modo più efficiente a livello di scalabilità. Vedere "Usare Apache Tez per ottenere prestazioni migliorate" in Uso di Hive e HiveQL.

YARN

Apache YARN rappresenta la nuova generazione di MapReduce (MapReduce 2.0 o MRv2) e supporta scenari di elaborazione dati che superano l'elaborazione batch di MapReduce, offrendo maggiore scalabilità ed elaborazione in tempo reale. YARN offre un framework applicazioni distribuito e gestione delle risorse. I processi MapReduce vengono eseguiti in YARN. Vedere Apache Hadoop NextGen MapReduce (YARN).

ZooKeeper

Apache ZooKeeper coordina i processi in sistemi distribuiti di grandi dimensioni usando uno spazio dei nomi gerarchico condiviso di registri di dati (znode). Gli Znode contengono piccole quantità di metainformazioni necessarie per il coordinamento dei processi: stato, posizione, configurazione e così via. Vedere un esempio di ZooKeeper con un cluster HBase e Apache Phoenix.

Linguaggi di programmazione in HDInsight

I cluster di HDInsight, ovvero cluster Spark, HBase, Kafka, Hadoop e altri, supportano molti linguaggi di programmazione, ma alcuni di questi non sono installati per impostazione predefinita. Per le librerie, i moduli o i pacchetti non installati per impostazione predefinita, usare un'azione script per installare il componente.

Supporto per i linguaggi di programmazione predefiniti

Per impostazione predefinita, i cluster HDInsight supportano:

  • Java
  • Python

È possibile installare linguaggi aggiuntivi usando azioni script.

Linguaggi per macchine virtuali Java

È possibile eseguire molti linguaggi diversi da Java in Java Virtual Machine. L'esecuzione di alcuni di questi linguaggi può tuttavia richiedere l'installazione di componenti aggiuntivi nel cluster.

I linguaggi basati su JVM sono supportati nei cluster HDInsight:

  • Clojure
  • Jython (Python per Java)
  • Scala

Linguaggi specifici di Hadoop

I cluster HDInsight supportano i linguaggi seguenti, specifici dello stack di tecnologie Hadoop:

  • Pig Latin per processi Pig
  • HiveQL per processi Hive e SparkSQL

HDInsight Standard e HDInsight Premium

HDInsight fornisce offerte cloud per i Big Data in due categorie, Standard e Premium. HDInsight Standard offre un cluster su scala aziendale che le organizzazioni possono usare per eseguire i carichi di lavoro legati ai Big Data. HDInsight Premium si basa sulle funzionalità del piano Standard e offre funzionalità di analisi e sicurezza avanzate per un cluster HDInsight. Per altre informazioni, vedere Azure HDInsight Premium

Microsoft business intelligence e HDInsight

Gli strumenti di business intelligence (BI) noti consentono di recuperare, analizzare e creare report di dati integrati con HDInsight usando il componente aggiuntivo Power Query o Microsoft Hive ODBC Driver:

Passaggi successivi