[ODI, Hadoop] Hadoop and HDFS - file system tools

原文はこちら。
https://blogs.oracle.com/dataintegration/entry/hadoop_and_hdfs_file_system

Oracle Big Data Appliance(および他のHadoopクラスタ)を支えているのはHDFSです。HDFSでファイルを操作するのは、通常のファイルシステムを操作するのと全く同じです(中身は全く違いますけど)。しかし、OSから操作する場合、異なるAPIを使います。ローカルファイルシステムは単にmkdirやrmを使うところ、Hadoopは"hadoop fs"コマンドをmkfirやrmの前に使います。ODIにはパッケージエディタで利用可能なファイル管理ツールがあります。ファイルを準備したり移動したりするためのツールです。HDFSのコマンドはちょうどODIの他のツールと同じように使えます。その方法を見てみましょう。
ここで、ツール群を追加して一般的なHDFSファイルシステムのコマンドを実行したり、ODIパッケージエディタからMap-Reduceジョブを実行させるツール群を追加する方法をご紹介します。これは、Hadoopのエコシステムを活用するインタフェースを構築するためのODIのサポートにさらに追加できるものです。
あなたは、ユーザーが簡単にHDFSのアクションを実行し、Map-Reduceジョブを実行できることがわかると思います。これは別のエントリでご紹介します。ODIツールを使ってパッケージエディタを拡張し、以下のようにまとめました。
ツール説明
HDFSCopyFromLocalFile1個もしくは複数のファイルをローカルファイルシステムからHDFSへコピーする。
HDFSCopyToLocalFile1個もしくは複数のファイルをHDFSからローカルファイルシステムへコピーする。
HDFSMkDirsHDFSにディレクトリを作成する。存在しないディレクトリがパスに含まれている場合は直ちに作成する。
HDFSMoveFromLocalFile1個もしくは複数のファイルをローカルファイルシステムからHDFSへへ移動する。
HDFSRmHDFSのディレクトリを削除する(再帰的に削除可能)。
HadoopRunJobMapperクラス、Reducerクラス、フォーマット、入出力等のジョブパラメータを指定してMap Reduceのジョブを実行する。
これらは、すべてのHadoopのトレーニングでユーザが知ることになる一般的なアクションで、ODIがパッケージツールボックスのFilesグループに持つローカルファイルシステムツールと同等です。以下の例からわかるように、HDFSCopyFromLocalFileはコピーするためのソースURIとHDFS上のコピー先を引数にもちます。とてもシンプルですね。これはFileSystem SDKを使ってHDFSファイルシステムを操作しています。以下のHDFSCopyFromLocalFileは、HDFSに、ローカルファイルシステムから/home/oracle/weblogs/apache08122012_1290.logというファイルをコピーし、/users/oracle/logs/inputにコピーします。非常にシンプルです。

上記のフローは基本的に
  • ディレクトリ構造の削除
  • ディレクトリの作成
  • いくつかのファイルをコピー
  • いくつかのMap-Reduceジョブを実行
  • 除去と片付け
を実施しています。
こうしたツールを、これはもう一つの製品の拡張方法であるODIのOpenTool SDKで開発しました。上図で、ツールボックスにPluginsフォルダにツール群があることがおわかり頂けると思います。これらのツールはorg.apache.hadoop.fs.FileSystem、org.apache.hadoop.fs.Pathとorg.apache.hadoop.conf.Configurationを含むHadoopのSDKを使用しました。 ODI Open Toolsの別のクールな側面は、KM(Knowlege Module)のタスク内のコマンドやプロシージャコマンドから、ツールを呼び出すことができることです。
ODIを実行するために依存関係のあるJARファイルが使用可能でなければなりません。これは、これらのSDKを使用する開発者に対する、ウェブ上のフォーラムで共通の回答です。HadoopRunJobはJobConf SDKを使用してMap-Reduceジョブ(このエントリのThomas Jungblutからの返信に従います)を定義します。これを別のエントリで取り上げる予定です。HadoopとODIの統合に関する詳細は、以下の自習資料をご覧下さい。
Calling a mapreduce job from a simple java program (stackoverflow)
http://stackoverflow.com/questions/9849776/calling-a-mapreduce-job-from-a-simple-java-program
ODI 11g - Hadoop integration self study
https://blogs.oracle.com/dataintegration/entry/odi_11g_hadoop_integration_self

0 件のコメント:

コメントを投稿