ОШИБКА Оболочка: не удалось найти двоичный файл winutils в двоичном тракте hadoop python pyharm - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь запустить простое приложение с искрой.Я скачал spark - "pip install spark. И теперь, когда я пытаюсь запустить мой код, возникает ошибка:

ОШИБКА Оболочка: не удалось найти двоичный файл winutils в двоичном пути hadoop java.io.IOException:Не удалось найти исполняемый файл null \ bin \ winutils.exe в двоичных файлах Hadoop в org.apache.hadoop.util.Shell.getQualifiedBinPath (Shell.java:379) в org.apache.hadoop.util.Shell.getWinUtilsPath (Shell.Java: 394) в org.apache.hadoop.util.Shell. (Shell.java:387) в org.apache.hadoop.util.StringUtils. (StringUtils.java:80) в org.apache.hadoop.security.SecurityUtil.getAuthenticationMethod (SecurityUtil.java:611) в org.apache.hadoop.security.UserGroupInformation.initialize (UserGroupInformation.java:273) в org.apache.hadoop.security.UserGroupInformation.ensureInitialized (UserGroupInformation.java:26).apache.hadoop.security.UserGroupInformation.loginUserFromSubject (UserGroupInformation.java:791) в org.apache.hadoop.security.UserGroupInformation.getLoginUser (UserGroupInformation.java:761) в org.apache.hadoop.security.UserGroupInformation.getCurrentUser (UserGroupInformation.java:634) в org.apache.spark.util.Utils $$ anonfun $ getCurrentUserName $ 1.apply (Utils.scala: 2422) в org.apache.spark.util.Utils $$ anonfun $ getCurrentUserName $ 1.apply (Utils.scala: 2422) в scala.Option.getOrElse (Option.scala: 121) в org.apache.spark.util.Utils $ .getCurrentUserName (Utils.scala: 2422) в org.apache.spark.SecurityManager. (SecurityManager.scala: 79) в org.apache.spark.deploy.SparkSubmit.secMgr $ lzycompute $ 1 (SparkSubmit.scala: 359) в org.apache.spark.deploy.SparkSubmit.org $ apache $ spark $ deploy $ SparkSubmit $$ secMgr $ 1 (SparkSubmit.scala: 359) в org.apache.spark.deploy.SparkSubmit $$ anonfun $ prepareSubmitEnvironment $ 7.apply (SparkSubmit.scala: 367) в организации.apache.spark.deploy.SparkSubmit $$ anonfun $ prepareSubmitEnvironment $ 7.apply (SparkSubmit.scala: 367) в scala.Option.map (Option.scala: 146) в org.apache.spark.deploy.SparkSubmit.prepareSubmitSubmitSubmitEnvironment.scala: 366) в org.apache.spark.deploy.SparkОтправить (SparkSubmit.scala: 143) в org.apache.spark.deploy.SparkSubmit.doSubmit (SparkSubmit.scala: 86) в org.apache.spark.deploy.SparkSubmit $$ anon $ 2.doSubmit (SparkSubmit.scala:924) в org.apache.spark.deploy.SparkSubmit $ .main (SparkSubmit.scala: 933) в org.apache.spark.deploy.SparkSubmit.main (SparkSubmit.scala) 19/05/13 22:57:18 ПРЕДУПРЕЖДЕНИЕNativeCodeLoader: невозможно загрузить библиотеку native-hadoop для вашей платформы ... с использованием встроенных классов java, где это применимо. Использование профиля log4j Spark по умолчанию: org / apache / spark / log4j-defaults.properties Установка уровня журнала по умолчанию "WARN".Чтобы настроить уровень ведения журнала, используйте sc.setLogLevel (newLevel).Для SparkR используйте setLogLevel (newLevel).

Хорошо, я скачал winutils.exe, создал «c: \ winutils \ bin» и скопировал winutils.Также создан путь среды HADOOP_HOME.Но я не могу понять, почему это не работает.Мой код

from pyspark.shell import sc
os.environ ['HADOOP_HOME']= "C:\\winutils"

lines = sc.textFile("ob.txt")
pythonLines = lines .filter(lambda line: "python" in line)
print(pythonLines)

1 Ответ

1 голос
/ 14 мая 2019

Несколько шагов, которые вы должны сделать: (для Hadoop и Spark)

  • Добавить winutils.exe в SPARK_HOME / bin
  • hadoop.dll и winutils.exe в HADOOP_HOME / bin
  • Добавить в системные пути:% HADOOP_HOME% \ bin и% SPARK_HOME% \ bin

Попробуйте использовать findspark (https://github.com/minrk/findspark) и запустите это как тест:

import findspark
findspark.init("C:\Spark\spark-2.3.3-bin-hadoop2.7") #wherever your Spark directory is
import pyspark # only run after findspark.init()
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
df = spark.sql('''select 'spark' as hello ''')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...