NetApp Tech OnTap NetApp Logo
NetApp Tech OnTap
「みなさんのNetApp FASストレージがすぐ分析Readyに!」
~NetApp NFS Connector for Hadoop~

シェアする NetAppオフィシャルFacebook

はじめに

こんにちは。今回はとてもネットアップらしいソリューションが登場したのでそのご紹介と利用方法をお話したいとおもいます。本ソリューションはいわゆる「NetAppのビッグデータ Hadoop ソリューション」に位置します。これまでのNetAppのビッグデータソリューションは下記に連載させていただいたようにNetApp Eシリーズを使ったものが主流でした。

参考:

「NetApp ビッグデータソリューション NetApp Open Solution for Hadoopの全貌」

「進化を遂げたNetAppビッグデータソリューションfor MapR」

NetApp Eシリーズはブロックストレージ専用のハイパフォーマンス・高密度ストレージです。一方、NetAppはもう1つ古くから成長し続けているストレージがあります。それがNetApp FASシリーズです。FASシリーズはストレージ専用OS「clustered Data ONTAP(以前はData ONTAP)」を持ちマルチプロトコルで様々な用途に利用できるエンタープライズストレージです。豊富な機能をもち長期にわたりお客様・パートナー様に愛され続けているシリーズです。今回はこちらのFASシリーズにスポットライトがあたったソリューションになっています。小難しい事は全くありませんのでご安心ください。また、このソリューションはオープンであるため誰でも利用が可能になっていますので、その利用方法をお伝えします。

その名は「NetApp NFS Connector for Hadoop」

名前だけだと、いまいちピンとこない人もいるかもしれません。一言でいうとすると「NetApp FAS ストレージに格納されているデータをHadoopの様々なアプリケーションからすぐに利用できるようになる」です。オイシイのはそれだけではないのですが順番にお話していきます。

まずは、簡単にHadoopの世界の話から入りたいと思います。Hadoopは並列分散処理基盤を構成します。一般的にはサーバを並列に複数並べてクラスタを組むことでコンピューティングとディスクIOを分散させるように処理を行う事が可能になります。この時、もちろん処理を行う対象データが存在しそれらは保存されているわけですが、Hadoopの中ではHDFSという専用の分散ファイルシステムがあり、そこの中に格納されているデータを対象として様々なアプリケーションが利用することになります。このHDFSというのが少し曲者で、POSIXに準拠していません。汎用OSにファイルシステムとしてマウントすることを想定しておらず、JavaなどのAPIを通じてアプリケーションから直接利用するというものになっています。アプリケーション開発者はともかく、Hadoopを構築するインフラを生業としているエンジニアの方々にとってはとっつきづらいかもしれません。私もはじめはそうでした。よってHadoopを使って自分たちのしかるべきデータを活用、分析したい場合「データの生成元」からその対象データを「HDFS」へHDFSの専用APIを通じてコピーする必要があります。ここで一手間かかるわけです。「NetApp NFS Connector for Hadoop(以下NFS Connector)」はこれを改善してくれます。

例えば、なんらかのマシン・サービスログ等をファイルサーバとして利用していたNetApp FASストレージへ保存をしていたとします。このデータに対してHadoopの様々エコシステムを使って利用したい時、通常ですと、先ほどのようにこのNetApp FASストレージの該当のボリューム上のデータをHDFSへHDFSのお作法に準拠しながらコピーし、ジョブを投げるまた、所望のアプリケーションから利用する手順になります。

しかしながら、NFS Connector を使うとこのコピー作業が不要になります。

NFS Connector を使うとこのコピー作業が不要になります。

その他の特徴を以下に記載します。

  • 分析基盤用の追加ハードウェア投資を必要としない
  • HDFSでは3面のレプリカを持つことでデータを保護しているが、データはNetApp FASストレージの実装(RAID-DPやSnapMirrorなど)により保護されるため効率よく保存
  • これまで利用していたジョブの変更を必要としない
  • YARNとの連携によりTASK処理およびIOは分散される
  • NetApp FASストレージの様々なデータ管理機能が利用可能
  • オープンな実装でありNFS Connectorを使う上で独自コードは存在しない
  • Apache Spark、Tachyon、Apache HBaseなどのエコシステムを利用可能
  • HDFSもサイド・バイ・サイドで利用することも可能
  • 設定ファイルを変更するだけで、ソースコードの変更は必要ない

利用方法

ここからは実際の利用方法について書いていきます。実はNFS Connectorを利用するためのjarファイルはすでにGitHub(https://github.com/NetApp/NetApp-Hadoop-NFS-Connector/releases)で提供されています。そこにも利用方法は書いてあるのですが、補足を入れながらご説明します。

  1. 準備

    利用するためにApache Hadoop 2.2以上が必要です。また、NFSをHDFSの代わりに利用することになりますので、お持ちのNetApp FAS ストレージのNFS Export領域が必要になります。clustered Data ONTAP でお試し頂きたいところですが、Data ONTAP 7G/7-Modeでも構いません。今回はclustered Data ONTAP を前提として話を進めます。

    すでに該当バージョン以上のApache Hadoop環境をお持ちであればそちらをご利用いただいてもいいですし、別途1サーバ(マシン)でご用意頂いても問題はありません。

  2. NFS Export の準備

    今回説明上利用しているSVMは以下を想定しています。

    以下はSVM:nfsdrivervserverに適用した例

    利用するNFS VolumeのSVMの設定を以下のように入れます。(以下はSVM:nfsdrivervserverに適用した例)

    FAS8060-cmode::> vserver nfs modify -vserver nfsdrivervserver -nfs-rootonly disabled
    FAS8060-cmode::> vserver nfs modify -vserver nfsdrivervserver -mount-rootonly disabled
    FAS8060-cmode::> FAS8060-cmode::> set advanced
    Warning: These advanced commands are potentially dangerous; use them only when directed to do so by NetApp personnel.
    Do you want to continue? {y|n}: y
    FAS8060-cmode::*> vserver nfs modify -vserver nfsdrivervserver -v3-tcp-max-read-size 1048576
    FAS8060-cmode::*> vserver nfs modify -vserver nfsdrivervserver -v3-tcp-max-write-size 65536

    LIFも少なくとも1つ作っておきます。

  3. jarファイルダウンロード

    普通にダウンロードしてください。

    https://github.com/NetApp/NetApp-Hadoop-NFS-Connector/releases

    本投稿時点でバージョンは1.0.4です。

  4. ダウンロードしたjarファイルをResourceManagerとNodeManagerにコピー

    共通ライブラリディレクトリで例えば 「/usr/lib/hadoop/lib」へコピーします。

  5. core-site.xmlの編集(今回はプライマリのファイルシステムをNFSに変更しています。

    core-site.xmlの編集


  6. nfs-mapping.jsonの作成

    nfs-mapping.jsonの作成

  7. ResourceManagerとNodeManagerを起動します。

    設定としてはここまでです。追加のコンフィグレーションはありますが、直感的ですし、それほど手間を要するものではないかと思います。

    このあと、hadoop コマンドファイルシステムへアクセスしたり、でサンプルジョブなどを投げてみて実行可能かを試してみてください。

もっと手っ取り早く試す

前述まで利用方法を記載しましたが、NetApp FASストレージはあるけれども、Hadoop環境を持っていない、またはプロダクションのものは使えない・・・というようなこともあるかもしれません。また、「やっぱり試すだめでも手間かかる!」というご意見もあるかもしれません。

そこで少しだけ楽をしてお試しできるようにしたものをご用意しました。ちょっと遊び心も入っていますが、今話題のDockerを使った方法です。1サーバのHadoop環境がプリセットされたイメージを用意し、今回の必要な設定ファイルを編集してビルドする方法になります。サーバDockerそのもの理解が足りていないので敷居が高い!と思う方もいらっしゃるかもしれませんが、とても簡単なのでぜひチャレンジいただけると幸いです。詳しくは下記のNetApp Japan Blogのページにアップしていますのでご参照ください。

Try the NetApp NFS Connector

おわりに

本ソリューションは2015年2月にリリースされた(本投稿時点で先月)できたてホヤホヤのものです。バージョンアップもされる可能性がありますが、ゆくゆくはメインのHadoop トランクにもコントリビュートする計画もあるようです。すでにオープンソースとして利用可能になっておりますのでぜひダウンロードしてお試しいただければとおもいます。場合によってはみなさんのファイルサーバが宝箱に変化するかもしれません。

参考

倉持健史(くらもちたけし)

倉持健史(くらもちたけし)
システム技術本部 システムズエンジニア
NetApp




東京電機大学情報科学科卒、UNIX 系 SIer、Linux HA クラスタソフトウェアメーカを経て 2011 年 9 月パートナー SE として入社
Soution SE 社内外の技術支援を中心に活動、clustered Data ONTAP はもとより、BigData関連他、Flash技術、
IaaS Platform(OpenStack)等担当
1978 年 8 月 22 日 東京生まれ
基本はインドアだが登山も好き、TEKKEN はポールでゴリ押し
関連情報
関連情報
関連情報
Go further, faster TRUSTe
お問い合わせ   |   購入方法   |   フィードバック   |   採用情報  |   登録   |   プライバシーポリシー   |   © 2015 NetApp