Hadoopジョブで使用するファイル・ディレクトリを準備します。
入力データをローカルファイルシステムからDFSにコピーします。
出力ディレクトリをDFSに用意します。
例
コマンド実行例:
$ hadoop fs -mkdir /user/bdppuser1/input-dir <Enter> $ hadoop fs -copyFromLocal /home/bdppuser1/input.txt /user/bdppuser1/input-dir/input.txt <Enter>
$ hadoop fs -mkdir /user/bdppuser1/output-dir <Enter>
入出力データは、POSIXインターフェースを利用しているミドルウェアやプログラムから直接入出力することもできます。
例
RDBから抽出したデータを直接DFSに格納:
$ mkdir /mnt/pdfs/hadoop/user/bdppuser1/input-dir <Enter> $ RDBからのデータ抽出プログラム > /mnt/pdfs/hadoop/user/bdppuser1/input-dir/input.txt <Enter>
Hadoopジョブが出力したデータを直接RDBに格納:
$ RDBへのデータ登録プログラム < /mnt/pdfs/hadoop/user/bdppuser1/output-dir/part-r-* <Enter>
上記のパス/mnt/pdfs/hadoopは、本製品のインストール時にbdpp.confファイルに指定した以下のパラメーターに対応しています。
BDPP_PDFS_MOUNTPOINT = /mnt/pdfs
BDPP_HADOOP_TOP_DIR = /hadoop
この場合、上記の例にある以下の2つのファイルの実体は同じものになります。
OSにマウントされたファイルシステム上の/mnt/pdfs/hadoop/user/bdppuser1/input-dir/input.txt
Hadoopから使用するDFS上の/user/bdppuser1/input-dir/input.txt
また、入出力ディレクトリにファイルを格納する前に圧縮属性を付加しておくことで実データ量を削減することができます。圧縮属性の付加は、OS上のコマンドで行います。
例
入出力ディレクトリの圧縮:
$ chattr +c /mnt/pdfs/hadoop/user/bdppuser1/input-dir /mnt/pdfs/hadoop/user/bdppuser1/output-dir <Enter>
圧縮属性の確認:
$ lsattr -d /mnt/pdfs/hadoop/user/bdppuser1/input-dir /mnt/pdfs/hadoop/user/bdppuser1/output-dir <Enter>
上記の操作により、以降OSやHadoopを通して当該ディレクトリに格納するファイルが自動的に圧縮されます。ファイルを読み出す際には自動的に伸長されますので、利用者やアプリケーションで意識する必要はありません。
なお、圧縮属性はディレクトリ作成直後、ファイルを格納する前に付加するようにしてください。
参照
圧縮機能、chattrコマンド、およびlsattrコマンドの詳細は、「Primesoft Distributed File System for Hadoop V1 ユーザーズガイド」を参照してください。
注意
chattrコマンド、およびlsattrコマンドの実行時に『サポートされていない操作です』のメッセージが出力される場合、DFSが2MBを超えるデータブロックサイズで作成されている可能性があります。圧縮機能を使用するには、2MB以下のデータブロックサイズを指定してDFSを再作成してください。再作成の方法については、「14.2 ストレージシステムの削除」を参照してください。