Error de spark-shell en Windows: ¿se puede ignorar si no se usa hadoop?

Recibí el siguiente error al encender la chispa. Voy a usar Spark para procesar datos en SQL Server. ¿Puedo ignorar los errores?

java.io.IOException: no se pudo encontrar el archivo ejecutable null \ bin \ winutils.exe en los archivos binarios de Hadoop.

java.lang.IllegalArgumentException: Error al instanciar ‘org.apache.spark.sql.hive.HiveSessionState’

Causado por: java.lang.reflect.InvocationTargetException: java.lang.IllegalArgumentException: Error al instanciar ‘org.apache.spark.sql.hive.HiveExternalCatalog’:

Causado por: java.lang.IllegalArgumentException: Error al crear instancia de ‘org.apache.spark.sql.hive.HiveExternalCatalog’

Causado por: java.lang.IllegalArgumentException: Error al crear instancia de ‘org.apache.spark.sql.hive.HiveExternalCatalog’

Causado por: java.lang.reflect.InvocationTargetException: java.lang.reflect.InvocationTargetException: java.lang.RuntimeException: java.lang.RuntimeException: Error al ejecutar el comando para obtener permisos de archivos: java.io.IOException: (null) entry en cadena de comando: null ls -FC: \ tmp \ hive

Causado por: java.lang.reflect.InvocationTargetException: java.lang.RuntimeException: java.lang.RuntimeException: Error al ejecutar el comando para obtener permisos de archivos: java.io.IOException: (null) entrada en el comando string: null ls -FC : \ tmp \ hive

Causado por: java.lang.RuntimeException: java.lang.RuntimeException: Error al ejecutar el comando para obtener permisos de archivos: java.io.IOException: (null) entrada en el comando string: null ls -FC: \ tmp \ hive

tl; dr Prefieres no hacerlo.

Bueno, puede ser posible , pero dado que acabas de comenzar tu viaje a la tierra de Spark, los esfuerzos no darán resultado.


Windows nunca ha sido un sistema operativo amigable para los desarrolladores y cada vez que le enseño a Spark y usan Windows, winutils.exe que tendremos que pasar por la instalación de winutils.exe pero también muchas veces como trabajar en línea de comandos. .


Instale winutils.exe siguiente manera:

  1. Ejecute cmd como administrador
  2. Descargue el binario winutils.exe del repository https://github.com/steveloughran/winutils (use hadoop-2.7.1 para Spark 2 )
  3. Guarde el archivo binario winutils.exe en un directorio de su elección, por ejemplo, c:\hadoop\bin
  4. Establezca HADOOP_HOME para que refleje el directorio con winutils.exe (sin bin ), por ejemplo, set HADOOP_HOME=c:\hadoop
  5. Establecer variable de entorno PATH para incluir %HADOOP_HOME%\bin
  6. Crear el directorio c:\tmp\hive
  7. Ejecute winutils.exe chmod -R 777 \tmp\hive
  8. Abra spark-shell y ejecute spark.range(1).show para ver un conjunto de datos de una sola fila.