web-dev-qa-db-ja.com

hadoopバイナリパスでwinutilsバイナリを見つけられませんでした

最新のhadoop-2.2リリースのnamenodeを起動中に、次のようなエラーが表示されます。私はhadoop binフォルダにwinutils exeファイルを見つけられませんでした。私は以下のコマンドを試してみました

$ 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)
97
user2925491

簡単な解決法ここ からダウンロードして$HADOOP_HOME/binに追加

(出典: ここをクリック

編集:

hadoop-2.6.0の場合は、 Titus Barikブログ>> からバイナリをダウンロードできます。

HADOOP_HOMEを抽出ディレクトリ[path]に指定するだけでなく、ネイティブlibs(dll)をロードするためのシステムプロパティ-Djava.library.path=[path]\binも提供する必要があります。

93
Prasad D

Apache Hadoop 2.2.0リリースのバイナリ配布を直接取得してMicrosoft Windowsで実行しようとすると、エラーutil.Shellが発生します。hadoopバイナリパスでwinutilsバイナリを見つけられませんでした。

Apache Hadoop 2.2.0リリースのバイナリ配布には、いくつかのWindowsネイティブコンポーネント(winutils.exe、hadoop.dllなど)は含まれていません。これらはWindows上でHadoopを実行するために必要です(オプションではありません)。

だからあなたはhadoopのソース配布の中にある "BUILD.txt"ファイルに続くソースコードからhadoopのウィンドウズネイティブバイナリ配布を構築する必要があります。あなたはスクリーンショットでステップバイステップガイドのために同様に以下のポストに従うことができます

Microsoft Windows OSでApache Hadoop 2.2.0をビルド、インストール、設定、および実行する

エラーutil.Shell:hadoopバイナリパスにwinutilsバイナリが見つかりませんでした

26
Abhijit

Sparkで自己完結型のローカルアプリケーションを実行しているとき(つまり、spark-Assembly-xxx-hadoopx.xxjarまたはMavenの依存関係をプロジェクトに追加した後)にこの問題に直面した場合、より簡単な解決策はwinutils.exeを置くことです。 "C:\ winutil\bin"の ここ )からダウンロードしてください。次に、コードに次の行を追加して、winotils.exeをhadoopホームディレクトリに追加できます。

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

出典:クリック こちら

25
TrnKh

ステートメントJava.io.IOException:実行可能なnull\bin\winutils.exeが見つかりませんでした

環境変数を展開または置換するときにnullを受け取ることを説明します。 Common PackageのShell.JavaにSourceが表示されている場合は、HADOOP_HOME変数が設定されておらず、その代わりにnullを受け取っているため、エラーが発生しています。

そのため、HADOOP_HOMEを正しく設定するか、変数hadoop.home.dirを設定する必要があります。

お役に立てれば。

ありがとう、Kamleshwar。

17
Kamleshwar

私はEclipseの作業中にこの問題に遭遇しました。私の場合は、正しいバージョンのHadoopをダウンロードし(hadoop-2.5.0-cdh5.3.0.tgz)、内容を抽出して直接Cドライブに入れました。それから私は行きました

Eclipse - >デバッグ/実行構成 - >環境(タブ) - >と追加

変数:HADOOP_HOME

値:C:\ hadoop-2.5.0-cdh5.3.0

11
Daniel Epstein

あなたはここwinutils.exeをダウンロードすることができます: http://public-repo-1.hortonworks.com/hdp-win-alpha/winutils.exe

それをHADOOP_HOME/binディレクトリにコピーしてください。

7
Soumya Kanti

Pysparkで、Pycharmを使ってローカルのsparkアプリケーションを実行するには、以下の行を使います。

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

winotils.exeは、hadoopがhadoop関連のコマンドを実行するために必要です。 hadoop-common-2.2.0 Zipファイルをダウンロードしてください。 winutils.exeはbinフォルダーにあります。 Zipファイルを解凍し、ローカルのhadoop/binフォルダにコピーします。

2
Mohan Raj
  1. ダウンロード[winutils.exe]
    URLから:
    https://github.com/steveloughran/winutils/hadoop-version/ bin
  2. HADOOP_HOME/binの下に貼り付けます。
    注:環境変数を設定する必要があります。
    ユーザー変数:
    変数:HADOOP_HOME
    :Hadoopまたはsparkディレクトリ
2

私は同じ問題に直面していました。 HADOOP_HOMEパスからbin\を削除することで解決しました。 HADOOP_HOME変数のパスは次のようになります。

C:\dev\hadoop2.6\

システムの再起動が必要になる場合があります。私の場合、IDEを再起動するだけで十分です。

2
Asmat Ali

問題を解決するには、WindowsでHADOOP_HOME変数を設定します。

答えはorg/Apache/hadoop/hadoop-common/2.2.0/hadoop-common-2.2.0-sources.jar!/org/Apache/hadoop/util/Shell.Javaにあります。

からのIOException

  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
Andy

Zipとして この リンクからhadoopフォルダの所望のバージョンをダウンロードします(あなたがWindowsにsparkをインストールしているならば、あなたのsparkが構築されているhadoopバージョンを言う)。

Zipを任意のディレクトリに解凍します。ダウンロードしたhadoopのbinフォルダーに含まれるすべてのファイルを含むbinという形式のhadoop\bin(必要に応じて明示的にこのようなhadoop\binディレクトリ構造を作成する)のディレクトリを用意する必要があります。これはwinutil.exeに加えてhdfs.dll、hadoop.dllなどのような多くのファイルを含みます。

環境変数HADOOP_HOMEを作成し、それを<path-to-hadoop-folder>\hadoopに設定します。それから 環境変数PATH;%HADOOP_HOME%\bin;を追加します。

「新しいコマンドプロンプト」を開き、コマンドを再実行してください。

1
Mahesha999

Winutils.exeはSPARKのシェルコマンドを実行するために使用されます。 HadoopをインストールせずにSparkを実行する必要がある場合は、このファイルが必要です。

手順は次のとおりです。

  1. 次の場所からwinotil 2.7.1のwinutils.exeをダウンロードしてください https://github.com/steveloughran/winutils/tree/master/hadoop-2.7.1/bin [注:使用している場合別のhadoopバージョンはそれからGITHUB上の対応するhadoopバージョンフォルダから上記の場所からwinutilsをダウンロードしてください。

  2. さて、C:\ドライブにフォルダ 'winutils'を作成します。フォルダ 'winutils'内にフォルダ 'bin'を作成し、そのフォルダにwinutils.exeをコピーします。そのため、winutils.exeの場所はC:\ winutils\bin\winutils.exeになります。

  3. これで、環境変数を開き、HADOOP_HOME = C:\ winutil [注:追加しないでください\ binHADOOP_HOMEに設定し、PathにHADOOP_HOMEを設定する必要がなくなりました。 ]

あなたの問題は解決されなければなりません!

1
Anurag

私は窓でも同じ問題を抱えていました。私はそれを修正しました

  • link からhadoop-common-2.2.0-bin-masterをダウンロードしています。
  • 環境変数にユーザー変数HADOOP_HOMEを作成し、hadoop-common binディレクトリのパスを値として割り当てます。
  • Cmdでhadoopを実行して確認できます。
  • IDEを再起動して実行します。
1
Dipak Shaw

私は "hbase-1.3.0"と "hadoop-2.7.3"バージョンを使いました。 HADOOP_HOME環境変数を設定し、HADOOP_HOME/binフォルダの下の 'winutils.exe'ファイルをコピーすると、Windows osでの問題が解決します。 HADOOP_HOME環境をhadoopのインストールフォルダーに設定することに注意してください(これらのバージョンでは/ binフォルダーは必要ありません)。 Hbaseチームはlinux/unix envを推奨しているので、私はクロスプラットフォームのツール cygwin を使って(可能な限り)Linux OSの機能を解決することを好みました。

0
mahkras