SQLライクにMapReduce処理ができる「Hive」の使い方:きょうから試せる Hadoop“スモールスタート”ガイド(終)(3/3 ページ)
実際にHadoopで処理を実装していきながら「Hadoopは、誰にだって扱える」を体感しましょう。今回は、Hadoop Streamingとは別のHadoopの利用方法となる「Hiveの使い方」を解説します。
外部テーブルから読み込み
ここまではHiveを使ってデータベースや内部テーブルについて扱ってきました。実際、これらのデータベースや内部テーブルはHDFSに構築され、データ自体もHDFSに置かれています。
一方、ここで扱う外部テーブルとは、ローカルファイルシステムあるいはAmazon S3上に置かれているデータファイルをまるで内部テーブルのように扱える仕組みです。データ自体がHDFSに置かれるわけではありません。外部テーブルを宣言したデータファイルからは、データを読み書きするときにHiveQLを使うことができます。
では、実際に外部テーブルを作成してみましょう。まず次のようにカンマ区切りのデータファイルを用意します。データファイルは複数存在しても構いません。今回は食べ物の名前と値段が書かれたデータファイルを考えてみました。
からあげ,400 ラーメン,800 サラダ,350 ギョウザ,300 天ぷらそば,600
アイス,100 カレー,550 麻婆豆腐,750
では、これらのデータファイルを使っていよいよ外部テーブルを作成してみます。以下はfoodsという外部テーブルを作成する例です。LOCATIONでパスを指定するのですが、ファイルではなくディレクトリを指定してください。
これだけで、通常のテーブルのように先ほどのデータを参照することができるようになりました。例えばこのように全件出力してみましょう。
全件出力されることが確認できました。さらに、HiveQLを実行しただけですが裏ではMap処理とReduce処理に変換されてHadoopジョブが実行されていることも確認できます。
この状態でdata2.txtの内容にたい焼きの行を追加してみます。このたい焼きのデータはHive側から読み出すことが出来るでしょうか。
アイス,100 カレー,550 麻婆豆腐,750 たい焼き,120 # 追加
この状態でHiveQLを実行するとたい焼きの結果も問題なく出力されます。このことからもわかるように、外部テーブルの仕組みは単純にLOCATIONで指定したディレクトリのデータの取り扱いをSQL形式で行えるようにするというだけです。
外部テーブルへの書き込み
外部テーブルへの書き込みも簡単に行えます。まず、書き込みを行うためのhigh_price_foodsという外部テーブルを作成します。
次に、foodsテーブルの金額が500円を超えるデータのみをhigh_price_foodsテーブルに書き込んでみます。
実際にhigh_price_foodsテーブルを見ると、金額が500円を超えるデータが記録されていることが確認できます。
Hadoopファーストガイド
佐々木達也著
秀和システム 2400円(税別)
「ビッグデータ(=従来のコンピュータシステムでは、しまったり、探し出したり、調査したり、人間にわかりやすく加工したりが難しい、とても大きなデータ)なんて自分には関係ない」そう思っているエンジニアに贈る「Hadoop」の体験型入門書です。数億のユーザを抱えるSNSの利用データのように「雲をつかむような話」ではなく、Webサイトエンジニアや普通のプログラマが親しみを感じられるような普通のデータと、Amazon EMRという手軽な実験環境を使い、実際にHadoopを動かしてみます。手軽に短い時間で分散処理のメリットを体験することで、手元の業務に眠っているかもしれないビッグデータの活用に可能性を見出せるかも知れません。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
もし、あなたが「“ビッグデータプロジェクト”を任せる。何とかするように」と言われたら
「ビッグデータプロジェクトを始めることになった」ら、具体的に何をするのか。本連載は、「ビッグデータプロジェクトの“進め方”」を業務視点/ビジネス視点の両面から体系的に理解し、具体的に実践していく方のためのナレッジアーカイブです。第1回目は、「ビッグデータとは何か」の基礎と、「ビッグデータ基盤の概要とメリット」を解説します。Hadoopは「難しい・遅い・使えない」? 越えられない壁がある理由と打開策を整理する
ブームだったHadoop。でも実際にはアーリーアダプター以外には、扱いにくくて普及が進まないのが現状だ。その課題に幾つかの解決策が出てきた。転換期を迎えるHadoopをめぐる状況を整理しよう。いまさら聞けないHadoopとテキストマイニング入門
Hadoopとは何かを解説し、実際にHadoopを使って大規模データを対象にしたテキストマイニングを行います。テキストマイニングを行うサンプルプログラムの作成を通じて、Hadoopの使い方や、どのように活用できるのかを解説します欧米の金融業界は今、どうHadoopを活用しているか
Hadoopは、欧米の金融関連サービス業界でどう活用されているか。米Hortonworksの金融サービス業界担当ゼネラルマネージャーへのインタビューで得た情報を、2回に分けてお届けする。今回は金融業界におけるHadoopのユースケースを概観する。