2016-08-24 5 views
0

Cent OS 7にhadoopをインストールしました。pythonで作成されたデーモンサービスで、HDFSでディレクトリを作成しようとしましたが、rootユーザーがHDFSにファイルを書き込むことを許可する方法

mkdir: Permission denied: user=root, access=WRITE, inode="/rep_data/store/data/":hadoop:supergroup:drwxr-xr-x 

私のサービスはrootアカウントで実行されているようです。 rootユーザーがディレクトリを作成してファイルを書き込むことを許可する方法を知りたいです。

+0

Stackoverflowはプログラミング関連の質問です。 [トピックのヘルプ/トピック]を参照して、ここでどのトピックを聞くことができるかを確認してください。この質問は、[unix.se]や[Superuser](http://superuser.com)などの他のSEサイトでは適切かもしれません。まずそのヘルプがあるかどうか確認してください。そうであれば、「フラグ」リンクをクリックして、「モデレータの注意を必要としている」を選択してそこのマイグレーションをリクエストできます。 – kaylum

+0

私はそれがプログラミングに関連していると思う、私がここで参照したサービスはPythonで私によって書かれている。したがって、pythonコードはhadoopでディレクトリを作成しようとしています。 – Saran

+0

プログラミング活動から問題が生じたことは問題ではありません。ポイントは、質問自体がプログラミングに直接関係していないということです(プログラミングをしていない人はまったく同じ質問をすることができます)。あなたはプログラミングの問題ではなく、システム管理者の質問であるアクセス許可の設定について質問しています。コード自体にアクセス権を設定する方法を尋ねるなら、それはプログラミングの質問になるでしょう。しかし、質問はそのような言葉ではなく、あなたのシステムを正しく設定したいと思うように聞こえます。 – kaylum

答えて

0

HDFSルートの下にディレクトリを作成しようとしている場合、つまり/の場合、この種の問題に直面する可能性があります。あなたは

hdfs dfs -mkdir /user/user_home/directory/name

コマンドの下に実行し、あなたのHDFSのホームディレクトリを作成するには

sudo hdfs hdfs dfs -mkdir /directory/name

を次のようにコマンドを実行し、ルートディレクトリを作成するには何の問題もなく、あなたの家に

をディレクトリを作成することができます

+0

ディレクトリは既に存在します。アクセス権が間違っています –

+0

コマンドラインからhadoopでディレクトリを作成できました。しかし、pythonプログラムがディレクトリを作成しようとしているときにエラーが発生しています。 – Saran

+0

質問を明確な詳細で更新してください – BruceWayne

0

super userではないため、これはおそらく問題です。

回避策は、hdfsでアクセス制御リストを有効にし、ユーザーにアクセス許可を与えることです。 ACLのサポートを有効にするには、NameNode構成でdfs.namenode.acls.enabledをtrueに設定します。

詳細情報を確認する:link

+0

問題が解決されたchownを使用して、/ rep_data/store/data /フォルダの所有者をhadoopからrootに変更しました。 – Saran

+0

sudoerグループにあなたのユーザ(hadoop)を追加し、次回から 'sudo 'を使うことができます。 –

関連する問題