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


108

সর্বশেষ হ্যাডোপ -২.২ মুক্তির নামকরণ শুরু করার সময় আমি নিম্নলিখিত ত্রুটিটি পাচ্ছি। হ্যাডোপ বিন ফোল্ডারে আমি উইন্টিলস এক্সি ফাইলটি খুঁজে পাইনি। আমি কমান্ডের নীচে চেষ্টা করেছি

$ bin/hdfs namenode -format
$ sbin/yarn-daemon.sh start resourcemanager

ERROR [main] util.Shell (Shell.java:getWinUtilsPath(303)) - 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.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:863)


সেই ত্রুটি বার্তাটি থেকে মুক্তি পাওয়ার চেষ্টা করে আমি -ধাদুপ.কম.ডায়ারকে একটি অর্থবহ মান হিসাবে সেট করি। এখন আমি এর মতো কিছু পাচ্ছি (ভেরিয়েবল নামের পরিবর্তে স্থানীয় পথ): হ্যাডোপ বাইনারিগুলিতে এক্সিকিউটেবল $ {HADOOP_Home} \ bin \ winutils.exe সনাক্ত করতে পারেনি। এবং কী অনুমান করুন: পরিবর্তনশীল নির্ধারণের ফলে বাইনারি উপস্থিত হয় নি। এছাড়াও অগ্রাধিকার ERROR ভুল, কারণ অ্যাপ্লিকেশনটি চালিয়ে যাওয়া বলে মনে হচ্ছে। আমার দৃষ্টিতে এটি হ্যাডোপ ২.২.০ এ একটি বাগ is
হিরান



1
প্রসাদ ডি দ্বারা প্রদত্ত উত্তরটি গ্রহণ করুন দয়া করে তিনি রেডিমেড ফাইলগুলি ব্যবহারের জন্য সরবরাহ করেছেন; এইভাবে প্রচেষ্টা এড়ানো।
কৌশিক লেলে

উত্তর:


96

সরল সমাধান: এখান থেকে ডাউনলোড করুন এবং এতে যুক্ত করুন$HADOOP_HOME/bin

( উত্স )

গুরুত্বপূর্ণ আপডেট:

জন্য Hadoop-2.6.0 আপনার কাছ থেকে বাইনেরিতে বিনামূল্যে ডাউনলোড করতে পারেন তিতাস বারিক ব্লগ >>

আমার কেবল HADOOP_HOMEনিষ্কাশিত ডিরেক্টরিতে নির্দেশ করার দরকার নেই [path], তবে -Djava.library.path=[path]\binদেশীয় libs (dll) লোড করার জন্য সিস্টেমের সম্পত্তিও সরবরাহ করি ।


এটি এইচডিএফএস শুরু করতে সহায়তা করে তবে আমি যখন এইচডিএফএসে একটি পাঠ্য ফাইল রাখার চেষ্টা করি তখন এটি ত্রুটিটি দেয় "মূল" জাভা.এল.আঙ্গিত সন্তুষ্ট লিঙ্কেরর: org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsBy teArray (II [BI [BIILjava) / ল্যাং / স্ট্রিং; জেজেড) ভি
কৌশিক লেলে

এটি আমার উত্তরের আংশিক সদৃশ। ডাউনলোড এবং উত্স উভয়ই আমার ব্লগের লিঙ্ক যা উত্তরে উল্লিখিত হয়েছে।
অভিজিৎ

1
এটি হ্যাডোপ ২.7.৩ এর সাথেও কাজ করে বলে মনে হচ্ছে। বা কোন সমস্যা আছে? 1) উপরের পৃষ্ঠা থেকে ডাউনলোড করুন। tar xfvz যা একটি হডোপ 2.6 বিতরণ দেয়। তারপরে বিন \ winutlis.exe 2.73 \ বিন ডিরেক্টরিতে অনুলিপি করুন। তাত্ক্ষণিকভাবে, এটি কাজ করে। এখনও পর্যন্ত - কমপক্ষে।
রিচমিস্টার

28

স্পার্কের সাথে স্ব-অন্তর্ভুক্ত স্থানীয় অ্যাপ্লিকেশন চালানোর সময় আপনি যদি এই সমস্যার মুখোমুখি হন (যেমন, স্পার্ক-এসেম্বলি-এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সজার বা প্রকল্পের মাভেন নির্ভরতা যুক্ত করার পরে), উইন্টিলস.এক্সই (ডাউনলোড ডাউনলোড) এর একটি সহজ সমাধান হতে পারে থেকে এখানে ) এ "সি: \ \ বিন winutil"। তারপরে আপনি কোডটিতে নিম্নলিখিত লাইনটি যুক্ত করে hadoop হোম ডিরেক্টরিতে winutils.exe যুক্ত করতে পারেন:

System.setProperty("hadoop.home.dir", "c:\\\winutil\\\")

সূত্র: এখানে ক্লিক করুন


আমার জন্য উইনটুলস স্টাফ .ুকাই যথেষ্ট ছিল hadoop/bin/bin/। সুতরাং হ্যাডোপের binফোল্ডারে উইন্টিলস ফোল্ডারটি অনুলিপি করুন bin। ( HADOOP_HOME
এনভ ভার্সে

+1 ডিরেক্টরি পথে খুব বেশি স্ল্যাশ রয়েছে, তাই আমি এখানে এটি নিজের জন্য রেখে চলেছি:System.setProperty("hadoop.home.dir", "c:\\winutil\\")
ইমরগিন্স

27

যদি আমরা সরাসরি অ্যাপাচি হ্যাডোপ ২.২.০ রিলিজের বাইনারি বিতরণ করি এবং এটি মাইক্রোসফ্ট উইন্ডোতে চালানোর চেষ্টা করি, তবে আমরা এরর ইউরারের মুখোমুখি হব he শেল: হ্যাডোপ বাইনারি পথে উইন্টিলস বাইনারি সনাক্ত করতে ব্যর্থ।

অ্যাপাচি হ্যাডোপ ২.২.০ রিলিজের বাইনারি বিতরণে কিছু উইন্ডোজ নেটিভ উপাদান নেই (যেমন উইন্টিলস.এক্সি, হ্যাডোপ.ডিএল ইত্যাদি)। এগুলি উইন্ডোতে হ্যাডোপ চালানোর জন্য (notচ্ছিক নয়) প্রয়োজন।

সুতরাং আপনার উইন্ডোগুলিকে হ্যাডুপের উত্স বিতরণের ভিতরে অবস্থিত "BUILD.txt" ফাইল অনুসরণ করে উত্স কোডগুলি থেকে হ্যাডোপের স্থানীয় বাইনারি বিতরণ তৈরি করতে হবে। স্ক্রিন শট সহ ধাপে ধাপে গাইডের জন্য আপনি নিম্নলিখিত পোস্টগুলি অনুসরণ করতে পারেন

মাইক্রোসফ্ট উইন্ডোজ ওএসে অ্যাপাচি হ্যাডোপ ২.২.০ তৈরি করুন, ইনস্টল করুন, কনফিগার করুন এবং চালান

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


2
হাই অভিজিৎ। আপনি কি নিজের নির্দেশ অনুসরণ করেছেন? হ্যাডোপ উইন্ডোজে সমর্থিত নয়। আসলে এটি কেবল উইন্ডোজ সার্ভারের কয়েকটি সংস্করণে সমর্থিত। মাইক্রোসফ্ট এবং হর্টন ওয়ার্কস এটি খুব লম্পট।
জাভাদবা

2
এটি দু'বছর আগে এবং সেই সময়ে খুব (খুব!) সত্য। আমি একটি সম্মেলনে মাত্র দুই সপ্তাহ আগে হর্টনওয়ার্কস ইঞ্জিনিয়ারদের সাথে সরাসরি যাচাই করেছিলাম।
জাভদ্বা

18

Java.io.IOException বিবৃতি: এক্সিকিউটেবল নাল \ বিন \ winutils.exe সনাক্ত করতে পারেনি

এনভায়রনমেন্ট ভেরিয়েবলের প্রসারণ বা প্রতিস্থাপনের সময় নালটি প্রাপ্ত হয় তা ব্যাখ্যা করে। আপনি যদি কমন প্যাকেজে শেল.জভাতে উত্সটি দেখতে পান তবে আপনি দেখতে পাবেন যে HADOOP_HOME ভেরিয়েবল সেট হচ্ছে না এবং আপনি তার জায়গায় নালাগুলি পেয়ে যাচ্ছেন এবং তাই ত্রুটি।

সুতরাং, এই জন্য সঠিকভাবে বা ভেরিয়েবল hadoop.home.dir বৈশিষ্ট্যটির জন্য HADOOP_Home সেট করা দরকার।

আশাকরি এটা সাহায্য করবে.

ধন্যবাদ, কমলেশ্বর।


1
কোন কনফিগারেশন ফাইলের উপর আমাদের hadoop.home.dir বৈশিষ্ট্য সেট করতে হবে (উদা। Hdfs-site.xML, কোর-সাইট.xML)?
তুষার সার্দে

4
System.setProperty ("hadoop.home.dir", "C: \\ winutil \\"); উল্লেখ: স্ট্যাকওভারফ্লো.com
হিমাংশু ভান্ডারী

আপনি যদি উইন্ডোজ ব্যবহার করছেন তবে মান হিসাবে কোনও পাথ লেখার সময় আপনি ডাবল ব্যাকস্ল্যাশ ব্যবহার করেছেন তা নিশ্চিত করুন।
ishশরিখ

12

Winutils.exe স্পার্কের শেল কমান্ড চালানোর জন্য ব্যবহৃত হয়। আপনার যখন হ্যাডোপ ইনস্টল না করে স্পার্ক চালাতে হবে তখন আপনার এই ফাইলটি দরকার।

পদক্ষেপগুলি নিম্নরূপ:

  1. হ্যানডোপ ২. following.১ এর জন্য নিম্নলিখিত অবস্থান থেকে Winutils.exe ডাউনলোড করুন https://github.com/steveloughran/winutils/tree/master/hadoop-2.7.1/bin [দ্রষ্টব্য: আপনি যদি পৃথক হাদুপ সংস্করণ ব্যবহার করছেন তবে দয়া করে ডাউনলোড করুন উপরে বর্ণিত অবস্থান থেকে GITHUB এ সম্পর্কিত হ্যাডোপ সংস্করণ ফোল্ডারের উইন্টিলগুলি]]

  2. এখন, সি: \ ড্রাইভে 'উইন্টিলস' একটি ফোল্ডার তৈরি করুন। এখন 'winutils' ফোল্ডারের ভিতরে 'বিন' ফোল্ডার তৈরি করুন এবং সেই ফোল্ডারে winutils.exe অনুলিপি করুন। সুতরাং winutils.exe এর অবস্থান সি হবে : \ winutils \ bin \ winutils.exe

  3. Winutils \: এখন, খোলা এনভায়রনমেন্ট ভেরিয়েবল এবং সেট HADOOP_HOME = সি [দ্রষ্টব্য: দয়া করে জুড়বেন না \ বিন মধ্যে HADOOP_HOME এবং পথ সেট HADOOP_HOME করার কোন প্রয়োজন]

আপনার সমস্যা সমাধান করা আবশ্যক !!


11

গ্রহনের সাথে কাজ করার সময় আমি এই সমস্যাটিতে এসেছি। আমার ক্ষেত্রে, আমার সঠিক হ্যাডোপ সংস্করণটি ডাউনলোড হয়েছিল (hadoop-2.5.0-cd5.3.0.tgz), আমি সামগ্রীগুলি বের করে সরাসরি এটি আমার সি ড্রাইভে রেখেছি। তারপরে গেলাম

Eclipse-> ডিবাগ / রান কনফিগারেশন -> পরিবেশ (ট্যাব) -> এবং যোগ করা হয়েছে

পরিবর্তনশীল: HADOOP_Home OME

মান: সি: \ hadoop-2.5.0-cd5.3.0



3

পাইস্পার্কে পাইচার্ম ব্যবহার করে স্থানীয় স্পার্ক অ্যাপ্লিকেশন চালাতে লাইনের নীচে ব্যবহার করুন

os.environ['HADOOP_HOME'] = "C:\\winutils"
print os.environ['HADOOP_HOME']

2

হ্যাডোপ সম্পর্কিত কমান্ডগুলি সঞ্চালনের জন্য হ্যানুপের জন্য winutils.exe প্রয়োজন। হ্যাডোপ-সাধারণ -২.২.০ জিপ ফাইলটি ডাউনলোড করুন। winutils.exe বিন ফোল্ডারে পাওয়া যাবে। জিপ ফাইলটি বের করুন এবং স্থানীয় হ্যাডোপ / বিন ফোল্ডারে এটি অনুলিপি করুন।


2

আমিও একই সমস্যায় পড়ছিলাম। bin\HADOOP_Home পথ থেকে এটিকে সরানো আমার জন্য এটি সমাধান করেছে solved HADOOP_Home ভেরিয়েবলের পথটি দেখতে কিছুটা দেখতে পাওয়া উচিত।

C:\dev\hadoop2.6\

সিস্টেম পুনরায় আরম্ভের প্রয়োজন হতে পারে। আমার ক্ষেত্রে, আইডিই পুনরায় চালু করা যথেষ্ট ছিল।


2

HADOOP_Home সেট আপ করুনসমস্যাটি সমাধান করতে উইন্ডোতে ভেরিয়েবল ।

আপনি উত্তর খুঁজে পেতে পারেন org/apache/hadoop/hadoop-common/2.2.0/hadoop-common-2.2.0-sources.jar!/org/apache/hadoop/util/Shell.java :

আইওএক্সেপশন থেকে

  public static final String getQualifiedBinPath(String executable) 
  throws IOException {
    // construct hadoop bin path to the specified executable
    String fullExeName = HADOOP_HOME_DIR + File.separator + "bin" 
      + File.separator + executable;
    File exeFile = new File(fullExeName);
    if (!exeFile.exists()) {
      throw new IOException("Could not locate executable " + fullExeName
        + " in the Hadoop binaries.");
    }
    return exeFile.getCanonicalPath();
  }

HADOOP_HOME_DIR এর থেকে

// first check the Dflag hadoop.home.dir with JVM scope
String home = System.getProperty("hadoop.home.dir");
// fall back to the system/user-global env variable
if (home == null) {
  home = System.getenv("HADOOP_HOME");
}

2
  1. [Winutils.exe] ডাউনলোড করুন
    ইউআরএল থেকে:
    https://github.com/steveloughran/winutils/hadoop-version / বিন
  2. এটি হ্যাডোঅপহোম / বিনের অধীনে অতীত করুন
    দ্রষ্টব্য: আপনার পরিবেশগত ভেরিয়েবলগুলি সেট করা উচিত:
    ব্যবহারকারী পরিবর্তনশীল:
    পরিবর্তনশীল : HADOOP_Home
    মান : হডোপ বা স্পার্ক দির

1

আমি উইন্ডোজ একই সমস্যা পেয়েছিলাম। আমি এটি দ্বারা স্থির

  • লিঙ্কটি থেকে হ্যাডোপ-সাধারণ -২.২.০-বিন-মাস্টার ডাউনলোড করা হচ্ছে ।
  • পরিবেশের ভেরিয়েবলে একটি ব্যবহারকারী ভেরিয়েবল HADOOP_Home তৈরি করুন এবং হ্যাডোপ-সাধারণ বিন ডিরেক্টরিটিকে একটি মান হিসাবে নির্ধারণ করুন।
  • আপনি সেমিডিতে হ্যাডোপ চালিয়ে এটি যাচাই করতে পারেন।
  • আইডিই পুনরায় আরম্ভ করুন এবং এটি চালান।

1

জিড হিসাবে এই লিঙ্কটি থেকে হ্যাডোপ ফোল্ডারের পছন্দসই সংস্করণটি ডাউনলোড করুন (যদি আপনি উইন্ডোজে স্পার্ক ইনস্টল করে থাকেন তবে বলুন হ্যাডুপ সংস্করণ যার জন্য আপনার স্পার্কটি তৈরি করা হয়েছে) জিপ হিসাবে এই লিঙ্কটি থেকে ।

পছন্দসই ডিরেক্টরিতে জিপটি বের করুন। এতে থাকা সমস্ত ফাইল সমেত আপনার ফর্মের ডিরেক্টরি থাকতে হবে hadoop\bin(স্পষ্টভাবে hadoop\binআপনি চাইলে এই ধরনের ডিরেক্টরি কাঠামো তৈরি করুন )binbinডাউনলোড করা হ্যাডুপের ফোল্ডারে সমেত । এতে winutil.exe ছাড়াও অনেকগুলি ফাইল যেমন hdfs.dll, hadoop.dll ইত্যাদি থাকবে।

এখন এনভায়রনমেন্ট ভেরিয়েবল তৈরি HADOOP_HOME করুন এবং এটি সেট <path-to-hadoop-folder>\hadoop। তারপর যোগ ;%HADOOP_HOME%\bin; করার PATHএনভায়রনমেন্ট ভেরিয়েবল।

একটি "নতুন কমান্ড প্রম্পট" খুলুন এবং আপনার আদেশটি পুনরায় চালু করার চেষ্টা করুন।


এটি আমার পক্ষে কাজ করেছে, এবং HADOOP_HOME এর সাথে বিন ডিরেক্টরিটি নির্দেশ করে (এর পিতামাতার পরিবর্তে) বিকল্পটি করেনি।
ফিলাওয়াক

0

আমি "hbase-1.3.0" এবং "hadoop-2.7.3" সংস্করণ ব্যবহার করেছি। HADOOP_Home এনভায়রনমেন্ট ভেরিয়েবল সেট করা এবং 'winutils.exe' ফাইল HADOOP_Home / বিন ফোল্ডারের অধীনে অনুলিপি করা একটি উইন্ডোজ ওএস এ সমস্যা সমাধান করে। হ্যাডুপের ইনস্টলেশন ফোল্ডারে HADOOP_HOME পরিবেশ সেট করার দিকে মনোযোগ দিন (এই সংস্করণগুলির জন্য / বিন ফোল্ডারটি প্রয়োজনীয় নয়)। লিনাক্স ওএস কার্যকারিতা (যতটা সম্ভব সম্ভব) নিষ্পত্তি করার জন্য আমি ক্রস প্ল্যাটফর্ম সরঞ্জাম সাইগউইন ব্যবহার পছন্দ করেছি কারণ Hbase দল লিনাক্স / ইউনিক্স এনভির প্রস্তাব দেয়।

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