前提・実現したいこと
Windows版Hadoopでjarファイルを実行する際に、-filesオプションを使って複数ファイルを作業ディレクトリに配布しようとしています。
公式サイトのチュートリアルやコマンドガイドでは、カンマ区切りで記述することでリストを渡せると書いてあるのですが、最初の一個しか-filesへの対象ファイル名として認識されません。
発生している問題・エラーメッセージ
たとえば、以下のようにjarファイルを実行するとします(コマンドは公式チュートリアルのものです)。
cmd
1bin/hadoop jar hadoop-mapreduce-examples-2.9.2.jar wordcount -files cachefile1.txt,cachefile2.txt.cachefile3.txt -libjars mylib.jar -archives myarchive.zip input output
すると、inputディレクトリとしてcachefile2.txtが存在しないという警告が出て処理が止まります。
org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist: hdfs://localhost:9000/user/<username>/cachefile2.txt
試したこと
■ワイルドカード指定
複数ファイルの指定に
-files *.txt
を試しましたが、やはり2番目以降のファイルはinputとして扱われてしまいました。
■複数回記述
また、ダメもとで以下のように-filesを複数回使ってみました。エラーにはなりませんが、作業ディレクトリの中に2番目(cachefile2.txt)以降のファイルは存在せず、送信には失敗しているようでした。
-files cachefile1.txt -flies cachefile2.txt -files cachefile3.txt
※作業ディレクトリの中身の確認は、公式チュートリアルのWordCount.javaのmap()関数内でカレントディレクトリ内のファイル一覧を取得することで確認しました。また、GenericOptionsParserで-filesを取得できるようにも書き加えました。
補足情報(FW/ツールのバージョンなど)
OS:windows10 (VMware)
Hadoop 2.9.2
java openjdk 1.8.0_201
どう記述すれば複数ファイルを指定することができるのでしょうか?
どうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。