Não consigo executar um spark
trabalho simples em Scala IDE
(projeto Maven Spark) instalado emWindows 7
A dependência do núcleo do Spark foi adicionada.
val conf = new SparkConf().setAppName("DemoDF").setMaster("local")
val sc = new SparkContext(conf)
val logData = sc.textFile("File.txt")
logData.count()
Erro:
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
Elvish_Blade
fonte
fonte
C:\winutils\bin
winutils.exe
dentroC:\winutils\bin
HADOOP_HOME
paraC:\winutils
fonte
Siga isso:
Crie uma
bin
pasta em qualquer diretório (para ser usado na etapa 3).Baixe winutils.exe e coloque-o no diretório bin.
Agora adicione
System.setProperty("hadoop.home.dir", "PATH/TO/THE/DIR");
seu código.fonte
se vemos o problema abaixo
então faça os seguintes passos
fonte
fonte
No Windows 10 - você deve adicionar dois argumentos diferentes.
(1) Adicione a nova variável e valor como - HADOOP_HOME e caminho (ou seja, c: \ Hadoop) em Variáveis do sistema.
(2) Adicione / anexe uma nova entrada à variável "Caminho" como "C: \ Hadoop \ bin".
O acima funcionou para mim.
fonte
Tive o mesmo problema ao executar testes de unidade. Eu encontrei esta solução alternativa:
A seguinte solução alternativa permite eliminar esta mensagem:
de: https://issues.cloudera.org/browse/DISTRO-544
fonte
Você também pode fazer o download
winutils.exe
no GITHub:https://github.com/steveloughran/winutils/tree/master/hadoop-2.7.1/bin
substitua
hadoop-2.7.1
pela versão desejada e coloque o arquivo noD:\hadoop\bin
fonte
Definir a variável de ambiente Hadoop_Home nas propriedades do sistema não funcionou para mim. Mas isso fez:
fonte
Além de mencionar sua variável de ambiente para
HADOOP_HOME
no windows asC:\winutils
, você também precisa se certificar de que é o administrador da máquina. Caso contrário, a adição de variáveis de ambiente solicitará credenciais de administrador (mesmo emUSER
variáveis), então essas variáveis serão aplicáveis assim que você iniciar seu prompt de comando como administrador.fonte
Também enfrentei o problema semelhante com os seguintes detalhes Java 1.8.0_121, Spark spark-1.6.1-bin-hadoop2.6, Windows 10 e Eclipse Oxygen. Quando executei meu WordCount.java no Eclipse usando HADOOP_HOME como uma variável de sistema conforme mencionado no post anterior, não funcionou, o que funcionou para mim é -
System.setProperty ("hadoop.home.dir", "PATH / TO / THE / DIR");
PATH / TO / THE / DIR / bin = winutils.exe se você executar no Eclipse como um aplicativo Java ou por spark-submit do cmd usando
spark-submit --class groupid.artifactid.classname --master local [2] / caminho para o arquivo jar criado usando maven / caminho para um arquivo de teste de demonstração / caminho para o comando do diretório de saída
Exemplo: Vá para o local do depósito de Spark / home / location / bin e execute o envio do spark conforme mencionado,
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
fonte
Essa é complicada ... Sua carta de armazenamento deve ser capical. Por exemplo " C : \ ..."
fonte