タグ

ブックマーク / nobu-q.hatenadiary.org (2)

  • 2009-06-08

    libhdfsはC言語からHDFSへアクセスするためのライブラリです。が、ちょっとコンパイルでハマったのでメモしておきます。32bit環境だと問題なくビルドできるかも知れませんが、実験はしていません。また、これは0.18.3(現時点でのstable release)での話で、最新のバージョンでは直っていそうな雰囲気です(http://issues.apache.org/jira/browse/HADOOP-3344)。 libhdfsをビルドするための準備として環境変数JAVA_HOMEをexportしておく必要があります。これは$(HADOOP_HOME)/conf/hadoop-env.shに書かれているJAVA_HOMEと同一のもので大丈夫です。次にHADOOP_HOMEディレクトリで以下のコマンドを実行します。 $ ant compile-libhdfs -Dlibhdfs=1

    2009-06-08
    rawwell
    rawwell 2009/06/14
    "HDFSへはhdfsConnectを使って接続します。この関数にはhost,portを与えます。サンプルプログラムでは"default",0を指定していますが、このように指定するとローカルファイルシステムが使用されました。HDFSのhost,portを指定したら
  • libhdfs: 使用上の注意 - nobu-qの日記

    hdfsOpenはディレクトリも書き込みモードで開けます。というか、ファイルを消して、そこに新たにファイルを作ります。なのでcp的なものを作ろうとして、誤ってディレクトリに対してhdfsWriteしてしまうと…/(^o^)\ 追記 他の関数も調べてみました。 hdfsCopy(file, dir) ---> dir/fileができた hdfsRename(file, dir) ---> 失敗 hdfsCreateDirectory(path_to_dir) ---> 成功(ディレクトリの中身はそのまま) hdfsCreateDirectory(path_to_file) ---> 失敗 うーん。インターフェイスはしっかりしているのに、内部の挙動に統一感がないな…。怖いので、念のため自前でディレクトリかどうかチェックして、処理を分岐させた方が良いかもしれませんね。

    libhdfs: 使用上の注意 - nobu-qの日記
    rawwell
    rawwell 2009/06/14
    "hdfsOpenはディレクトリも書き込みモードで開けます。というか、ファイルを消して、そこに新たにファイルを作ります。なのでcp的なものを作ろうとして、誤ってディレクトリに対してhdfsWriteしてしまうと…/(^o^)\"
  • 1