Installare Giraph nei cluster HDInsight Hadoop e usarlo per elaborare grafici su vasta scalaInstall Giraph on HDInsight Hadoop clusters, and use Giraph to process large-scale graphs

Informazioni su come installare Apache Giraph in un cluster HDInsight.Learn how to install Apache Giraph on an HDInsight cluster. La funzione di azione script di HDInsight consente di personalizzare il cluster eseguendo uno script bash.The script action feature of HDInsight allows you to customize your cluster by running a bash script. È possibile usare gli script per personalizzare i cluster sia durante che dopo la creazione del cluster.Scripts can be used to customize clusters during and after cluster creation.

Importante

I passaggi descritti in questo documento richiedono un cluster HDInsight che usa Linux.The steps in this document require an HDInsight cluster that uses Linux. Linux è l'unico sistema operativo usato in HDInsight versione 3.4 o successiva.Linux is the only operating system used on HDInsight version 3.4 or greater. Per altre informazioni, vedere la sezione relativa al ritiro di HDInsight in Windows.For more information, see HDInsight retirement on Windows.

Che cos'è Giraph?What is Giraph

Apache Giraph consente di elaborare grafici con Hadoop e può essere usato con Azure HDInsight.Apache Giraph allows you to perform graph processing by using Hadoop, and can be used with Azure HDInsight. È possibile usare i grafici per modellare le relazioni tra gli oggetti,Graphs model relationships between objects. ad esempio le connessioni tra router in una rete di grandi dimensioni, come Internet, oppure le relazioni tra persone iscritte a social network.For example, the connections between routers on a large network like the Internet, or relationships between people on social networks. Grazie all'elaborazione del grafico è possibile ottenere informazioni dettagliate sulle relazioni tra gli oggetti in un grafico e in particolare di:Graph processing allows you to reason about the relationships between objects in a graph, such as:

  • Identificare possibili amici sulla base delle relazioni correnti.Identifying potential friends based on your current relationships.

  • Identificare la route più breve tra due computer di una rete.Identifying the shortest route between two computers in a network.

  • Calcolare la posizione in classifica di pagine Web.Calculating the page rank of webpages.

Avviso

I componenti forniti con il cluster HDInsight sono supportati in modo completo e il supporto tecnico Microsoft contribuirà a isolare e risolvere i problemi correlati a questi componenti.Components provided with the HDInsight cluster are fully supported - Microsoft Support helps to isolate and resolve issues related to these components.

I componenti personalizzati, ad esempio Giraph, ricevono supporto commercialmente ragionevole per semplificare la risoluzione dei problemi.Custom components, such as Giraph, receive commercially reasonable support to help you to further troubleshoot the issue. È possibile che il supporto tecnico Microsoft sia in grado di risolvere il problema.Microsoft Support may be able to resolving the issue. In caso contrario, è necessario consultare le community open source, da cui è possibile ottenere supporto approfondito per la tecnologia specifica.If not, you must consult open source communities where deep expertise for that technology is found. È 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.For example, there are many community sites that can be used, like: MSDN forum for HDInsight, http://stackoverflow.com. Also Apache projects have project sites on http://apache.org, for example: Hadoop.

Funzionalità dello scriptWhat the script does

Lo script esegue le azioni seguenti:This script performs the following actions:

  • Installa Giraph in /usr/hdp/current/giraphInstalls Giraph to /usr/hdp/current/giraph

  • Copia il file giraph-examples.jar nell'archivio BLOB di Azure (WASB) predefinito del cluster: /example/jars/giraph-examples.jarCopies the giraph-examples.jar file to default storage (WASB) for your cluster: /example/jars/giraph-examples.jar

Installare Giraph mediante azioni scriptInstall Giraph using Script Actions

Uno script di esempio per l'installazione di Giraph in un cluster HDInsight è disponibile all'indirizzo seguente:A sample script to install Giraph on an HDInsight cluster is available at the following location:

https://hdiconfigactions.blob.core.windows.net/linuxgiraphconfigactionv01/giraph-installer-v01.sh

Questa sezione fornisce istruzioni su come usare lo script di esempio quando si crea il cluster usando il portale di Azure.This section provides instructions on how to use the sample script while creating the cluster by using the Azure portal.

Nota

Un'azione script può essere applicata usando uno dei metodi seguenti:A script action can be applied using any of the following methods:

  • Azure PowerShellAzure PowerShell
  • Interfaccia della riga di comando di AzureThe Azure CLI
  • HDInsight .NET SDKThe HDInsight .NET SDK
  • Modelli di Gestione risorse di AzureAzure Resource Manager templates

È anche possibile applicare azioni script a cluster già in esecuzione.You can also apply script actions to already running clusters. Per altre informazioni, vedere Personalizzare cluster HDInsight basati su Linux tramite Azione script.For more information, see Customize HDInsight clusters with Script Actions.

  1. Avviare la creazione di un cluster utilizzando la procedura descritta in Creazione di cluster HDInsight basati su Linux, ma non completare la creazione.Start creating a cluster by using the steps in Create Linux-based HDInsight clusters, but do not complete creation.

  2. Nella sezione Configurazione facoltativa selezionare Azioni script e specificare le informazioni seguenti:In the Optional Configuration section, select Script Actions, and provide the following information:

  3. Nella parte inferiore di Azioni di script usare il pulsante Seleziona per salvare la configurazione.At the bottom of the Script Actions, use the Select button to save the configuration. Usare infine il pulsante Seleziona nella parte inferiore della sezione Configurazione facoltativa per salvare le informazioni relative alla configurazione facoltativa.Finally, use the Select button at the bottom of the Optional Configuration section to save the optional configuration information.

  4. Continuare a creare il cluster come descritto nell'argomento relativo alla creazione di cluster HDInsight basati su Linux.Continue creating the cluster as described in Create Linux-based HDInsight clusters.

Come si usa Giraph in HDInsight?How do I use Giraph in HDInsight?

Dopo aver creato il cluster, usare la procedura seguente per eseguire l'esempio SimpleShortestPathsComputation incluso in Giraph.Once the cluster has been created, use the following steps to run the SimpleShortestPathsComputation example included with Giraph. Viene usata l'implementazione di base di Pregel per trovare il percorso più breve tra gli oggetti in un grafico.This example uses the basic Pregel implementation for finding the shortest path between objects in a graph.

  1. Connettersi al cluster HDInsight usando SSH:Connect to the HDInsight cluster using SSH:

    ssh USERNAME@CLUSTERNAME-ssh.azurehdinsight.net
    

    Per altre informazioni, vedere Usare SSH con HDInsight.For information, see Use SSH with HDInsight.

  2. Usare il comando seguente per creare un file denominato tiny_graph.txt:Use the following command to create a file named tiny_graph.txt:

    nano tiny_graph.txt
    

    Usare il testo seguente come contenuto del file:Use the following text as the contents of this file:

    [0,0,[[1,1],[3,3]]]
    [1,0,[[0,1],[2,2],[3,1]]]
    [2,0,[[1,2],[4,4]]]
    [3,0,[[0,3],[1,1],[4,4]]]
    [4,0,[[3,4],[2,4]]]
    

    Questi dati descrivono una relazione tra gli oggetti in un grafico diretto, usando il formato [source_id, source_value,[[dest_id], [edge_value],...]].This data describes a relationship between objects in a directed graph, by using the format [source_id, source_value,[[dest_id], [edge_value],...]]. Ogni riga rappresenta una relazione tra un oggetto source_id e uno o più oggetti dest_id.Each line represents a relationship between a source_id object and one or more dest_id objects. Il valore edge_value può essere considerato come la potenza o la distanza della connessione tra source_id e dest\_id.The edge_value can be thought of as the strength or distance of the connection between source_id and dest\_id.

    I dati disegnati usando il valore (o peso) come distanza tra gli oggetti possono essere simili a quelli raffigurati nel diagramma seguente:Drawn out, and using the value (or weight) as the distance between objects, the data might look like the following diagram:

    tiny_graph.txt drawn as circles with lines of varying distance between

  3. Per salvare il file usare CTRL+X, quindi Y e infine premere INVIO per accettare il nome del file.To save the file, use Ctrl+X, then Y, and finally Enter to accept the file name.

  4. Usare il codice seguente per archiviare i dati nell'archiviazione primaria del cluster HDInsight:Use the following to store the data into primary storage for your HDInsight cluster:

    hdfs dfs -put tiny_graph.txt /example/data/tiny_graph.txt
    
  5. Eseguire l'esempio SimpleShortestPathsComputation con il comando seguente:Run the SimpleShortestPathsComputation example using the following command:

    yarn jar /usr/hdp/current/giraph/giraph-examples.jar org.apache.giraph.GiraphRunner org.apache.giraph.examples.SimpleShortestPathsComputation -ca mapred.job.tracker=headnodehost:9010 -vif org.apache.giraph.io.formats.JsonLongDoubleFloatDoubleVertexInputFormat -vip /example/data/tiny_graph.txt -vof org.apache.giraph.io.formats.IdWithValueTextOutputFormat -op /example/output/shortestpaths -w 2
    

    I parametri usati con questo comando sono descritti nella tabella seguente:The parameters used with this command are described in the following table:

    ParametroParameter RisultatoWhat it does
    jar File JAR contenente gli esempi.The jar file containing the examples.
    org.apache.giraph.GiraphRunner Classe usata per avviare gli esempi.The class used to start the examples.
    org.apache.giraph.examples.SimpleShortestPathsCoputation L'esempio usato.The example that is used. In questo esempio, viene calcolato il percorso più breve tra ID 1 e tutti gli altri ID nel grafico.In this example, it computes the shortest path between ID 1 and all other IDs in the graph.
    -ca mapred.job.tracker Nodo head del cluster.The headnode for the cluster.
    -vif Formato di input da usare per i dati di input.The input format to use for the input data.
    -vip File di dati di input.The input data file.
    -vof Formato di output.The output format. In questo caso, ID e valore come testo normale.In this example, ID and value as plain text.
    -op Percorso di output.The output location.
    -w 2 Numero di ruoli di lavoro da usare.The number of workers to use. In questo esempio, 2.In this example, 2.

    Per altre informazioni su questi e altri parametri usati con gli esempi di Giraph, vedere la Guida introduttiva a Giraph.For more information on these, and other parameters used with Giraph samples, see the Giraph quickstart.

  6. Al termine del processo, i risultati vengono archiviati nella directory /example/out/shortestpaths.Once the job has finished, the results are stored in the /example/out/shotestpaths directory. I file di output iniziano con part-m- e terminano con un numero che indica il primo file, il secondo e così via.The output file names begin with part-m- and end with a number indicating the first, second, etc. file. Usare il comando seguente per visualizzare l'output:Use the following command to view the output:

    hdfs dfs -text /example/output/shortestpaths/*
    

    L'output sarà simile al testo seguente:The output should appear similar to the following text:

     0    1.0
     4    5.0
     2    2.0
     1    0.0
     3    1.0
    

    L'esempio SimpleShortestPathComputation è hardcoded in modo da essere avviato con l'ID oggetto 1 e individuare il percorso più breve ad altri oggetti.The SimpleShortestPathComputation example is hard coded to start with object ID 1 and find the shortest path to other objects. L'output è in formato destination_id e distance.The output is in the format of destination_id and distance. In particolare, distance rappresenta il valore (o il peso) dei confini attraversati tra l'oggetto ID 1 e l'ID di destinazione.The distance is the value (or weight) of the edges traveled between object ID 1 and the target ID.

    Con questa visualizzazione dei dati è possibile verificare i risultati attraversando i percorsi più brevi tra ID 1 e tutti gli altri oggetti.Visualizing this data, you can verify the results by traveling the shortest paths between ID 1 and all other objects. Osservare come il percorso più breve tra ID 1 e ID 4 sia 5,The shortest path between ID 1 and ID 4 is 5. che corrisponde alla distanza totale tra ID 1 e 3 e quindi tra ID 3 e 4.This value is the total distance between ID 1 and 3, and then ID 3 and 4.

    Drawing of objects as circles with shortest paths drawn between

Passaggi successiviNext steps