ネットワーク経由でファイルを保存する便利な方法として、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ユーザーと権限の相互作用を理解していないことに気付きました。