Cómo configurar el entorno Spark en Windows
1. Instalación de JDK y configuración de variables de entorno
1.1 Instalación de 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 ingrese a la página Después de eso, la última versión de JDK se mostrará de forma predeterminada, como se muestra en la figura siguiente. La última versión es JDK 8. La dirección más detallada es Descargas del kit de desarrollo Java SE 8:
. Los dos usuarios en la figura anterior Se puede hacer clic en los lugares marcados en rojo. 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, Incluye principalmente las versiones 8u101 y 8u102, la descripción oficial proporcionada 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 8u102 es. una actualización del conjunto de parches, que incluye todo el 8u101 más funciones adicionales (descritas en las notas de la versión) ”
Es decir, Java recomienda que todos los desarrolladores actualicen a JDK 8u101 desde versiones anteriores, mientras que JDK 8u102. incluye los 101 Además de las funciones, hay algunas otras funciones. En cuanto a la elección de la versión, elíjala usted mismo. De hecho, para los desarrolladores comunes, no hay mucha diferencia. Estoy usando la versión JDK 8u101.
Después de seleccionar la versión 8u101, elija su plataforma de desarrollo correspondiente. Como mi máquina es de 64 bits, elijo aquí la versión de Windows de 64 bits. 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 de JDK, también puede descargar versiones históricas de JDK desde Oracle Java Archive, pero la recomendación oficial es solo para pruebas.
La instalación de JDK en Windows es muy simple. Siga el método normal de instalación del software para hacer doble clic en el archivo exe descargado y luego configure su propio directorio de instalación (el directorio de instalación es necesario 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: haga clic con el botón derecho en la computadora en el escritorio - Propiedades - Configuración avanzada del sistema y luego. en las propiedades del sistema, seleccione Avanzado - Variables de entorno, luego busque la variable "Ruta" en las variables del sistema y seleccione el botón "Editar". Aparecerá un cuadro de diálogo en el que 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:\Program Files\Java\jdk1.8.0_101\bin, así que agregue esto al nombre de la ruta y tenga cuidado de separarlo con un inglés. punto y coma ";". Después de configurar de esta manera, puede ejecutarlo en la ventana de línea de comando cmd abierta en cualquier directorio
java -version11
Observe si se puede generar la información relevante de la versión de Java. se puede generar. Esto significa que el paso de instalación del JDK está completo.
El proceso completo se muestra en la siguiente figura (la configuración de variables del sistema para instalaciones de software posteriores se encuentran en este proceso):
1.3 Algunas digresiones
Aquí hay dos digresiones. Si no le importa, puede omitir esto y no afectará los pasos de instalación posteriores.
Al instalar software, creo que se ha encontrado con variables de entorno y variables de sistema en muchas ocasiones, por lo que aquí presentamos los significados específicos de parámetros 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 específica del sistema operativo. system Funciona para todos los usuarios;
La configuración de variables de usuario solo funciona para el usuario actual
Si no está particularmente familiarizado con estos conceptos, se recomienda leer lo siguiente. puntos primero, y luego Mire nuevamente estas tres oraciones.
1.3.2 RUTA
Esta es la variable del sistema configurada en el paso anterior. Le indica al sistema operativo dónde encontrar la ruta de ejecución de Java.exe. ventana de línea de comando, Al emitir el siguiente comando,
java -version11
el sistema operativo se sorprenderá primero. ¿Qué diablos significa "java"? Sin embargo, las quejas son quejas. Aún queda trabajo por hacer, así que Yoyo recordé las tres palabras que dijo el padre de Gates:
Cuando no puedes entender un comando en la ventana de la línea de comandos, primero vas al directorio actual donde te encuentras. y búsquelo. ¿El programa .exe para este comando? Si lo hay, utilícelo para iniciar la ejecución;
Si no, no se rinda. Recuerde buscar esos directorios en la variable del sistema Ruta. Si los encuentra, inicie y ejecute el comando. p>
Si aún no ha encontrado los dos lugares anteriores, sea coqueto e informe su error.
Entonces, el propósito de agregar la carpeta bin en el directorio de instalación de JDK a la variable del sistema Ruta es indicarle al sistema operativo: Si no se puede encontrar java.exe en el directorio actual, vaya a la Búsqueda del sistema Ruta. las rutas en la variable 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 en la carpeta bin...
Si simplemente ejecuta el comando java en la ventana de la línea de comandos, no necesita configurar configura el sistema. Variables, pero cada vez que ejecuta un comando java en la ventana de línea de comando, debe traer una larga lista de nombres de ruta para especificar directamente la ubicación de java.exe, como se muestra a continuación.
C:\Users\weizierxugt;F:\Program Files\Java\jdk1.8.0_101\bin\java.exe -version
'F:\Program' no es un comando interno o externo, ni un programa operable
o archivo por lotes.
123123
Nota: El motivo del error informado 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. entonces comillas dobles, como sigue:
C:\Users\weizierxugt; "F:\Program Files"\Java\jdk1.8.0_101\bin\java.exe -version
versión de Java " 1.8.0_101"
Java(TM) SE Runtime Environment (compilación 1.8.0_101-b13)
Java HotSpot(TM) VM de servidor de 64 bits (compilación 25.101) -b13, modo mixto)12341234
1.3.3 CLASSPATH
CLASSPATH le dice a Java en qué directorio encontrar el archivo de clase cuando ejecuta un archivo de clase compilado, como su programa. Se utiliza el paquete Jar (el paquete Jar contiene archivos de clase compilados), por lo que al ejecutar, Java necesita encontrar este paquete Jar. Desde el directorio especificado por CLASSPATH, comience a buscar de izquierda a derecha (los nombres de las rutas separados por punto y coma) hasta que encuentre el archivo de clase con el nombre que especificó. Si no se encuentra, 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 usando el Bloc de notas que viene con Windows y lo guardé como un archivo testClassPath.java (tenga en cuenta que el el nombre del sufijo debe cambiarse) a java), el contenido es el siguiente:
public class testClassPath{
public static void main(String[] args){
System.out.println(" ¡Hola, esta es una prueba en CLASSPATH!");
}
}1234512345
Luego, cambié el directorio actual de cmd al directorio (a través del comando cd) F:\Program Files\Java y luego use el comando javac para compilar el archivo .java, como se muestra en la siguiente figura:
Como pueda Como se muestra en la figura anterior, el comando javac se puede usar normalmente (si no hay salida, significa que se ha compilado correctamente. Esto se debe a que el javac.exe que ejecuta este comando también existe en el directorio bin bajo la instalación de JDK). ruta, y hemos agregado este directorio a la variable del sistema Ruta, para que cmd pueda conocer 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. En este momento, CLASSPATH resulta útil. Es el mismo método para configurar la variable del sistema Ruta en la Sección 1.2. Aquí está en CLASSPATH (si no hay una opción CLASSPATH en la lista de variables del sistema, haga clic en Nuevo y luego. agregue la ruta). Agregue ;. arriba, el punto y coma en inglés indica la separación de la ruta existente anterior y el pequeño punto al final indica el significado del directorio actual.
En este momento, recuerde abrir una nueva ventana cmd, luego use el comando cd para cambiar al directorio donde se encuentra testClassPath.class y luego ejecútelo nuevamente para obtener el resultado correctamente.
F:\Program Files\Javagt;java testClassPath
Hola, ¡esta es una prueba en CLASSPATH!1212
Por lo tanto, a diferencia de la variable Path, cuando Java Al ejecutar un determinado archivo de clase, no busca de forma predeterminada el archivo en el directorio actual primero, sino que solo busca el archivo de clase en el directorio especificado por CLASSPATH. Si existe dicho archivo de clase en el directorio especificado por CLASSPATH, entonces. Comience a ejecutar, si no, se informará un error (aquí, vaya al directorio actual para encontrar este archivo de clase, porque la ruta actual se ha agregado a la variable del sistema CLASSPATH a través de .).
Los métodos para especificar la variable del sistema CLASSPATH mencionados anteriormente 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, y estas rutas tienen. Se agregó 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 usa el método java testClassPath para ejecutar, se ejecuta la ubicación en la variable del sistema CLASSPATH. la ruta de la izquierda, el archivo de clase correspondiente, y este obviamente no es el resultado que queremos), por lo que en IDE como Eclipse, etc., no es necesario configurar manualmente la variable del sistema CLASSPATH, solo configurar el programa actual variable de sistema CLASSPATH específica, de modo que no afecte el funcionamiento de otros programas.
1.3.4 JAVA_HOME
JAVA_HOME no es un parámetro requerido por Java en sí, pero otras herramientas de terceros necesitan este parámetro para configurar sus propios parámetros. El significado de su existencia no es nada. más que decirle a ese software que mi JDK está instalado en este directorio. Si desea utilizar mi programa Java, simplemente vaya directamente a mi directorio para encontrarlo, y JAVA_HOME es el nombre de la ruta de instalación del JDK. Por ejemplo, mi JDK está instalado en el directorio F:\Program Files\Java\jdk1.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 JAVA_HOME necesita El valor agregado es F:\Program Files\Java\jdk1.8.0_101. En el futuro, se encontrarán variables del sistema similares a HOME, que son los directorios de instalación del software.
2. Instalación de Scala
Primero descargue la versión correspondiente desde DESCARGAR VERSIONES ANTERIORES. Cabe señalar aquí que cada versión de Spark debe corresponder a la versión de Scala correspondiente, como The. Spark 1.6.2 que estoy usando aquí solo puede usar varias versiones de Scala 2.10. El último Spark 2.0 solo puede usar varias versiones de Scala 2.11, por lo que al descargar, debe tener en cuenta que esta versión de Scala corresponde a la versión de Spark. Actualmente estoy usando Scala 2.10.6, que es compatible con las versiones de Spark desde 1.3.0 hasta Spark 1.6.2.
Después de seleccionar una versión que se adapte a sus necesidades en la página de versión DESCARGAR VERSIONES ANTERIORES, ingresará a la página de descarga específica para esa versión, como se muestra en la figura a continuación. Recuerde descargar la versión binaria de Scala, haga clic en la flecha en la figura. para descargar: p>
Después de descargar el archivo Scala msi, 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 en orden). Para verificar si la instalación se realizó correctamente, abra una nueva ventana de cmd, ingrese scala y presione Entrar. Si puede ingresar al entorno de comando interactivo de Scala normalmente, 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 ingresar la línea de comando interactiva de Scala, generalmente hay dos posibilidades:
- La variable del sistema Path no es correcto. Agregue el nombre de la ruta de la carpeta bin en el directorio de instalación de Scala y siga el método introducido en la instalación de JDK.
- Scala no se puede instalar correctamente, simplemente repita los pasos anteriores.
3. Instalación de Spark
La instalación de Spark es muy sencilla, sólo tienes que ir a Descargar Apache Spark. Hay dos pasos:
Seleccione la versión de Spark correspondiente a la versión de Hadoop, como se muestra en la siguiente figura;
Luego haga clic en spark-1.6.2-bin señalado por la flecha en La siguiente figura es -hadoop2.6.tgz, solo espere a que se complete la descarga.
La versión utilizada aquí es la versión prediseñada, lo que significa que ha sido compilada. Puedes descargarla y usarla directamente. Spark también tiene un código fuente que puedes descargar, pero debes hacerlo manualmente. compílelo antes de poder usarlo. Una vez completada la descarga, descomprima el archivo (es posible que deba descomprimirlo dos veces). Es mejor descomprimirlo en el directorio raíz de un disco y cambiarle el nombre a Spark. Es simple y menos propenso a errores. Y cabe señalar que no debe haber espacios en el nombre de la ruta del directorio de archivos de Spark. No se permiten nombres de carpetas similares a "Archivos de programa".
Después de la descompresión, básicamente puedes ejecutarlo 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 acceder 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 bin de Spark aquí es D: \ Spark \ bin, luego simplemente agregue este nombre de ruta a la RUTA de la variable del sistema. El método es el mismo que el de la configuración de la variable de entorno durante el proceso de instalación de JDK. las variables del sistema, ejecute directamente el comando spark-shell en la línea de comando cmd en cualquier directorio para habilitar el modo de línea de comando interactiva de Spark.
Cuatro. 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. Esto se debe principalmente a que Spark se basa en Hadoop. , por lo que también es necesario configurar un entorno operativo Hadoop.
Puede ver varias versiones históricas de Hadoop en Lanzamientos de Hadoop. Dado que Spark descargado se basa en Hadoop 2.6 (en el primer paso de la instalación de Spark, elegimos Prediseñado para Hadoop 2.6), elegí la versión 2.6 aquí. la versión correspondiente y haga clic para ingresar a la página de descarga detallada, como se muestra en la figura a continuación. Seleccione la marca roja en la figura para descargar. La versión src anterior es el código fuente. hágalo usted mismo Puede descargar el archivo src correspondiente. Lo que descargué aquí es la versión compilada, que es el archivo 'hadoop-2.6.4.tar.gz' en la imagen.
Descárguelo y extráigalo al directorio especificado, luego configure HADOOP_HOME como el directorio de descompresión de Hadoop en la sección de variables de entorno, en mi caso, es F:\Program Files\hadoop, y luego configure el contenedor. directorio en este directorio a la variable del sistema En PATH, aquí está F:\Program Files\hadoop\bin. Si se ha agregado la variable del sistema HADOOP_HOME, también puede usar HADOOP_HOME\bin para especificar el nombre de la ruta de la carpeta bin. Después de configurar estas dos variables del sistema, abra un nuevo cmd e ingrese el comando Spark-Shell directamente.
En circunstancias normales, puede ejecutarse correctamente e ingresar al entorno de línea de comandos de Spark, pero algunos usuarios pueden encontrar errores de puntero nulo. En este momento, la causa principal es que no hay ningún archivo winutils.exe en el directorio bin de Hadoop. La solución aquí es:
- Vaya a /steveloughran/winutils y seleccione el número de versión de Hadoop que instaló, luego ingrese al directorio bin y busque el archivo winutils.exe. Para descargar, haga clic en winutils.exe. archivo e ingrese Luego hay un botón Descargar en la parte superior derecha de la página, haga clic para descargar.
- Después de descargar winutils.exe, coloque este archivo en el directorio bin de Hadoop. Aquí está F:\Program Files\hadoop\bin.
- Ingrese 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 real del directorio bin que instaló.
Después de estos pasos, abra una nueva ventana de cmd nuevamente. Si es normal, debería poder ejecutar Spark escribiendo directamente spark-shell.
La interfaz de ejecución normal debería ser como se muestra a continuación:
Como puede ver en la imagen, después de ingresar directamente el comando spark-shell, Spark comienza a iniciarse y genera información de registro. , la mayoría de los cuales se pueden ignorar. Es necesario tener en cuenta dos oraciones:
Contexto Spark disponible como sc.
Contexto SQL disponible como sqlContext.1212
Spark ¿Qué son el contexto y el contexto SQL? Hablaremos de ellos más adelante. Ahora solo debe recordar que Spark solo puede comenzar con éxito cuando vea estas dos declaraciones.
5. 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. Depuración y prueba simples en Spark, que es 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 paquetes de herramientas. No es necesario descargarlos por separado y se puede importar directamente para su uso. También ahorra el tedioso trabajo para configurar las variables de entorno, la dirección de descarga es Python (x, y) - Descargas. Una vez completada la descarga, haga doble clic para ejecutar la instalación. Debido a que este tutorial se centra principalmente en Scala, no explicaré demasiado sobre Python.
6. Resumen
En este punto, tiene el entorno de depuración local básico de Spark, que es suficiente para el aprendizaje preliminar de Spark. Sin embargo, este modelo todavía 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 explicará principalmente el proceso de configuración de ItelliJ IDEA y Maven.