web-dev-qa-db-ja.com

「hadoop fs -mkdir」が許可拒否で失敗するのはなぜですか?

ClouderaをVMで遊んでいます。残念ながら、HDFSにデータをコピーする際に問題が発生しています。

[cloudera@localhost ~]$ hadoop fs -mkdir input
mkdir: Permission denied: user=cloudera, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x

このVMのセキュリティについてあまり心配していませんが、とにかくHDFSでさらにセキュリティを開くことができますか?

15
AAA

Hadoopでmkdirを使用するには、「hadoopファイルのアクセス許可」が必要です。この例から、hdfsはフォルダーを作成する権限を持つユーザーであることがわかります。だからあなたが実行した場合:

Sudo -u hdfs hadoop fs -mkdir /import

その後、importフォルダーが作成されます。このフォルダーの所有者を変更する場合は、次を実行します。

Sudo -u hdfs hadoop fs -chown new_user /import

これでnew_userimportフォルダー内のファイルを操作できます

17
xYan

上記のコマンドを実行すると、hdfsホームディレクトリ(/ user/cloudera)が存在しない場合、そのディレクトリが最初に作成され、次にディレクトリ入力が/ user/clouderaの下に作成されます

Clouderaユーザーに独自のディレクトリを作成する許可を与えるには、許可を与える必要があります。 hdfsユーザーはhdfsの管理ユーザーであり、hdfsに切り替えてから次のコマンドを実行します

[hdfs@localhost~]$ hadoop fs -mkdir /user/cloudera ; hadoop fs -chmod 777  /user/cloudera

または

hdfsセキュリティをあまり気にしない場合は、hdfs-site.xmlで以下のプロパティをfalseに設定してhdfsパーミッションを無効にします

<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>

このプロパティをfalseに設定した後、hdfsを再起動する必要があります。

11
SachinJ

Cloudera managerでは、設定を変更できます:hdfs-> configuration-> view&edit、Check HDFS Permissions dfs.permissionsのチェックを外し、hdfsを再起動します。

5
shakir544

これは、hdfsにディレクトリを作成するための十分な権限がないためです。これをSudoとして実行してみてください:

Sudo -u hdfs hadoop fs -mkdir -p /user/samplefolder

ただし、セキュリティが低下するため、これはお勧めしません。

0
Amit Kumar

/etc/groupにスーパーグループを作成することで問題を解決し、ユーザーログインを更新しました。つまり、ユーザーは、HDFSに書き込むためのアクセス権を持つHDFSスーパーグループに所属する必要があります。

$vi /etc/group

supergroup:x:30000:root

後でHDFSに書き込むことができました。それが役に立てば幸い

0
GURUVEER