HadoopのファイルシステムとしてHDFSを利用するという前提でここまで説明してきましたが、実際にはHadoopはファイルシステムの部分を抽象化していて、HDFSもその実装のひとつにすぎません。例えばファイルシステムとしてAWSの提供しているS3(Amazon Simple Storage Service)を利用することもできます※12。
※12 (参考リンク)HadoopのファイルシステムとしてS3を利用する
S3を使うための実装には以下のような2種類があり、それぞれs3nもしくはs3というURIスキームで表現されます。
S3ネイティブファイルシステムは普通にS3上のファイルを読み書きするファイルシステムでS3自体の制限として5GB以上のファイルは扱えません。一方、S3ブロックファイルシステムは5GB以上のファイルも扱えますが、Hadoop用に特化しているため他のアプリケーションからは見れません。S3ブロックファイルシステムはS3のレガシーファイルストレージであるため、基本的にはS3ネイティブファイルシステムを利用することが推奨されています。
全ノードでcore-site.xmlに以下のようにfs.s3n.awsAccessKeyIdとfs.s3n.awsSecretAccessKeyを設定して認証できるようにすれば、S3ネイティブファイルシステムでS3上のデータにアクセスできるようになります。
S3上のデータを操作する際にはこのようにs3n://[バケット名]/を付けてください。
アクセスキーやシークレットキー、バケット名については別項で取り扱うので、詳しくは本書を参照してください。
さて、ここまで素のHadoopを使ってきましたが、いかがだったでしょうか。各サーバ間でパスワード無しでSSHログイン可能にしたり設定ファイルを適切に設定したりと、いろいろと面倒な手順もあり大変だったかと思います。加えて、Hadoopはまだまだ新しい技術なので、日々バグ報告が行われてそれに対する修正が行われたり、機能が追加された新バージョンが公開されたりしています。
そういった修正の中にはHadoopを利用するうえで致命的なものやセキュリティ的な問題のものもあるため、できるだけすぐに取り込んで安全に利用できる環境にしたいところですが、検証を行って動作に問題が無い状態を確認しつつそういった修正を取り込んでいくのは正直なところなかなか大変です。日々発生するさまざまな修正を簡単に取り込みつつ、もっと簡単にHadoopを利用していく方法は無いのでしょうか。
Hadoopには他にも色々な利用方法があります。前回と今回は素のHadoopの利用方法について説明してきましたが、他にもCloudera社が提供しているCDH(Cloudera's Distribution including Apache Hadoop)やMapR社が提供しているMapRなど、その辺りをサポートしてくれるディストリビューションも存在します。
ただ、いずれにしても運用の手間は掛かってしまうだろうというのが筆者の考えです。データ解析を専門的に行うようなチームがあって、修正を取り込んだり、Hadoop自体のバージョンをアップデートさせたりといった作業が苦にならないのであれば良いのですが、実際には少人数、もしくはひとりでHadoopを利用しているケースも多いのではないでしょうか。そういった場合、なかなか修正の取り込みやバージョンアップにまで手が回らないのではないかと思います。
佐々木達也著
秀和システム 2400円(税別)
「ビッグデータ(=従来のコンピュータシステムでは、しまったり、探し出したり、調査したり、人間にわかりやすく加工したりが難しい、とても大きなデータ)なんて自分には関係ない」そう思っているエンジニアに贈る「Hadoop」の体験型入門書です。数億のユーザを抱えるSNSの利用データのように「雲をつかむような話」ではなく、Webサイトエンジニアや普通のプログラマが親しみを感じられるような普通のデータと、Amazon EMRという手軽な実験環境を使い、実際にHadoopを動かしてみます。手軽に短い時間で分散処理のメリットを体験することで、手元の業務に眠っているかもしれないビッグデータの活用に可能性を見出せるかも知れません。
Copyright © ITmedia, Inc. All Rights Reserved.