Uso de Azure Toolkit for Eclipse para crear aplicaciones de Apache Spark para un clúster de HDInsightUse Azure Toolkit for Eclipse to create Apache Spark applications for an HDInsight cluster

Use las herramientas de HDInsight de Azure Toolkit for Eclipse a fin de desarrollar aplicaciones de Apache Spark escritas en Scala y enviarlas a un clúster de Azure HDInsight Spark directamente desde el IDE de Eclipse.Use HDInsight Tools in Azure Toolkit for Eclipse to develop Apache Spark applications written in Scala and submit them to an Azure HDInsight Spark cluster, directly from the Eclipse IDE. Puede usar el complemento de las herramientas de HDInsight de varias maneras distintas:You can use the HDInsight Tools plug-in in a few different ways:

  • Para desarrollar y enviar una aplicación Spark en Scala en un clúster de HDInsight Spark.To develop and submit a Scala Spark application on an HDInsight Spark cluster.
  • Para acceder a los recursos del clúster de Azure HDInsight Spark.To access your Azure HDInsight Spark cluster resources.
  • Para desarrollar y ejecutar localmente una aplicación Spark en Scala.To develop and run a Scala Spark application locally.

Importante

Puede usar esta herramienta para crear y enviar aplicaciones únicamente para un clúster de HDInsight Spark en Linux.You can use this tool to create and submit applications only for an HDInsight Spark cluster on Linux.

Requisitos previosPrerequisites

Instalación de las herramientas de HDInsight del Kit de herramientas de Azure para Eclipse y el complemento ScalaInstall HDInsight Tools in Azure Toolkit for Eclipse and the Scala plug-in

Instalación del kit de herramientas de Azure para EclipseInstall Azure Toolkit for Eclipse

Las herramientas de HDInsight para Eclipse están disponibles como parte del kit de herramientas de Azure para Eclipse.HDInsight Tools for Eclipse is available as part of Azure Toolkit for Eclipse. Para obtener instrucciones de instalación, consulte Instalación del Kit de herramientas de Azure para Eclipse.For installation instructions, see Installing Azure Toolkit for Eclipse.

Instalación del complemento ScalaInstall the Scala plug-in

Al abrir Eclipse, las herramientas de HDInsight detectan automáticamente si se ha instalado el complemento Scala.When you open Eclipse, HDInsight Tool automatically detects whether you installed the Scala plug-in. Seleccione Aceptar para continuar y luego siga las instrucciones para instalar el complemento desde Marketplace de Eclipse.Select OK to continue, and then follow the instructions to install the plug-in from the Eclipse Marketplace.

Instalación automática del complemento Scala

El usuario puede iniciar sesión en la suscripción a Azure o vincular un clúster de HDInsight con el nombre de usuario y la contraseña de Ambari o credenciales unidas a un dominio para comenzar.User can either sign in to Azure subscription, or link a HDInsight cluster using Ambari username/password or domain joined credential to start.

Inicie sesión en la suscripción de AzureSign in to your Azure subscription

  1. Inicie el IDE de Eclipse y abra Azure Explorer.Start the Eclipse IDE and open Azure Explorer. En el menú Window (Ventana), seleccione Show View (Mostrar vista) y luego Other (Otros).On the Window menu, select Show View, and then select Other. En el cuadro de diálogo que se abre, expanda Azure, seleccione Azure Explorer y luego Aceptar.In the dialog box that opens, expand Azure, select Azure Explorer, and then select OK.

    Cuadro de diálogo Show View (Mostrar vista)

  2. Haga clic con el botón derecho en el nodo Azure y después seleccione Iniciar sesión.Right-click the Azure node, and then select Sign in.

  3. En el cuadro de diálogo Inicio de sesión en Microsoft Azure, elija el método de autenticación, seleccione Iniciar sesión y escriba las credenciales de Azure.In the Azure Sign In dialog box, choose the authentication method, select Sign in, and enter your Azure credentials.

    Cuadro de diálogo de inicio de sesión en Azure

  4. Cuando haya iniciado sesión, en el cuadro de diálogo Select Subscriptions (Seleccionar suscripciones) se enumeran todas las suscripciones de Azure asociadas a las credenciales.After you're signed in, the Select Subscriptions dialog box lists all the Azure subscriptions associated with the credentials. Haga clic en Seleccionar para cerrar el cuadro.Click Select to close the dialog box.

    Cuadro de diálogo de selección de suscripciones

  5. En la pestaña Azure Explorer, expanda HDInsight para ver los clústeres de HDInsight Spark de su suscripción.On the Azure Explorer tab, expand HDInsight to see the HDInsight Spark clusters under your subscription.

    Clústeres de HDInsight Spark en Azure Explorer

  6. Puede expandir un nodo de nombre de clúster para ver los recursos (por ejemplo, las cuentas de almacenamiento) asociados al clúster.You can further expand a cluster name node to see the resources (for example, storage accounts) associated with the cluster.

    Expansión de un nombre de clúster para ver recursos

Puede vincular un clúster normal mediante el nombre de usuario administrado de Ambari.You can link a normal cluster by using the Ambari managed username. De forma similar, para un clúster de HDInsight unido a un dominio, puede vincular con el dominio y el nombre de usuario, como user1@contoso.com.Similarly, for a domain-joined HDInsight cluster, you can link by using the domain and username, such as user1@contoso.com.

  1. Seleccione Link a cluster (Vincular un clúster) desde Azure Explorer.Select Link a cluster from Azure Explorer.

    menú contextual de vinculación de un clúster

  2. Escriba el Nombre de clúster, el Nombre de usuario y la Contraseña y haga clic en el botón Aceptar para vincular el clúster.Enter Cluster Name, User Name and Password, then click OK button to link cluster. De manera opcional, escriba la cuenta de almacenamiento, la clave de almacenamiento y, a continuación, seleccione el contenedor de almacenamiento para que el explorador de almacenamiento funcione en la vista de árbol de la izquierda.Optionally, enter Storage Account, Storage Key and then select Storage Container for storage explorer to work in the left tree view

    cuadro de diálogo de vinculación de clúster

    Nota

    Si el clúster se registró en la suscripción de Azure y se vinculó, se usan la clave de almacenamiento, el nombre de usuario y la contraseña vinculados.We use the linked storage key, username and password if the cluster both logged in Azure subscription and Linked a cluster. explorador de almacenamiento en Eclipsestorage explorer in Eclipse

  3. Si la información de entrada es correcta, puede ver un clúster vinculado en el nodo de HDInsight tras hacer clic en el botón OK (Aceptar).You can see a Linked cluster in HDInsight node after clicking OK button, if the input information are right. Ahora puede enviar una aplicación a este clúster vinculado.Now you can submit an application to this linked cluster.

    clúster vinculado

  4. También puede desvincular un clúster de Azure Explorer.You also can unlink a cluster from Azure Explorer.

    clúster no vinculado

Configuración de un proyecto Spark en Scala de un clúster Spark en HDInsightSet up a Spark Scala project for an HDInsight Spark cluster

  1. En el área de trabajo del IDE de Eclipse, seleccione Archivo, Nuevo y luego Proyecto.In the Eclipse IDE workspace, select File, select New, and then select Project.

  2. En el Asistente para nuevos proyectos, expanda HDInsight, seleccione Spark en HDInsight (Scala) y luego Siguiente.In the New Project wizard, expand HDInsight, select Spark on HDInsight (Scala), and then select Next.

    Selección del proyecto Spark on HDInsight (Scala)

  3. El asistente para la creación de proyectos de Scala detecta automáticamente si se ha instalado el complemento Scala.The Scala project creation wizard automatically detects whether you installed the Scala plug-in. Seleccione Aceptar para continuar con la descarga del complemento Scala y luego siga las instrucciones para reiniciar Eclipse.Select OK to continue downloading the Scala plug-in, and then follow the instructions to restart Eclipse.

    Comprobación de Scala

  4. En el cuadro de diálogo New HDInsight Scala Project (Nuevo proyecto de Scala para HDInsight), proporcione los valores siguientes y luego seleccione Siguiente:In the New HDInsight Scala Project dialog box, provide the following values, and then select Next:

    • Escriba un nombre para el proyecto.Enter a name for the project.
    • En el área JRE, asegúrese de que el valor de Use an execution environment JRE (Uso de un entorno de ejecución JRE) esté establecido en JavaSE-1.7 o posterior.In the JRE area, make sure that Use an execution environment JRE is set to JavaSE-1.7 or later.
    • En el área de Biblioteca de Spark, puede elegir la opción Use Maven to configure Spark SDK (Usar Maven para configurar el SDK de Spark).In the Spark Library area, you can choose Use Maven to configure Spark SDK option. Nuestra herramienta integra la versión correcta del SDK de Spark y de Scala.Our tool integrates the proper version for Spark SDK and Scala SDK. También puede elegir la opción Add Spark SDK manually (Agregar SDK de Spark manualmente) y descargar y agregar dicho SDK de forma manual.You can also choose Add Spark SDK manually option, download and add Spark SDK by manually.

    Cuadro de diálogo nuevo proyecto de Scala para HDInsight

  5. En el siguiente cuadro de diálogo, seleccione Finalizar.In the next dialog box, select Finish.

Creación de una aplicación de Scala para un clúster de HDInsight SparkCreate a Scala application for an HDInsight Spark cluster

  1. En el IDE de Eclipse, en el Explorador de paquetes, expanda el proyecto que ha creado anteriormente, haga clic con el botón derecho en src, seleccione Nuevo y luego Other (Otros).In the Eclipse IDE, from Package Explorer, expand the project that you created earlier, right-click src, point to New, and then select Other.

  2. En el cuadro de diálogo Select a wizard (Seleccionar un asistente), expanda Scala Wizards (Asistentes de Scala), seleccione Scala Object (Objeto de Scala) y luego Siguiente.In the Select a wizard dialog box, expand Scala Wizards, select Scala Object, and then select Next.

    Cuadro de diálogo de selección de asistente

  3. En el cuadro de diálogo Crear nuevo archivo, escriba un nombre para el objeto y seleccione Finalizar.In the Create New File dialog box, enter a name for the object, and then select Finish.

    Cuadro de diálogo de creación de nuevo archivo

  4. Pegue el código siguiente en el editor de texto:Paste the following code in the text editor:

     import org.apache.spark.SparkConf
     import org.apache.spark.SparkContext
    
     object MyClusterApp{
       def main (arg: Array[String]): Unit = {
         val conf = new SparkConf().setAppName("MyClusterApp")
         val sc = new SparkContext(conf)
    
         val rdd = sc.textFile("wasb:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv")
    
         //find the rows that have only one digit in the seventh column in the CSV
         val rdd1 =  rdd.filter(s => s.split(",")(6).length() == 1)
    
         rdd1.saveAsTextFile("wasb:///HVACOut")
       }        
     }
    
  5. Ejecute la aplicación en un clúster de HDInsight Spark:Run the application on an HDInsight Spark cluster:

    a.a. En el Explorador de paquetes, haga clic con el botón derecho en el nombre del proyecto y seleccione Submit Spark Application to HDInsight (Enviar aplicación Spark a HDInsight).From Package Explorer, right-click the project name, and then select Submit Spark Application to HDInsight.
    b.b. En el cuadro de diálogo Spark Submission (Envío de Spark), proporcione los siguientes valores y luego seleccione Enviar:In the Spark Submission dialog box, provide the following values, and then select Submit:

    • Para Cluster Name(Nombre del clúster), seleccione el clúster Spark en HDInsight en el que quiere ejecutar la aplicación.For Cluster Name, select the HDInsight Spark cluster on which you want to run your application.

    • Seleccione un artefacto del proyecto Eclipse o uno de un disco duro.Select an artifact from the Eclipse project, or select one from a hard drive. El valor predeterminado depende del elemento en el que se hace clic con el botón derecho desde el explorador de paquetes.The default value depends on the item that you right-click from Package Explorer.

    • En la lista desplegable Nombre de la clase principal, el asistente para envío muestra todos los nombres de objetos del proyecto.In the Main class name drop-down list, the submission wizard displays all object names from your project. Seleccione o escriba uno que quiera ejecutar.Select or enter one that you want to run. Si ha seleccionado un artefacto de una unidad de disco duro, debe escribir manualmente el nombre de la clase principal.If you selected an artifact from a hard drive, you must enter the main class name manually.

    • Dado que el código de aplicación de este ejemplo no requiere ningún argumento de línea de comandos ni archivos o JAR de referencia, puede dejar vacíos los demás cuadros de texto.Because the application code in this example does not require any command-line arguments or reference JARs or files, you can leave the remaining text boxes empty.

      Cuadro de diálogo de envío de Spark

  6. La pestaña Spark Submission (Envío de Spark) debería empezar a mostrar el progreso.The Spark Submission tab should start displaying the progress. Puede detener la aplicación si selecciona el botón rojo de la ventana Spark Submission (Envío de Spark).You can stop the application by selecting the red button in the Spark Submission window. También puede ver los registros de ejecución de esta aplicación concreta si selecciona el icono de globo (que se indica con el cuadro azul en la imagen).You can also view the logs for this specific application run by selecting the globe icon (denoted by the blue box in the image).

    Ventana de envío de Spark

Acceso y administración de clústeres HDInsight Spark mediante las herramientas de HDInsight del kit de herramientas de Azure para EclipseAccess and manage HDInsight Spark clusters by using HDInsight Tools in Azure Toolkit for Eclipse

Puede realizar varias operaciones mediante herramientas de HDInsight, incluido el acceso a la salida del trabajo.You can perform various operations by using HDInsight Tools, including accessing the job output.

Acceso a la vista de trabajoAccess the job view

  1. En Azure Explorer, expanda HDInsight y el nombre del clúster de Spark. Después, seleccione Trabajos.In Azure Explorer, expand HDInsight, expand the Spark cluster name, and then select Jobs.

    Nodo Vista de trabajos

  2. Seleccione el nodo Trabajos.Select the Jobs node. Si la versión de Java es anterior a la 1.8, las Herramientas de HDInsight le recordarán automáticamente que instale el conector E(fx)clipse.If Java version is lower than 1.8, HDInsight Tools automatically reminder you install the E(fx)clipse plug-in. Seleccione Aceptar para continuar y luego siga las instrucciones del asistente para instalarlo desde el Marketplace de Eclipse y reiniciar Eclipse.Select OK to continue, and then follow the wizard to install it from the Eclipse Marketplace and restart Eclipse.

    Instalación de E(fx)clipse

  3. Abra la vista de trabajo desde el nodo Trabajos.Open the Job View from the Jobs node. En el panel derecho, la pestaña Spark Job View (Vista de trabajos de Spark) muestra todas las aplicaciones que se ejecutaron en el clúster.In the right pane, the Spark Job View tab displays all the applications that were run on the cluster. Seleccione el nombre de la aplicación para la que desea ver más detalles.Select the name of the application for which you want to see more details.

    Detalles de aplicación

    Luego puede realizar cualquiera de estas acciones:You can then take any of these actions:

    • Mantener el puntero sobre el gráfico del trabajo.Hover on the job graph. Muestra información básica sobre el trabajo en ejecución.It displays basic info about the running job. Seleccione el gráfico del trabajo para ver las fases y la información que genera cada trabajo.Select the job graph, and you can see the stages and info that every job generates.

      Detalles de fase de trabajo

    • Para ver registros usados con frecuencia, como Driver Stderr, Driver Stdout y Directory Info, seleccione la pestaña Registro.Select the Log tab to view frequently used logs, including Driver Stderr, Driver Stdout, and Directory Info.

      Detalles del registro

    • Abra la interfaz de usuario del historial de Spark y la interfaz de usuario de Apache Hadoop YARN (en el nivel de aplicación) mediante la selección de los hipervínculos de la parte superior de la ventana.Open the Spark history UI and the Apache Hadoop YARN UI (at the application level) by selecting the hyperlinks at the top of the window.

Acceso al contenedor de almacenamiento para el clústerAccess the storage container for the cluster

  1. En Azure Explorer, expanda el nodo raíz HDInsight para ver una lista de los clústeres HDInsight Spark disponibles.In Azure Explorer, expand the HDInsight root node to see a list of HDInsight Spark clusters that are available.

  2. Expanda el nombre del clúster para ver la cuenta de almacenamiento y el contenedor de almacenamiento predeterminado para el clúster.Expand the cluster name to see the storage account and the default storage container for the cluster.

    Cuenta de almacenamiento y contenedor de almacenamiento predeterminado

  3. Seleccione el nombre del contenedor de almacenamiento asociado al clúster.Select the storage container name associated with the cluster. En el panel derecho, haga doble clic en la carpeta HVACOut.In the right pane, double-click the HVACOut folder. Abra uno de los archivos part- para ver la salida de la aplicación.Open one of the part- files to see the output of the application.

Acceso al servidor de historial de SparkAccess the Spark history server

  1. En Azure Explorer, haga clic con el botón derecho en el nombre del clúster Spark y seleccione Open Spark History UI (Abrir IU de historial de Spark).In Azure Explorer, right-click your Spark cluster name, and then select Open Spark History UI. Cuando se le pida, escriba las credenciales de administrador para el clúster.When you're prompted, enter the admin credentials for the cluster. Las ha especificado al aprovisionar el clúster.You specified these while provisioning the cluster.
  2. En el panel del servidor de historial de Spark, use el nombre de aplicación para buscar la aplicación que acaba de terminar de ejecutar.In the Spark history server dashboard, you use the application name to look for the application that you just finished running. En el código anterior, se establece el nombre de la aplicación mediante val conf = new SparkConf().setAppName("MyClusterApp").In the preceding code, you set the application name by using val conf = new SparkConf().setAppName("MyClusterApp"). Por lo tanto, el nombre de la aplicación Spark era MyClusterApp.So, your Spark application name was MyClusterApp.

Inicio del portal de Apache AmbariStart the Apache Ambari portal

  1. En Azure Explorer, haga clic con el botón derecho en el nombre del clúster de Spark y seleccione Open Cluster Management Portal (Ambari) (Abrir portal de administración de clústeres [Ambari]).In Azure Explorer, right-click your Spark cluster name, and then select Open Cluster Management Portal (Ambari).
  2. Cuando se le pida, escriba las credenciales de administrador para el clúster.When you're prompted, enter the admin credentials for the cluster. Las ha especificado al aprovisionar el clúster.You specified these while provisioning the cluster.

Administración de suscripciones de AzureManage Azure subscriptions

De forma predeterminada, las herramientas de HDInsight en el kit de herramientas de Azure para Eclipse enumeran los clústeres de Spark de todas las suscripciones de Azure.By default, HDInsight Tool in Azure Toolkit for Eclipse lists the Spark clusters from all your Azure subscriptions. Si es necesario, puede especificar las suscripciones que desea que tengan acceso al clúster.If necessary, you can specify the subscriptions for which you want to access the cluster.

  1. En Azure Explorer, haga clic con el botón derecho en el nodo raíz de Azure y seleccione Manage Subscriptions (Administrar suscripciones).In Azure Explorer, right-click the Azure root node, and then select Manage Subscriptions.
  2. En el cuadro de diálogo, desactive las casillas de la suscripción a la que no quiere acceder y luego seleccione Cerrar.In the dialog box, clear the check boxes for the subscription that you don't want to access, and then select Close. También puede seleccionar Sign Out (Cerrar sesión) si desea cerrar sesión en su suscripción de Azure.You can also select Sign Out if you want to sign out of your Azure subscription.

Ejecución local de una aplicación Spark en ScalaRun a Spark Scala application locally

Puede utilizar las herramientas de HDInsight del kit de herramientas de Azure para Eclipse si quiere ejecutar aplicaciones Spark en Scala localmente en su estación de trabajo.You can use HDInsight Tools in Azure Toolkit for Eclipse to run Spark Scala applications locally on your workstation. Normalmente estas aplicaciones no necesitan tener acceso a los recursos de clúster, como el contenedor de almacenamiento, y se pueden ejecutar y probar de forma local.Typically, these applications don't need access to cluster resources such as a storage container, and you can run and test them locally.

Requisito previoPrerequisite

Mientras se ejecuta la aplicación Spark en Scala local en un equipo Windows, puede producirse una excepción, como se explica en SPARK-2356.While you're running the local Spark Scala application on a Windows computer, you might get an exception as explained in SPARK-2356. Esta excepción se produce porque falta WinUtils.exe en Windows.This exception occurs because WinUtils.exe is missing in Windows.

Para solucionar este error, debe descargar el archivo ejecutable en una ubicación como C:\WinUtils\bin, después agregar la variable de entorno HADOOP_HOME y establecer el valor de la variable en C\WinUtils.To resolve this error, you need download the executable to a location like C:\WinUtils\bin, and then add the environment variable HADOOP_HOME and set the value of the variable to C\WinUtils.

Ejecución de una aplicación Spark en Scala localRun a local Spark Scala application

  1. Inicie Eclipse y cree un proyecto.Start Eclipse and create a project. En el cuadro de diálogo Nuevo proyecto, realice las siguientes selecciones y después seleccione Siguiente.In the New Project dialog box, make the following choices, and then select Next.

    • En el panel izquierdo, seleccione HDInsight.In the left pane, select HDInsight.
    • En el panel derecho, seleccione Spark on HDInsight Local Run Sample (Scala) (Ejemplo de ejecución local de Spark en HDInsight [Scala]).In the right pane, select Spark on HDInsight Local Run Sample (Scala).

    Cuadro de diálogo Nuevo proyecto

  2. Para proporcionar los detalles del proyecto, siga los pasos del 3 a 6 de la sección anterior Configuración de un proyecto Spark en Scala de un clúster Spark en HDInsight.To provide the project details, follow steps 3 through 6 from the earlier section Setup a Spark Scala project for an HDInsight Spark cluster.

  3. La plantilla agrega un código de ejemplo (LogQuery) en la carpeta src que puede ejecutar localmente en el equipo.The template adds a sample code (LogQuery) under the src folder that you can run locally on your computer.

    Ubicación de LogQuery

  4. Haga clic con el botón derecho en la aplicación LogQuery, seleccione Ejecutar como y luego 1 Scala Application (1 aplicación de Scala).Right-click the LogQuery application, point to Run As, and then select 1 Scala Application. Aparece una salida como esta en la pestaña Consola:Output like this appears on the Console tab:

    Resultado de la ejecución local de la aplicación Spark

Problemas conocidosKnown problems

Al vincular un clúster, es aconsejable especificar las credenciales de almacenamiento.When link a cluster, I would suggest you to provide credential of storage.

Inicio de sesión interactivo

Hay dos formas de enviar los trabajos.There are two modes to submit the jobs. Si se proporcionan credenciales de almacenamiento, se utilizará el modo por lotes para enviar el trabajo.If storage credential is provided, batch mode will be used to submit the job. De lo contrario, se utilizará el modo interactivo.Otherwise, interactive mode will be used. Si el clúster está ocupado, podría obtener el siguiente error.If the cluster is busy, you might get the error below.

Eclipse presenta errores si el clúster está ocupado

Eclipse presenta errores si el clúster está ocupado

ComentariosFeedback

Si tiene algún comentario o si experimenta algún problema al usar esta herramienta, envíe un correo electrónico a hdivstool@microsoft.com.If you have any feedback, or if you encounter any other problems when using this tool, send us an email at hdivstool@microsoft.com.

Consulte tambiénSee also

EscenariosScenarios

Creación y ejecución de aplicacionesCreating and running applications

Herramientas y extensionesTools and extensions

Administración de recursosManaging resources