0

ネットワーク経由でファイルを保存する便利な方法として、Hadoop の HDFS への REST インターフェイスを使用することに取り組んでいます。テストするために、次の手順に従って Mac (10.8.5) に Hadoop をインストールしました。

http://importantfish.com/how-to-install-hadoop-on-mac-os-x/

それは魔法のように機能し、hadoop を開始して基本的なテストを実行することができました。

hadoop-examples-1.1.2.jar pi 10 100

現在、python クライアントを使用して、webhdfs との間の HTTP 要求を処理しています。

http://pythonhosted.org/pywebhdfs/

しかし、ディレクトリを作成しようとすると、基本的なアクセス許可エラーが発生します。

from pywebhdfs.webhdfs import PyWebHdfsClient  
hdfs = PyWebHdfsClient()  
my_dir = 'user/hdfs/data/new_dir'  
hdfs.make_dir(my_dir, permission=755)  

トレースバック (最後の最後の呼び出し):
ファイル ""、1 行目、
ファイル "/Library/Python/2.7/site-packages/pywebhdfs/webhdfs.py"、207 行目、make_dir
_raise_pywebhdfs_exception(response.status_code, response.text )
ファイル "/Library/Python/2.7/site-packages/pywebhdfs/webhdfs.py"、428 行目、_raise_pywebhdfs_exception でエラー
を発生させ
ます。 :"AccessControlException","javaClassName":"org.apache.hadoop.security.AccessControlException","message":"許可が拒否されました: user=webuser, access=WRITE, inode=\"user\":mlmiller:supergroup:rwxr -xr-x"}}

また、python lib のデフォルトの「webhdfs」ではなく、ユーザーを「hdfs」として指定しようとしましたが、同じ結果が得られました。30分読んだ後、あきらめて、hdfsユーザー、hadoopセキュリティ(インストール命令に従って有効にしました)、およびUNIXユーザーと権限の相互作用を理解していないことに気付きました。

4

2 に答える 2