4

map-reduce ジョブ (ワードカウントの例) をリモートで実行しようとしたときに、いくつかの問題に遭遇しました。Googleで検索した後、まだ目標を達成できません。また、map-reduce ジョブをリモートで呼び出すことに関するトピックはほとんど見ませんでした。以下に問題を示します。

  1. 最初に、私は許可の問題を満たしています:

    SEVERE: PriviledgedActionException as:[user]    cause:org.apache.hadoop.security.AccessControlException:
    org.apache.hadoop.security.AccessControlException: Permission denied: user=[user], access=WRITE, inode="mapred":root:supergroup:rwxr-xr-x
    

    hdfsパスへのアクセス許可拒否のようです。設定でチェックをオフにしますdfs.permissions = true。この問題を克服する他の方法はありますが、それでもチェックを続けます。

  2. その後、map-reduce アプリケーション jar にアクセスできないという例外に遭遇しました。

    SEVERE: PriviledgedActionException as:[User] cause:java.io.FileNotFoundException: File /home/hduser/WordCount-1.0.jar does not exist.
    

    私のコードは次のとおりです。

    JobConf conf = new JobConf(WordCount.class);
    conf.setJobName("wordcount");
    conf.set("fs.default.name", "hdfs://10.97.1.91:54310");
    conf.set("mapred.job.tracker", "10.97.1.91:54311");
    conf.setJar("/home/hduser/WordCount-1.0.jar");
    ...
    JobClient.runJob(conf);
    

    name ノードのローカル ファイル システムが、jar ファイルへのアクセスを拒否しているようです。どうすればこの問題を克服できますか? stackoverflowでリンクを見つけました。リンクから、jar ファイルの場所は必要ありません。しかし、場所を提供せずに name ノードが jar ファイルを見つけるにはどうすればよいでしょうか?

  3. インターネットで見つけたチュートリアルで、ジョブをリモートで実行する例はほとんど見ませんでした。このようにすることは提案されていませんか?

4

1 に答える 1