Je ne peux pas exécuter un spark
travail simple dans Scala IDE
(projet Maven spark) installé surWindows 7
La dépendance du noyau Spark a été ajoutée.
val conf = new SparkConf().setAppName("DemoDF").setMaster("local")
val sc = new SparkContext(conf)
val logData = sc.textFile("File.txt")
logData.count()
Erreur:
16/02/26 18:29:33 INFO SparkContext: Created broadcast 0 from textFile at FrameDemo.scala:13
16/02/26 18:29:34 ERROR Shell: Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:278)
at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:300)
at org.apache.hadoop.util.Shell.<clinit>(Shell.java:293)
at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:76)
at org.apache.hadoop.mapred.FileInputFormat.setInputPaths(FileInputFormat.java:362)
at <br>org.apache.spark.SparkContext$$anonfun$hadoopFile$1$$anonfun$33.apply(SparkContext.scala:1015)
at org.apache.spark.SparkContext$$anonfun$hadoopFile$1$$anonfun$33.apply(SparkContext.scala:1015)
at <br>org.apache.spark.rdd.HadoopRDD$$anonfun$getJobConf$6.apply(HadoopRDD.scala:176)
at <br>org.apache.spark.rdd.HadoopRDD$$anonfun$getJobConf$6.apply(HadoopRDD.scala:176)<br>
at scala.Option.map(Option.scala:145)<br>
at org.apache.spark.rdd.HadoopRDD.getJobConf(HadoopRDD.scala:176)<br>
at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:195)<br>
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239)<br>
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237)<br>
at scala.Option.getOrElse(Option.scala:120)<br>
at org.apache.spark.rdd.RDD.partitions(RDD.scala:237)<br>
at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35)<br>
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239)<br>
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237)<br>
at scala.Option.getOrElse(Option.scala:120)<br>
at org.apache.spark.rdd.RDD.partitions(RDD.scala:237)<br>
at org.apache.spark.SparkContext.runJob(SparkContext.scala:1929)<br>
at org.apache.spark.rdd.RDD.count(RDD.scala:1143)<br>
at com.org.SparkDF.FrameDemo$.main(FrameDemo.scala:14)<br>
at com.org.SparkDF.FrameDemo.main(FrameDemo.scala)<br>
eclipse
scala
apache-spark
Elfique_Lame
la source
la source
C:\winutils\bin
winutils.exe
intérieurC:\winutils\bin
HADOOP_HOME
surC:\winutils
la source
Suivez ceci:
Créez un
bin
dossier dans n'importe quel répertoire (à utiliser à l'étape 3).Téléchargez winutils.exe et placez-le dans le répertoire bin.
Maintenant, ajoutez
System.setProperty("hadoop.home.dir", "PATH/TO/THE/DIR");
votre code.la source
si nous voyons le problème ci-dessous
puis suivez les étapes
la source
la source
Sous Windows 10, vous devez ajouter deux arguments différents.
(1) Ajoutez la nouvelle variable et la nouvelle valeur comme - HADOOP_HOME et le chemin (c'est-à-dire c: \ Hadoop) sous Variables système.
(2) Ajouter / ajouter une nouvelle entrée à la variable "Chemin" comme "C: \ Hadoop \ bin".
Ce qui précède a fonctionné pour moi.
la source
J'ai eu le même problème lors de l'exécution de tests unitaires. J'ai trouvé cette solution de contournement:
La solution de contournement suivante permet de se débarrasser de ce message:
de: https://issues.cloudera.org/browse/DISTRO-544
la source
Vous pouvez également télécharger
winutils.exe
depuis GITHub:https://github.com/steveloughran/winutils/tree/master/hadoop-2.7.1/bin
remplacez
hadoop-2.7.1
par la version souhaitée et placez le fichier dansD:\hadoop\bin
la source
La définition de la variable d'environnement Hadoop_Home dans les propriétés système ne fonctionnait pas pour moi. Mais cela a fait:
la source
En plus de mentionner votre variable d'environnement pour
HADOOP_HOME
dans windows asC:\winutils
, vous devez également vous assurer que vous êtes l'administrateur de la machine. Si ce n'est pas le cas et l'ajout de variables d'environnement vous demande les informations d'identification d'administrateur (même sous lesUSER
variables), ces variables seront applicables une fois que vous aurez démarré votre invite de commande en tant qu'administrateur.la source
J'ai également rencontré le problème similaire avec les détails suivants Java 1.8.0_121, Spark spark-1.6.1-bin-hadoop2.6, Windows 10 et Eclipse Oxygen.Lorsque j'ai exécuté mon WordCount.java dans Eclipse en utilisant HADOOP_HOME comme variable système comme mentionné dans le post précédent, cela n'a pas fonctionné, ce qui a fonctionné pour moi est -
System.setProperty ("hadoop.home.dir", "CHEMIN / VERS / LE / DIR");
PATH / TO / THE / DIR / bin = winutils.exe si vous exécutez dans Eclipse en tant qu'application Java ou par spark-submit à partir de cmd en utilisant
spark-submit --class groupid.artifactid.classname --master local [2] / chemin vers le fichier jar créé à l'aide de maven / chemin vers un fichier de test de démonstration / chemin vers la commande de répertoire de sortie
Exemple: accédez à l'emplacement bin de Spark / home / location / bin et exécutez le spark-submit comme mentionné,
D: \ BigData \ spark-2.3.0-bin-hadoop2.7 \ bin> spark-submit --class com.bigdata.abdus.sparkdemo.WordCount --master local [1] D: \ BigData \ spark-quickstart \ target \ spark-quickstart-0.0.1-SNAPSHOT.jar D: \ BigData \ spark-quickstart \ wordcount.txt
la source
C'est une question délicate ... Votre lettre de stockage doit être capicale. Par exemple " C : \ ..."
la source