これが状況です。Kerberos セキュリティとワークステーションが構成されていない Hadoop クラスターがあります。Hadoop クラスターは、Cloudera CDH3 ディストリビューションを実行します。クラスター上のデータはすべて「hdfs」ユーザーの下に保存されます。
ワークステーションは、PIG クライアントを組み込んだ複雑なソフトウェアを実行する Linux または MacOS ワークステーションです。PIG クライアントはクラスターに接続して分析ジョブを実行します。
ここに問題があります。クラスターとワークステーションのユーザー アカウントは異なります。hadoop クラスター内のすべてのデータは、ワークステーションがユーザー アカウントの完全なセットを持つ「hdfs」ホーム ディレクトリ ユーザーの下に格納されます。別のユーザー アカウントでジョブを実行するように PIG に指示することは可能ですか。現在、pig は現在ワークステーションにログインしているユーザーのアカウントでジョブを実行しようとします。ジョブは実際に実行されますが、スクリプトは HDFS ユーザー ホーム ディレクトリへの相対パスを使用するため、データにアクセスできません。
クラスターのセキュリティが構成されていない場合、ユーザー名は単にジョブ構成 .XML と共に渡されることを理解していますが、何らかの理由で、必要なユーザー名をその XML ドキュメントに強制する方法がわかりません。