java.io.IOException: হাদোপ বাইনারিগুলিতে এক্সিকিউটেবল নাল \ বিন \ winutils.exe সনাক্ত করতে পারেনি। উইন্ডোজ on-তে সূর্যগ্রহণ শুরু করুন


92

আমি (ম্যাভেন স্পার্ক প্রকল্প) ইনস্টল থাকা কোনও সাধারণ sparkকাজ চালাতে পারছি নাScala IDEWindows 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>

উত্তর:


142

সমাধান সহ আপনার সমস্যার একটি ভাল ব্যাখ্যা এখানে

  1. থেকে ডাউনলোড winutils.exe http://public-repo-1.hortonworks.com/hdp-win-alpha/winutils.exe
  2. ওএস স্তরে বা প্রোগ্রামমেটিকভাবে আপনার HADOOP_Home পরিবেশের পরিবর্তনশীল সেটআপ করুন:

    System.setProperty ("hadoop.home.dir", "উইন্টিলস সহ ফোল্ডারের সম্পূর্ণ পথ");

  3. উপভোগ করুন


14
আমাকে বিন ফোল্ডারের পরিবর্তে হ্যাডোপ ফোল্ডারে HADOOP_Home সেট করতে হবে।
স্ট্যানলে

4
এছাড়াও, স্পার্কটি সংকলিত হ্যাডুপের সংস্করণটির উপর ভিত্তি করে সঠিক winutils.exe ডাউনলোড করার বিষয়টি নিশ্চিত করুন (সুতরাং উপরের লিঙ্কটি অগত্যা নয়)। অন্যথায়, ব্যথা অপেক্ষা করছে :)
এনপি 3

System.setProperty ("hadoop.home.dir", "C: \\ hadoop-2.7.1 \\")
শ্যাম গুপ্ত

4
হ্যাঁ ঠিক যেমন @ স্ট্যানলি বলেছেন। বিন ফোল্ডারের পরিবর্তে হ্যাডোপ ফোল্ডারে HADOOP_Home সেটআপ করার কাজ করেছে।
জাজ 13

@ এনপি 3 এবং আপনি কীভাবে সেই সংস্করণটি জানেন? আমি সর্বশেষ পাইপপার্ক ব্যবহার করছি। ধন্যবাদ,
জেডিপিচাম

66
  1. Winutils.exe ডাউনলোড করুন
  2. বলুন, ফোল্ডার তৈরি করুন C:\winutils\bin
  3. winutils.exeভিতরে অনুলিপি করুনC:\winutils\bin
  4. সেট এনভায়রনমেন্ট ভেরিয়েবল HADOOP_HOMEথেকেC:\winutils

এছাড়াও, আপনার যদি একটি সেমিডি লাইন খোলা থাকে তবে ভেরিয়েবলগুলি প্রভাবিত হওয়ার জন্য এটি পুনরায় চালু করুন।
Eych

26

এটি অনুসরণ করুন:

  1. যে binকোনও ডিরেক্টরিতে একটি ফোল্ডার তৈরি করুন (৩ য় ধাপে ব্যবহৃত হবে)।

  2. Winutils.exe ডাউনলোড করুন এবং এটি বিন ডিরেক্টরিতে রাখুন।

  3. এখন System.setProperty("hadoop.home.dir", "PATH/TO/THE/DIR");আপনার কোড যুক্ত করুন।


4
অনেক ধন্যবাদ, ঠিক আমি যা খুঁজছিলাম
ইউজার 373201

4
এটি লক্ষণীয় যে নির্দেশিত পথে "বিন" ডিরেক্টরি অন্তর্ভুক্ত করা উচিত নয়। উদাহরণস্বরূপ: winutils.exe যে পথটি "D: //Hadoop//bin//winutils.exe" হয়, তবে hadoop.home.dir এর পথটি "D: // Hadoop" হওয়া উচিত
কেশব প্রদীপ রামানাথ

4

যদি আমরা নীচে বিষয়টি দেখতে পাই

ত্রুটি শেল: হ্যাডোপ বাইনারি পথে উইন্টিলস বাইনারি সনাক্ত করতে ব্যর্থ

java.io.IOException: হাদোপ বাইনারিগুলিতে এক্সিকিউটেবল নাল \ বিন \ winutils.exe সনাক্ত করতে পারেনি।

তারপরে নিম্নলিখিত পদক্ষেপগুলি করুন

  1. http://public-repo-1.hortonworks.com/hdp- win-alpha / winutils.exe থেকে winutils.exe ডাউনলোড করুন ।
  2. এবং এটি আপনার জন্য তৈরি করা যেকোন ফোল্ডারের বিন ফোল্ডারের অধীনে রাখুন। সিগ সি: \ হাদুপ \ বিন
  3. এবং প্রোগ্রামে স্পার্ককন্টেক্সট বা স্পার্ককনফ সিস্টেম.সেটপ্রোপার্টি ("hadoop.home.dir", "সি: \ হাদুপ") তৈরি করার আগে নিম্নলিখিত লাইন যুক্ত করুন;

4

উইন্ডোজ 10 এ - আপনার দুটি পৃথক যুক্তি যুক্ত করা উচিত।

(1) সিস্টেম ভেরিয়েবলের অধীনে নতুন ভেরিয়েবল এবং মান যুক্ত করুন - HADOOP_Home এবং পাথ (অর্থাত্ সি: \ হাদুপ)।

(২) "পাথ" ভেরিয়েবলটিতে "সি: \ হাদুপ \ বিন" হিসাবে নতুন এন্ট্রি যুক্ত / যুক্ত করুন।

উপরেরটি আমার পক্ষে কাজ করেছিল।


4
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")"

2

ইউনিট পরীক্ষা চালানোর সময় আমি একই সমস্যা পেয়েছি। আমি এই কাজের সমাধান খুঁজে পেয়েছি:

নিম্নলিখিত বার্তাটি এই বার্তাটি থেকে মুক্তি পেতে দেয়:

    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


2

আপনি winutils.exeGITHub থেকে বিকল্পভাবে ডাউনলোড করতে পারেন :

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

hadoop-2.7.1আপনি যে সংস্করণটি চান সেটি প্রতিস্থাপন করুন এবং ফাইলটি এতে রাখুনD:\hadoop\bin

আপনার মেশিনে যদি পরিবেশের পরিবর্তনশীল সেটিংসে অ্যাক্সেসের অধিকার না থাকে তবে কেবল আপনার কোডটিতে নীচের লাইনটি যুক্ত করুন:

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

1

সিস্টেম বৈশিষ্ট্যে হডোপহোম পরিবেশের পরিবর্তনশীল সেট করা আমার পক্ষে কার্যকর হয়নি। তবে এটি করেছে:

  • এলিপস রান কনফিগারেশন এনভায়রনমেন্ট ট্যাবে হ্যাডোপহোম সেট করুন।
  • এখান থেকে 'উইন্ডোজ এনভায়রনমেন্ট সেটআপ' অনুসরণ করুন

0

HADOOP_HOMEউইন্ডো হিসাবে আপনার পরিবেশের পরিবর্তনশীল উল্লেখ করার শীর্ষে, আপনাকেও C:\winutilsনিশ্চিত করতে হবে যে আপনি মেশিনের প্রশাসক। যদি না হয় এবং পরিবেশের ভেরিয়েবলগুলি অ্যাডমিন শংসাপত্রগুলির জন্য অনুরোধ জানায় (এমনকি USERভেরিয়েবলের অধীনে ) তবে প্রশাসক হিসাবে আপনার কমান্ড প্রম্পটটি শুরু করার পরে এই পরিবর্তনগুলি প্রযোজ্য হবে।


0

আমি নীচের বিবরণগুলির সাথে জাভা 1.8.0_121, স্পার্ক স্পার্ক-1.6.1-বিন-হাদুপ 2.6, উইন্ডোজ 10 এবং এক্সিলিপ অক্সিজেনের সাথেও একই ধরণের সমস্যার মুখোমুখি হয়েছি hen আগের পোস্টে উল্লিখিত হিসাবে, এটি কাজ করে না, আমার জন্য যা কাজ করেছে তা হ'ল -

System.setProperty ("hadoop.home.dir", "पथ / টো / দ্য / ডিআইআর");

পাঠ / টো / দ্য / ডিআইআর / বিন = উইনটিলস.ইক্সে আপনি জাভা অ্যাপ্লিকেশন হিসাবে অ্যাক্লিপসের মধ্যে দৌড়েন কিনা বা সেমিডি থেকে স্পার্ক-সাবমিট করে ব্যবহার করুন

স্পার্ক-সাবমিট - ক্লাস গ্রুপিড.আর্টিফ্যাকটিড.ক্লাসনাম - মাস্টার স্থানীয় [২] / জার ফাইলের জন্য পাথ ব্যবহার করে তৈরি করা / মেন / পাথ ব্যবহার করে একটি ডেমো টেস্ট ফাইল / আউটপুট ডিরেক্টরি কমান্ডের পাথ

উদাহরণ: স্পার্ক / হোম / লোকেশন / বিনের বিন অবস্থানে যান এবং বর্ণিত স্পার্ক-জমা কার্যকর করুন

ডি: \ বিগডাটা \ স্পার্ক-২.৩.০-বিন-হাদিওপ ২.\ \ বিন> স্পার্ক জমা দিন --class com.bigdata.abdus.sparkdemo.WordCount - মাস্টার স্থানীয় [1] ডি: \ বিগডাটা \ স্পার্ক-কুইকস্টার্ট art টার্গেট \ স্পার্ক-কুইকস্টার্ট -০.০.১-এসএনএপিএসএইচ.টি.জার ডি: \ বিগডাটা \ স্পার্ক-কুইকস্টার্ট \ wordcount.txt


0

এটি একটি মুশকিল ... আপনার স্টোরেজ লেটারটি অবশ্যই ক্যাপিটাল হওয়া উচিত। উদাহরণস্বরূপ " সি : \ ..."

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.