Installare e usare Solr nei cluster Hadoop di HDInsight

Informazioni su come installare Solr in Azure HDInsight usando un'azione script. Solr è una piattaforma di ricerca avanzata e offre funzionalità di ricerca di livello aziendale per i dati gestiti da Hadoop.

Importante

I passaggi descritti in questo documento richiedono un cluster HDInsight che usa Linux. Linux è l'unico sistema operativo usato in HDInsight versione 3.4 o successiva. Per altre informazioni, vedere la sezione relativa al ritiro di HDInsight in Windows.

Importante

Lo script di esempio usato in questo documento installa Solr 4.9 con una configurazione specifica. Per configurare il cluster Solr con raccolte, partizioni, schemi, repliche diverse e così via, sarà necessario modificare lo script e i file binari di Solr.

Che cos'è Solr

Apache Solr è una piattaforma di ricerca aziendale che permette di eseguire ricerche full-text avanzate sui dati. Mentre Hadoop consente di archiviare e gestire quantità elevate di dati, Apache Solr offre le funzionalità di ricerca necessarie per recuperare rapidamente i dati.

Avviso

I componenti forniti con il cluster HDInsight sono completamente supportati da Microsoft.

I componenti personalizzati, ad esempio Solr, ricevono supporto commercialmente ragionevole per semplificare la risoluzione dei problemi. Il supporto tecnico Microsoft potrebbe non essere in grado di risolvere i problemi con componenti personalizzati. Potrebbe essere necessario coinvolgere le community open source per ricevere assistenza. È ad esempio possibile ricorrere a molti siti di community, come il forum MSDN per HDInsight o http://stackoverflow.com. Anche per i progetti Apache sono disponibili siti specifici in http://apache.org, ad esempio Hadoop.

Funzionalità dello script

Questo script apporta le modifiche seguenti al cluster HDInsight:

  • Installa Solr 4.9 in /usr/hdp/current/solr
  • Crea un utente solrusr, usato per eseguire il servizio Solr
  • Imposta solrusr come proprietario di /usr/hdp/current/solr.
  • Aggiunge una configurazione Upstart che avvia automaticamente Solr.

Installare R mediante azioni script

Uno script di esempio per l'installazione di Solr in un cluster HDInsight è disponibile all'indirizzo seguente:

https://hdiconfigactions.blob.core.windows.net/linuxsolrconfigactionv01/solr-installer-v01.sh

Per creare un cluster con Solr installato, usare la procedura nel documento Creare cluster basati su Linux in HDInsight tramite il portale di Azure. Durante il processo di creazione, usare la procedura seguente per installare Solr:

  1. Dal pannello Riepilogo cluster, selezionare__Impostazioni avanzate__ e quindi Azioni script. Usare le seguenti informazioni per popolare il modulo:

  2. Nella parte inferiore del pannello Azioni script usare il pulsante Seleziona per salvare la configurazione. Infine, usare il pulsante Avanti per tornare al Riepilogo cluster

  3. Dalla pagina Riepilogo cluster selezionare Crea per creare il cluster.

Come si usa Solr in HDInsight

Importante

I passaggi in questa sezione illustrano le funzionalità di base di Solr. Per altre informazioni sull'uso di Solr, vedere il sito Apache Solr.

Dati dell'indice

Usare i passaggi seguenti per aggiungere dei dati di esempio a Solr e quindi eseguire una query:

  1. Connettersi al cluster HDInsight usando SSH:

    ssh USERNAME@CLUSTERNAME-ssh.azurehdinsight.net
    

    Per altre informazioni, vedere Usare SSH con HDInsight.

    Importante

    I passaggi successivi di questo documento usano un tunnel SSL per la connessione all'interfaccia utente Web di Solr. Per usare questi passaggi, è necessario stabilire un tunnel SSL e quindi configurare il browser per usarlo.

    Per altre informazioni, vedere il documento Usare il tunneling SSH per accedere all'interfaccia Web di Ambari, JobHistory, NameNode, Oozie e altre interfacce Web.

  2. Usare i comandi seguenti per indicizzare i dati di esempio tramite Solr:

    cd /usr/hdp/current/solr/example/exampledocs
    java -jar post.jar solr.xml monitor.xml
    

    Viene restituito l'output seguente alla console:

     POSTing file solr.xml
     POSTing file monitor.xml
     2 files indexed.
     COMMITting Solr index changes to http://localhost:8983/solr/update..
     Time spent: 0:00:01.624
    

    L'utilità post.jar aggiunge i documenti solr.xml e monitor.xml all'indice.

  3. Usare il comando seguente per eseguire query nell'API REST Solr:

    curl "http://localhost:8983/solr/collection1/select?q=*%3A*&wt=json&indent=true"
    

    Questo comando cerca collection1 per tutti i documenti corrispondenti *:\* (codificato come *% 3A* nella stringa della query). Il documento JSON seguente è un esempio della risposta:

         "response": {
             "numFound": 2,
             "start": 0,
             "maxScore": 1,
             "docs": [
               {
                 "id": "SOLR1000",
                 "name": "Solr, the Enterprise Search Server",
                 "manu": "Apache Software Foundation",
                 "cat": [
                   "software",
                   "search"
                 ],
                 "features": [
                   "Advanced Full-Text Search Capabilities using Lucene",
                   "Optimized for High Volume Web Traffic",
                   "Standards Based Open Interfaces - XML and HTTP",
                   "Comprehensive HTML Administration Interfaces",
                   "Scalability - Efficient Replication to other Solr Search Servers",
                   "Flexible and Adaptable with XML configuration and Schema",
                   "Good unicode support: héllo (hello with an accent over the e)"
                 ],
                 "price": 0,
                 "price_c": "0,USD",
                 "popularity": 10,
                 "inStock": true,
                 "incubationdate_dt": "2006-01-17T00:00:00Z",
                 "_version_": 1486960636996878300
               },
               {
                 "id": "3007WFP",
                 "name": "Dell Widescreen UltraSharp 3007WFP",
                 "manu": "Dell, Inc.",
                 "manu_id_s": "dell",
                 "cat": [
                   "electronics and computer1"
                 ],
                 "features": [
                   "30\" TFT active matrix LCD, 2560 x 1600, .25mm dot pitch, 700:1 contrast"
                 ],
                 "includes": "USB cable",
                 "weight": 401.6,
                 "price": 2199,
                 "price_c": "2199,USD",
                 "popularity": 6,
                 "inStock": true,
                 "store": "43.17614,-90.57341",
                 "_version_": 1486960637584081000
               }
             ]
           }
    

Uso del dashboard di Solr

Il dashboard di Solr è un'interfaccia utente Web che consente di utilizzare Solr con un Web browser. Il dashboard di Solr non viene esposto direttamente su Internet dal cluster HDInsight. È possibile usare un tunnel SSH per accedere al servizio. Per altre informazioni sull'uso del tunnel SSH, vedere il documento Usare il tunneling SSH per accedere all'interfaccia Web di Ambari, JobHistory, NameNode, Oozie e altre interfacce Web.

Dopo aver stabilito un tunnel SSH, seguire questa procedura per usare il dashboard di Solr:

  1. Determinare il nome host per il nodo head primario:

    1. Usare SSH per connettersi al nodo head del cluster. Ad esempio, ssh USERNAME@CLUSTERNAME-ssh.azurehdinsight.net.

      Per altre informazioni sull'uso di SSH, vedere Connettersi a HDInsight (Hadoop) con SSH.

    2. Utilizzare il comando seguente per ottenere il nome host completo:

      hostname -f
      

      Il comando restituisce un valore simile al nome host seguente:

        hn0-myhdi-nfebtpfdv1nubcidphpap2eq2b.ex.internal.cloudapp.net
      

      Salvare il valore restituito, poiché verrà usato in un secondo momento.

  2. Nel browser connettersi a http://NOMEHOST:8983/solr/#/, dove NOMEHOST è il nome stabilito nei passaggi precedenti.

    La richiesta viene instradata attraverso il tunnel SSH all'interfaccia utente Web di Solr nel cluster. La pagina appare simile alla seguente immagine:

    Immagine del dashboard di Solr

  3. Nel riquadro sinistro selezionare collection1 nell'elenco a discesa Core Selector (Selettore base). Sotto collection1 dovrebbero essere visualizzate diverse voci.

  4. Nelle voci elencate sotto collection1 selezionare Query. Usare i valori seguenti per popolare la pagina di ricerca:

    • Nella casella di testo q immettere *:*. Verranno restituiti dalla query tutti i documenti indicizzati in Solr. Per cercare una stringa specifica nei documenti, è possibile immettere qui la stringa.
    • Selezionare il formato di output nella casella di testo wt . Il valore predefinito è json.

      Selezionare infine il pulsante Execute Query in basso nella pagina di ricerca.

      Usare l'azione script per personalizzare un cluster

      L'output restituisce i due documenti che sono stati aggiunti all'indice in precedenza. L'output è simile al seguente documento JSON:

        "response": {
            "numFound": 2,
            "start": 0,
            "maxScore": 1,
            "docs": [
              {
                "id": "SOLR1000",
                "name": "Solr, the Enterprise Search Server",
                "manu": "Apache Software Foundation",
                "cat": [
                  "software",
                  "search"
                ],
                "features": [
                  "Advanced Full-Text Search Capabilities using Lucene",
                  "Optimized for High Volume Web Traffic",
                  "Standards Based Open Interfaces - XML and HTTP",
                  "Comprehensive HTML Administration Interfaces",
                  "Scalability - Efficient Replication to other Solr Search Servers",
                  "Flexible and Adaptable with XML configuration and Schema",
                  "Good unicode support: héllo (hello with an accent over the e)"
                ],
                "price": 0,
                "price_c": "0,USD",
                "popularity": 10,
                "inStock": true,
                "incubationdate_dt": "2006-01-17T00:00:00Z",
                "_version_": 1486960636996878300
              },
              {
                "id": "3007WFP",
                "name": "Dell Widescreen UltraSharp 3007WFP",
                "manu": "Dell, Inc.",
                "manu_id_s": "dell",
                "cat": [
                  "electronics and computer1"
                ],
                "features": [
                  "30\" TFT active matrix LCD, 2560 x 1600, .25mm dot pitch, 700:1 contrast"
                ],
                "includes": "USB cable",
                "weight": 401.6,
                "price": 2199,
                "price_c": "2199,USD",
                "popularity": 6,
                "inStock": true,
                "store": "43.17614,-90.57341",
                "_version_": 1486960637584081000
              }
            ]
          }
      

Avviare e arrestare Solr

Per arrestare o avviare Solr manualmente, usare i comandi seguenti:

sudo stop solr
sudo start solr

Eseguire il backup dei dati indicizzati

Per eseguire il backup dei dati Solr nell'archivio predefinito per il cluster, seguire questi passaggi:

  1. Connettersi al cluster tramite SSH, quindi usare il comando seguente per ottenere il nome host per il nodo head:

    hostname -f
    
  2. Per creare uno snapshot dei dati indicizzati, usare il comando seguente. Sostituire HOSTNAME con il nome restituito dal comando precedente:

    curl http://HOSTNAME:8983/solr/replication?command=backup
    

    La risposta restituita è simile al codice XML seguente:

     <?xml version="1.0" encoding="UTF-8"?>
     <response>
       <lst name="responseHeader">
         <int name="status">0</int>
         <int name="QTime">9</int>
       </lst>
       <str name="status">OK</str>
     </response>
    
  3. Passare le directory a /usr/hdp/current/solr/example/solr. Per ogni raccolta è presente una sottodirectory. Ogni directory di una raccolta contiene una directory data che contiene lo snapshot per la raccolta.

  4. Per creare un archivio compresso della cartella dello snapshot, usare il comando seguente:

    tar -zcf snapshot.20150806185338855.tgz snapshot.20150806185338855
    

    Sostituire i valori snapshot.20150806185338855 con il nome dello snapshot per la raccolta.

    Viene così creato un nuovo archivio denominato snapshot.20150806185338855.tgz che include il contenuto della directory snapshot.20150806185338855.

  5. Si potrà quindi inserire l'archivio nella risorsa di archiviazione primaria del cluster usando il comando seguente:

    hdfs dfs -put snapshot.20150806185338855.tgz /example/data
    

Per altre informazioni sulle operazioni di backup e ripristino di Solr, vedere https://cwiki.apache.org/confluence/display/solr/Making+and+Restoring+Backups.

Passaggi successivi

  • Installare Giraph in cluster HDInsight. Usare la personalizzazione cluster per installare Giraph in cluster Hadoop di HDInsight. Giraph permette di elaborare grafici con Hadoop e può essere usato con Azure HDInsight.

  • Installare Hue nei cluster HDInsight. Usare la personalizzazione dei cluster per installare Hue nei cluster Hadoop di HDInsight. Hue è un insieme di applicazioni Web che consente di interagire con un cluster Hadoop.