hortonworksのhadoopを触る
hadoopを試したい
motivation(なんで触ろうと思ったのか)
GOAL(とりあえずの目標)
ディストリビュータ
- hadoopのディストリビュータは、Clouderaしかしらなかったが、先輩に聞いたところhortonworksっていうディストリビュータが最近、活気があるらしい。
- ざっと、ドキュメントとかサイトを見たところ、Clouderaよりも充実してそう(私がわかりやすそう)なので、hortonworksを使用することにした
- Clouderaの使い方も押さえてはおきたいが。。。
Sandboxを動かす手順
ドキュメントがすごい丁寧なので、ドキュメント通りにすれば問題なく動くがメモしておく。 ハンズオンの時は、Hadoopの構築だけでつらかったが、仮想マシンを提供してくれるらしい。 すばらしすぎる。
- ここから仮想マシンをDownloadする
- ova形式でVMが落ちてくるので、VartualBoxに展開し、起動
すると、VMのコンソール画面に下記のように表示される
http://127.0.0.1:8888/ にアクセスするとユーザ登録の画面へ
登録すると、下記のメイン画面へいく
USE HADOOPのリンクを押すと、下記のような画面へいく。ここからpigとかHiveもうてるみたい
- tutorialsのリンクを押すと、チュートリアルができる画面へ
- かなり充実してる
チュートリアルをはじめる
Uploaded your data file into HDFS
- データのダウンロード
- 2000年から2001年の間のNewYork市場の為替レートのデータみたい(約11MB)
- https://s3.amazonaws.com/hw-sandbox/tutorial1/NYSE-2000-2001.tsv.gz
- Upload
- 解凍したダウンロードしたデータをFile Browserからアップロード
- 正しく読み込まれているかの確認
Used Apache HCatalog to create a table
- HCatalogへの登録
- HCatalogによって、Hadoopクラスタ内のデータの場所やメタデータを保持することができる。これによって、データの場所やメタデータを意識することなく、MadReduceやスクリプトを実行することができる。Hiveやpigをサポートしている。
- ???わからない・・・。
- create a new table from file
- nameとfileを指定
- 型をもってくれているこということか?
Hive
- Hiveとは
MapReduceのロジックは開発言語の「Java」で記述する必要があります。Javaでの開発は一般に、工数がかかるというデメリットがあります。そこで、より簡単に分散処理を行えるようにしたオープンソースのツールが登場しました。それが本連載で紹介する「Pig」および「Hive」なのです。(http://itpro.nikkeibp.co.jp/article/COLUMN/20120418/391529/)
以下、サンプル
Select * from nyse_stocks
describe nyse_stocks
- テーブルの型の一覧を返してくれる
select count(*) from nyse_stocks
- 行数をカウントする
- すこし時間がかかる
select * from nyse_stocks where stock_symbol="IBM"
- stock_symbolがIBMのものを全件取得
- SQL likeなっていわれるけど、基本的な操作を行うだけなら、SQLと同じ記法っぽい
Pig
以下、サンプル
Data_all = LOAD 'default.nyse_stocks' USING org.apache.hcatalog.pig.HCatLoader(); Data_IBM = filter Data_all by stock_symbol == 'IBM'; Group_IBM = group Data_IBM all; sv = foreach Group_IBM generate AVG(Data_IBM.stock_volume); DUMP sv;
?
- Hiveとpigは同じMapReduceのラッパーを提供してくれるという理解でよいのだろうか?
- 使い分けとかどうすればいいのだろうか?