Cómo configurar el entorno Spark en Windows
Instalación 1.1 JDK
Instalación de JDK (el nombre completo es JavaTM Platform Standard Edition Development Kit), la dirección de descarga es Descargas de Java SE. Generalmente, después de ingresar a la página, se mostrará la última versión de JDK de forma predeterminada, como se muestra a continuación. La última versión es JDK 8. La dirección más detallada es Descarga del kit de desarrollo Java SE 8:
Los dos. Los lugares marcados en rojo en la imagen de arriba se pueden hacer clic. Después de hacer clic, podrá ver información más detallada sobre esta última versión, como se muestra en la siguiente figura:
En primer lugar, hay dos versiones, 8u101 y 8u102. La explicación oficial dada por Java es:
"Java SE 8u101 incluye importantes correcciones de seguridad. Oracle recomienda encarecidamente que todos los usuarios de Java SE 8 actualicen a esta versión. Java SE 8u65 438+002 es una actualización del conjunto de parches. incluidas todas las características adicionales de 8u101 más (descritas en las notas de la versión)".
Dicho esto, Java recomienda que todos los desarrolladores actualicen a JDK 8u101 desde versiones anteriores y a JDK 8u102 además de 101. Hay algunas otras características . En cuanto a la elección de la versión, elíjala usted mismo. De hecho, para los desarrolladores comunes, no hay mucha diferencia. Aquí estoy usando la versión JDK 8u101.
Seleccione la versión 8u101 y luego seleccione su plataforma de desarrollo correspondiente. Como mi máquina es de 64 bits, elijo aquí la versión de 64 bits de Windows64. Recuerde que antes de descargar debe aceptar el acuerdo de licencia anterior, rodeado en rojo en la imagen de arriba.
Además de descargar la última versión del JDK, también puede descargar el historial de versiones del JDK desde Oracle Java Archive, pero la recomendación oficial es solo para pruebas.
La instalación de JDK bajo Windows es muy sencilla. Haga doble clic en el archivo exe descargado de acuerdo con el método normal de instalación del software y luego configure su propio directorio de instalación (obligatorio al configurar las variables de entorno).
1.2 Configuración de variables de entorno
A continuación, configure las variables de entorno correspondientes. El método de configuración es el siguiente: haga clic derecho en Computadora-Propiedades-Configuración avanzada del sistema en el escritorio, luego seleccione Variables de entorno avanzadas en las propiedades del sistema, luego busque la variable "Ruta" en las variables del sistema, seleccione el botón "Editar" para abrir un cuadro de diálogo, aquí puede agregar el nombre de la ruta de la carpeta bin en el directorio JDK instalado en el paso anterior. El nombre de la ruta de mi carpeta bin aquí es: f:. archivos de programa \ Java \ JDK 1. 8. 0_101 \ bin, así que agregue esto al nombre de la ruta, preste atención al punto y coma ";" Para segmentación. Después de esta configuración, puede ejecutarse en cualquier directorio abierto en la ventana de línea de comando cmd.
Java versión 11
Observe si se puede generar la información relevante de la versión de Java. Si funciona, significa que todos los pasos de instalación del JDK han finalizado.
El proceso completo se muestra en la siguiente figura (la configuración de la variable del sistema para la instalación posterior del software es este proceso):
1.3 Algunas digresiones
Hay dos digresiones aquí. Si no le importa, puede omitir esto sin afectar los pasos de instalación posteriores.
Al instalar software, creo que ha encontrado muchas variables de entorno y variables de sistema, así que echemos un vistazo a los significados específicos de estos parámetros más problemáticos, como PATH, CLASSPATH y JAVA_HOME.
1.3.1 Variables de entorno, variables de sistema y variables de usuario
Las variables de entorno incluyen variables de sistema y variables de usuario.
La configuración de las variables del sistema es aplicable a todos los usuarios del sistema operativo;
La configuración de las variables del usuario solo es efectiva para el usuario actual.
Si no estás especialmente familiarizado con estos conceptos, te sugiero que leas primero los siguientes puntos y luego vuelvas a estas tres frases.
Ruta 1.3.2
En otras palabras, las variables del sistema configuradas en el paso anterior le indican al sistema operativo dónde encontrar la ruta de ejecución de Java.exe.
Cuando de repente escribe el siguiente comando en la ventana de la línea de comandos,
java versión 11
el sistema operativo se sorprenderá al principio, ¿qué significa "java"? Pero las quejas son quejas y aún queda trabajo por hacer, así que recordé tres frases dichas por el padre de Gates:
Cuando no pueda comprender los comandos en la ventana de la línea de comandos, primero debe verificar el directorio actual. ver si hay alguno. exe para ejecutar este comando. Si es así, úsalo para iniciar la ejecución;
Si no, no te rindas. Recuerde buscar en esos directorios bajo la variable del sistema Ruta. Si lo encuentra, inicie y ejecute el comando.
Si aún no has encontrado los dos lugares anteriores, puedes informar un error.
Entonces, el propósito de agregar la carpeta bin en el directorio de instalación de JDK a la variable del sistema Path es decirle al sistema operativo que si no se puede encontrar java.exe en el directorio actual, vaya a la variable del sistema Path Busque esas rutas una por una hasta encontrar java.exe. Entonces, ¿por qué necesita configurar la carpeta bin en lugar del directorio raíz de la instalación del JDK? La razón es que no hay java.exe en el directorio raíz, solo la carpeta bin.
Si solo ejecuta el comando java en la ventana de la línea de comandos, no necesita configurar las variables del sistema. Sin embargo, cada vez que ejecuta el comando java en la ventana de la línea de comandos, debe especificar java directamente. exe con una larga lista de nombres de rutas. La ubicación es como se muestra a continuación.
c:\Users\weizi erxu>f:\Program Files\Java\JDK 1.8.0_101\bin\Java.exe-version
' F :\Program ' no es reconocido como un comando interno o externo o un programa operable.
O archivo por lotes. 123123
Nota: El motivo del error aquí no es que haya un problema al especificar directamente el nombre de la ruta de java.exe, sino que el nombre de la ruta con espacios no se puede analizar en la línea de comando, por lo que se necesitan comillas dobles, de la siguiente manera:
c:\Users\weizierxu>"F:\Program Files"\Java\JDK 1.8.0_101\bin\Java.exe-version
javaVersion" 1.8 .0_101 "
Entorno de ejecución Java(TM) SE (compilación 1.8.0_101-b13)
Máquina virtual de servidor Java HotSpot(TM) de 64 bits (número de compilación) 25.101-b13, modo mixto) 12341234
1.3.3 Ruta de clases
La ruta de clases es cuando Java ejecuta un archivo de clase compilado, le dice a Java en qué directorios se encuentran. Este archivo de clase puede se encuentra a continuación. Por ejemplo, si su programa usa un paquete Jar (todos los paquetes Jar son archivos de clase compilados), entonces Java necesita encontrar el paquete Jar durante la ejecución. ¿Dónde puedo encontrarlo? Busca de izquierda a derecha (nombres de ruta separados por punto y coma) en el directorio especificado por CLASSPATH hasta que encuentra un archivo de clase con el nombre especificado. Si no se puede encontrar, se informará un error. Haz un experimento aquí y entenderás lo que significa.
En primer lugar, escribí un programa similar a Hello World en el directorio F:\Program Files\java y lo guardé como un archivo testClassPath.java (tenga en cuenta que el sufijo debe cambiarse a java).
El contenido es el siguiente:
Clase pública testClassPath{
Public static void main(String[] args){
System.out.println("Hola , esto es ¡Es una prueba de la ruta de clases ");
}
}1234512345
Luego, cambié el directorio actual de cmd a F. :\Program Files\ directorio java (a través del comando cd) y luego use el comando javac para compilarlo. Archivo Java, como se muestra a continuación:
Como se puede ver en la imagen de arriba, el comando javac se puede usar normalmente (si no hay salida, significa que se ha compilado correctamente), porque el javac que ejecuta este comando también existe en el directorio bin de la ruta de instalación de JDK, y este directorio se ha agregado a la variable del sistema Ruta, por lo que cmd puede reconocer este comando. En este momento, puede ver que hay un archivo testClassPath.class adicional en el directorio F:\Program Files\Java. Sin embargo, al ejecutar este archivo de clase, se informa un error. CLASSPATH resulta útil en este momento, al igual que el método para configurar la variable del sistema PATH en la Sección 1.2. Aquí se agrega al final de la ruta de clase (si no hay una opción de ruta de clase en la lista de variables del sistema, haga clic en Nuevo y agregue la ruta). . , el punto y coma en inglés significa separación de la ruta existente anterior y el siguiente punto significa el significado del directorio actual.
En este momento, recuerde abrir una nueva ventana cmd, luego use el comando cd para cambiar al directorio testClassPath.class y luego ejecútelo para obtener el resultado correctamente.
f:\Program Files\Java>java test classpath
Hola, ¡esta es una prueba del classpath! 1212
Por lo tanto, a diferencia de la variable Ruta, cuando Java ejecuta un archivo de clase, el archivo no se encontrará en el directorio actual de forma predeterminada, sino que solo se encontrará en el directorio especificado por CLASSPATH. Si el archivo de clase existe en el directorio especificado por CLASSPATH, el archivo de clase se ejecutará. Si no existe, se informará un error (hay una manera de encontrar el archivo de clase en el directorio actual porque la ruta actual ha sido. agregado a la variable del sistema CLASSPATH).
Los métodos anteriores para especificar la variable del sistema CLASSPATH se escriben directamente en la variable del sistema para evitar interferencias (por ejemplo, existen varios archivos de clase con el mismo nombre en varias rutas, estas rutas se agregan a. la variable del sistema CLASSPATH, porque cuando se buscan archivos de clase, la ruta en la variable del sistema CLASSPATH se escanea de izquierda a derecha, por lo que cuando se utiliza el método java testClassPath, el archivo de clase correspondiente se ejecuta en la ruta más a la izquierda en la variable del sistema ClassPath, que Obviamente no es nuestro El resultado deseado, por lo tanto, en IDE como Eclipse, no es necesario configurar manualmente la variable del sistema CLASSPATH. Solo necesita configurar la variable del sistema CLASSPATH específica del programa actual y el funcionamiento de otros programas. no se verá afectado.
1.3.4 JAVA_HOME
JAVA_HOME no es un parámetro requerido por JAVA. Algunas otras herramientas de terceros necesitan este parámetro para configurar sus propios parámetros. El significado no es más que decirle a ese software que mi JDK está instalado en este directorio. Si desea utilizar mi programa Java, simplemente búsquelo en mi directorio JAVA_HOME es el nombre de la ruta de instalación del JDK. instalado en el directorio F:\Program Files\Java\JDK 1. 8. 0_101 (Tenga en cuenta que el directorio bin en este directorio es el valor que se agregará a la variable del sistema Ruta en la Sección 1.3.2.), luego el valor a agregar a JAVA_HOME es Java\JDK 1.8.0_101. En el futuro, encontrará variables del sistema similares a HOME, que son los directorios de instalación del software
2.
Primero, descargue la versión correspondiente desde Descargar la versión anterior.
Lo que hay que tener en cuenta aquí es que cada versión de Spark debe corresponder a la versión correspondiente de Scala. Por ejemplo, el Spark 1.6.2 que uso aquí solo puede usar varias versiones de Scala 2.10. Actualmente, el último Spark 2.0 solo puede usar todas las versiones de Scala 2.11, por lo que al descargarlo, debe prestar atención a la correspondencia entre esta versión de Scala y la versión de Spark. Estoy usando Scala 2.10.6 aquí, que es aplicable a todas las versiones de Spark desde 1.3.0 hasta Spark 1.6.2. Después de seleccionar la versión que se adapta a sus necesidades al descargar versiones anteriores en la página de versión, ingresará a la página de descarga específica para esa versión, como se muestra en la siguiente figura. Recuerde descargar la versión binaria de Scala, haga clic en la flecha en la imagen para descargar.
Después de descargar el archivo msi de Scala, puede hacer doble clic en él para instalarlo. Una vez que la instalación sea exitosa, el directorio bin de Scala se agregará a la variable del sistema PATH de forma predeterminada (de lo contrario, de manera similar a los pasos de instalación de JDK, agregue la ruta del directorio bin en el directorio de instalación de Scala a la variable del sistema PATH). Para verificar que la instalación fue exitosa, abra una nueva ventana de cmd, escriba Scala y presione Entrar. Si puede ingresar normalmente al entorno de comando interactivo de Scala, la instalación se realizó correctamente. Como se muestra en la siguiente figura:
Si no se puede mostrar la información de la versión y no se puede acceder a la línea de comando interactiva de Scala, generalmente hay dos posibilidades:
Scala no se puede agregar correctamente en la variable del sistema -Path El nombre de la ruta de la carpeta bin en el directorio de instalación. Simplemente agréguelo de acuerdo con el método introducido en la instalación de JDK.
-Scala no se pudo instalar correctamente, repita los pasos anteriores.
Tres. Instalación de Spark
La instalación de Spark es muy sencilla, simplemente descarga Apache Spark directamente. Hay dos pasos:
Seleccione la versión de Spark correspondiente a la versión de Hadoop, como se muestra en la figura siguiente;
Luego haga clic en spark-1 6. Se indica 2-bin-Hadoop. junto a la flecha en la figura siguiente 2.6 .tgz, espere a que se complete la descarga.
Aquí se utiliza la versión prediseñada, lo que significa que ha sido compilada y se puede descargar y utilizar directamente. Spark también tiene un código fuente que se puede descargar, pero debe compilarse manualmente antes de poder usarse. Después de la descarga, descomprima el archivo (es posible que deba descomprimirlo dos veces). Lo mejor es descomprimirlo en el directorio raíz de un disco y cambiarle el nombre a Spark. Esto es simple y menos propenso a errores. Y cabe señalar que no puede haber espacios en el nombre de la ruta del directorio de archivos de Spark y no se permiten nombres de carpetas similares a "archivos de programa".
Después de la descompresión, básicamente se puede ejecutar bajo la línea de comando cmd. Pero en este momento, cada vez que ejecuta Spark-Shell (la ventana interactiva de la línea de comandos de Spark), primero debe descargar el CD al directorio de instalación de Spark, lo cual es problemático, por lo que puede agregar el directorio bin de Spark a la variable del sistema PATH. . Por ejemplo, la ruta del directorio del contenedor de Spark aquí es D: \ Spark \ bin, entonces solo necesita agregar este nombre de ruta a la ruta de la variable del sistema. El método es consistente con la configuración de las variables de entorno durante el proceso de instalación de JDK. . Después de configurar las variables del sistema, ejecute directamente el comando spark-shell en la línea de comando cmd en cualquier directorio para abrir el modo de línea de comando interactiva de spark.
4. Descarga de HADOOP
Después de configurar las variables del sistema, puede ejecutar Spark-Shell en cmd en cualquier directorio actual, pero es probable que encuentre varios errores en este momento, principalmente porque Spark se basa en Hadoop. necesita configurar un entorno operativo Hadoop. El historial de versiones de Hadoop se puede ver en Versiones de Hadoop. Dado que el Spark descargado se basa en Hadoop 2.6 (en el primer paso de la instalación de Spark, elegimos la versión prediseñada para Hadoop 2.6), elegí la versión 2.6.4 aquí, seleccioné la versión correspondiente y haga clic para ingresar a la página de descarga detallada. . Como se muestra en la imagen a continuación, seleccione la marca roja en la imagen para descargar. La versión src de arriba es el código fuente. Si necesita cambiar Hadoop o desea compilarlo usted mismo, puede descargar el archivo src correspondiente. Lo que descargué aquí es la versión compilada, que es el archivo tar 'Hadoop-2 6 .
Descargue y extraiga al directorio especificado, luego configure HADOOP_HOME como el directorio de descompresión de HADOOP en la sección de variables de entorno, aquí está F:\Program Files\hadoop, y luego configure el directorio bin en este directorio como una variable del sistema, aquí está F:\Program Files\hadoop\bin. Si se agregó la variable del sistema HADOOP_HOME, también puede usar %HADOOP_HOME%\bin para especificarla. Después de configurar estas dos variables del sistema, abra un nuevo cmd e ingrese el comando Spark-Shell directamente.
Generalmente, se puede ejecutar con éxito e ingresar al entorno de línea de comando de Spark, pero algunos usuarios pueden encontrar errores de puntero nulo. En este momento, se debe principalmente a que no hay ningún archivo winutils.exe en el directorio bin de Hadoop. La solución aquí es:
-Vaya a /steveloughran/winutils para seleccionar el número de versión de Hadoop que instaló y luego ingrese al directorio bin para encontrar el archivo winutils.exe. El método de descarga es hacer clic en el archivo winutils.exe. Después de ingresar, hay un botón de descarga en la parte superior derecha de la página, haga clic en descargar.
-Después de descargar winutils.exe, coloque este archivo en el directorio bin de Hadoop. Este directorio es F:\Program Files\hadoop\bin.
-Ingresar en el cmd abierto.
f:\Program Files\Hadoop\bin\winutils.exe chmod 777/tmp/Hive
Esta operación se utiliza para modificar permisos. Tenga en cuenta que la parte anterior F:\Program Files\hadoop\bin debe reemplazarse con la ubicación de su directorio bin instalado real.
Después de completar estos pasos, abra una nueva ventana de cmd. Si es normal, debería poder ejecutar Spark escribiendo directamente spark-shell.
La interfaz de operación normal debe ser como se muestra en la siguiente figura:
Como se puede ver en la figura, después de ingresar directamente el comando Spark-Shell, Spark comienza a iniciarse y a salir. cierta información de registro, la mayor parte de la cual se puede descuidar. Cabe señalar que hay dos oraciones:
El contexto de Spark se proporciona como sc.
El contexto SQL se proporciona como sqlContext.1212
¿Qué son el contexto Spark y el contexto SQL? Hablaremos de ellos más tarde. Ahora solo debemos recordar que Spark realmente comienza con éxito después de ver estas dos declaraciones.
Verbo (abreviatura de verbo) PySpark en Python
Para Spark en Python, similar a Spark-Shell en Scala, también existe PySpark, que también es una herramienta de línea de comandos interactiva. se puede utilizar para realizar algunas depuraciones y pruebas simples en Spark, similar a Spark-Shell. Para aquellos que necesitan instalar Python, se recomienda utilizar Python(x, y). Su ventaja es que integra la mayoría de los kits de herramientas y no es necesario descargarlo por separado. Se puede utilizar directamente después de importarlo y también elimina la necesidad de una engorrosa configuración de variables de entorno. La dirección de descarga es Python(x, y)-Descargas. Después de la descarga, haga doble clic para ejecutar la instalación. Debido a que este tutorial se basa principalmente en Scala, no explicaré demasiado sobre Python.
Resumen del verbo intransitivo
En este punto, el entorno básico de depuración local de Spark ya está disponible, lo cual es suficiente para el aprendizaje preliminar de Spark. Sin embargo, este modelo no es suficiente en el desarrollo real de Spark y se necesita un IDE relativamente fácil de usar para ayudar en el proceso de desarrollo. La próxima conferencia explica principalmente el proceso de configuración de ItelliJ IDEA y Maven.