programing

java.io .IO 예외:실행 파일 null\bin\winutils를 찾을 수 없습니다.하둡 이진 파일에서 exe. 윈도우 7에서 이클립스를 스파크합니다.

abcjava 2023. 4. 26. 22:52
반응형

java.io .IO 예외:실행 파일 null\bin\winutils를 찾을 수 없습니다.하둡 이진 파일에서 exe. 윈도우 7에서 이클립스를 스파크합니다.

간한작수수없다습니행할을업단▁a▁simple다를 실행할 수 없습니다.spark에 종사하는.Scala IDE project) 에 된 (Maven project)Windows 7

스파크 코어 종속성이 추가되었습니다.

val conf = new SparkConf().setAppName("DemoDF").setMaster("local")
val sc = new SparkContext(conf)
val logData = sc.textFile("File.txt")
logData.count()

오류:

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>

여기 솔루션에 대한 당신의 문제에 대한 좋은 설명이 있습니다.

  1. https://github.com/steveloughran/winutils 에서 winutils.exe 버전을 다운로드합니다.

  2. 을 합니다.HADOOP_HOMEOS 수준 또는 프로그래밍 방식으로 환경 변수:

    System.setProperty("hadoop.home.dir", "full path to the folder with winutils");

  3. 즐거운 시간 되세요.

  1. winutils를 다운로드합니다.exe
  2. 를 만듭니다.C:\winutils\bin
  3. 알았다.winutils.exe東京의 C:\winutils\bin
  4. 설정하기HADOOP_HOMEC:\winutils

다음을 수행합니다.

  1. 성을 합니다.bin폴더를 선택합니다(3단계에서 사용).

  2. winutils를 다운로드합니다.exe를 실행하여 bin 디렉토리에 배치합니다.

  3. 이제추를 추가합니다.System.setProperty("hadoop.home.dir", "PATH/TO/THE/DIR");당신의 코드로.

1) Download winutils.exe from https://github.com/steveloughran/winutils 
2) Create a directory In windows "C:\winutils\bin
3) Copy the winutils.exe inside the above bib folder .
4) Set the environmental property in the code 
  System.setProperty("hadoop.home.dir", "file:///C:/winutils/");
5) Create a folder "file:///C:/temp" and give 777 permissions.
6) Add config property in spark Session ".config("spark.sql.warehouse.dir", "file:///C:/temp")"

또다운할수있다니습드는을 다운로드할 수 .winutils.exeGIT 허브에서:

https://github.com/steveloughran/winutils/tree/master/hadoop-2.7.1/bin

체교다를 hadoop-2.7.1을 원는버전로파저일장다니합을으하다▁the▁with▁in니▁file에 배치합니다.D:\hadoop\bin

컴퓨터의 환경 변수 설정에 대한 액세스 권한이 없는 경우 아래 행을 코드에 추가하기만 하면 됩니다.

System.setProperty("hadoop.home.dir", "D:\\hadoop");

Windows 10에서는 두 개의 다른 인수를 추가해야 합니다.

시스템 변수 아래에 새 변수와 값을 - HADOOP_HOME 및 경로(예: c:\Hadoop)로 추가합니다.

새 항목을 "Path" 변수에 "C:"로 추가/추가합니다.\Hadoop\bin".

위의 것들이 저에게 효과가 있었습니다.

아래 호를 보면.

오류 셸: 하둡 이진 경로에서 winutils 이진을 찾지 못했습니다.

java.io .IO 예외:실행 파일 null\bin\winutils를 찾을 수 없습니다.실행할 수 있습니다.

그런 다음 다음 단계를 수행합니다.

  1. http://public-repo-1.hortonworks.com/hdp- win-alpha/winutils.exe에서 winutils.exe를 다운로드합니다.
  2. 이 폴더를 bin 폴더 아래에 보관합니다. 예를 들어, 사용자가 만든 폴더입니다.C:\하둡\bin
  3. 프로그램에서 SparkContext 또는 SparkConf System을 만들기 전에 다음 줄을 추가합니다.setProperty("hadoop.home.dir", "C:\Hadoop");

유닛 테스트를 진행하는 동안 같은 문제가 발생했습니다.다음과 같은 해결 방법을 찾았습니다.

다음 해결 방법을 사용하여 이 메시지를 삭제할 수 있습니다.

    File workaround = new File(".");
    System.getProperties().put("hadoop.home.dir", workaround.getAbsolutePath());
    new File("./bin").mkdirs();
    new File("./bin/winutils.exe").createNewFile();

출처: https://issues.cloudera.org/browse/DISTRO-544

Hadoop 설정_시스템 속성의 홈 환경 변수가 작동하지 않았습니다.하지만 이는 다음과 같습니다.

  • Hadoop 설정_Eclipse Run Configurations(이클립스 실행 구성) 환경 탭의 홈입니다.
  • 여기에서 'Windows 환경 설정'을 따릅니다.
  • winutils를 다운로드합니다.exe 및 hadoop.dll을 Windows 컴퓨터에 저장합니다.
  • C 폴더 만들기:\hadoop\bin
  • 와이너틸 복사.새로 생성된 하둡 폴더의 exe 및 hadoop.dll
  • 설정 환경 변수 HADOOP_HOME=C:\hadoop

환경 변수를 언급하는 것 외에도HADOOP_HOME로서 창밖에.C:\winutils또한 사용자가 시스템의 관리자인지 확인해야 합니다.그렇지 않은 경우 환경 변수를 추가하면 관리 자격 증명을 입력하라는 메시지가 표시됩니다.USERvariables)를 선택하면 관리자가 명령 프롬프트를 시작하면 이러한 변수를 적용할 수 있습니다.

또한 Java 1.8.0_121, Spark spark-1.6.1-bin-hadoop 2.6, Windows 10 및 Eclipse Oxy에 대해서도 비슷한 문제에 직면했습니다.이전 게시물에서 언급한 것처럼 HADO_HOME을 시스템 변수로 사용하여 이클립스에서 WordCount.java를 실행했을 때 작동하지 않았습니다. 저에게 효과가 있었던 것은 -입니다.

System.setProperty("hadoop.home.dir", "PATH/TO/THE/DIR");

PATH/TO/THE/DIR/bin=winutils.이클립스 내에서 Java 애플리케이션으로 실행할 것인지 아니면 cmd에서 스파크-submit을 사용하여 실행할 것인지를 exe

spark-flash --class groupid.artificitid.classname --master local[2] /maven을 사용하여 만든 jar 파일의 /path 데모 파일의 /path to output directory 명령

예: Spark/home/location/bin의 bin 위치로 이동하여 언급한 대로 spark-submit을 실행합니다.

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\words 개수입니다.txt

그건 까다롭군요...저장 편지는 대문자여야 합니다.예를 들어 "C:\..."

언급URL : https://stackoverflow.com/questions/35652665/java-io-ioexception-could-not-locate-executable-null-bin-winutils-exe-in-the-ha

반응형