Hadoopのテスト環境はどうやるのがいいのか?

22
御徒町@MultiVersionConcurrentClimber(MVCC) @okachimachiorz1

Hadoopで真に大事なのは、テスト環境だったりする。基本的に分散環境が前提になるので、どのレベルまでが単体テストなのか?どの程度までローカルでテストできなくてはいけないのか?というのは常に問題になるわけで。その意味ではCI含めた開発環境の重要性は以前よりも高いな、と今日思った。

2011-06-21 00:50:47
御徒町@MultiVersionConcurrentClimber(MVCC) @okachimachiorz1

HadoopのOS化ってのは一つの流れだとは思うけど、その場合、その上位のDSLが開発環境になるわけで。では、そのDSLにどこまで、どのようなテスト実行環境があるの?ってのは、やっぱり重要で。そもそも「プラットフォーム」って何って考えるところまで行くと思う。

2011-06-21 00:55:17
御徒町@MultiVersionConcurrentClimber(MVCC) @okachimachiorz1

現時点の裸Hadoopは、その辺の配慮がまるでないので、現状のままでは駄目駄目感が強い。多分コレ、usecaseがBIに限定されすぎているせいもある。残念ながらBIでの品質要求は一般的に高くないのが現状。それにHadoopが引っ張られてる印象もある。

2011-06-21 00:59:21
御徒町@MultiVersionConcurrentClimber(MVCC) @okachimachiorz1

Hadoopが口火で分散環境の広がりが始まると思うけど。テスト環境どうするのは結構出てくると思う。

2011-06-21 01:04:01
御徒町@MultiVersionConcurrentClimber(MVCC) @okachimachiorz1

windowsで開発したい、ってニーズがあるのはわかる。特に大規模SIであればわかる。とほほ。#hadoop

2011-06-21 01:12:00
wyukawa @wyukawa

Hadoopのテスト環境というか開発環境全般ってどうやるのがいいんだろうな。現状はビックバン統合になってそうだけど。

2011-06-21 09:19:51
wyukawa @wyukawa

ローカルPCがWindowsだとその時点でHadoop環境作るのが面倒。やるとすれば、Cygwin入れてだもんなあ。まあ例えば、疎通はローカルPCでローカルモード、単体はローカルPCのVMにLinuxで擬似分散、結合はちゃんと完全分散環境作ってそこでテストとかかな

2011-06-21 09:25:50
wyukawa @wyukawa

まあBIとか分析系だとそんなにテストしてない気がする。その代わりゴミデータに苦闘するというw

2011-06-21 09:34:33
wyukawa @wyukawa

例えば、完全分散でしか発生せずしかも再現性無しのバグをどうデバッグするかっていうと手がかりはログしかないよなあ。かといってなんでもかんでもログ出力してたらIO大丈夫なのっていう話もある

2011-06-21 09:36:54
Kenichiro HAMANO @hamaken

BI系と一括りにされるとあれなんだが、各データの処理結果を検証するのは当然。じゃないと、このデータはどう処理されたんだーと問題になる。意外とみんな細かいところまで見てる。 サンプリングせずに全件をみてロングテールを見ているときは、なおさら。当たり前の話だけど。

2011-06-21 09:47:41
Ito, Hiroshi @pellosh

これが大変なんだよなあ。CPUが混じるとある種の計算の検証は死ねるし。RT @hamaken BI系と一括りにされるとあれなんだが、各データの処理結果を検証するのは当然。じゃないと、このデータはどう処理されたんだーと問題になる。意外とみんな細かいところまで見てる…略

2011-06-21 09:53:13
Kenichiro HAMANO @hamaken

MapReduceアプリの(分散処理としての)デバックは、まだ課題がある。 今のところは勘所がわかったメンバがいればなんとかなる。大量人員を必要とする開発では、そこを解決しないと辛いだろうね。

2011-06-21 09:53:31
Kenichiro HAMANO @hamaken

それも必要。もっと手前もあるけど。 RT @pellosh モデル化してべき等性とか副作用排除とか事前検証するのが大事なのかな。RT @hamaken MapReduceアプリの(分散処理としての)デバックは、まだ課題がある。 今のところは勘所がわかったメンバがいればなんとかなる

2011-06-21 10:06:50
Geforce RTX 3060Ti @showyou

hadoopのテスト環境、まずはデカイデータじゃなくて小さいデータから始めるってのがありそうな気もするけどそれはハードレベルの確認が出来ないのかなぁ。

2011-06-22 07:21:42
御徒町@MultiVersionConcurrentClimber(MVCC) @okachimachiorz1

@showyou いや、多分、今後はMapreduceを裸で書くってのはすげー減ると思うんですよ。生産性低すぎだから。んじゃ~、Pig・Hive・AsakusaのローカルUTってどこまでできるの?って話ですね。あとCIにどう組み込みか、とかそんな感じですね。

2011-06-22 07:36:19
Geforce RTX 3060Ti @showyou

@okachimachiorz1 昨晩のHadoop話ですと、擬似分散環境なら起きないけど完全分散になったときに起きる問題、とかもありそうですね。Pig/Hive/AsakusaのUTは同意っす。Pigで延々集計した後にエラーでて終了、とか泣けますし。。

2011-06-22 07:41:14
御徒町@MultiVersionConcurrentClimber(MVCC) @okachimachiorz1

@showyou 分散でのエラーってのは微妙で単純な環境バグもあるんですけど、そもそもHadoopがかなりピーキーな仕様なので、なんか今まで表にでなかったヤツが、はずみで顕在化するということもあって、その場合はハマリますね。

2011-06-22 07:45:13
marble @marblejenka

@showyou 知ってると思いますが、Pigの動作確認はillustarateが便利ですよ。

2011-06-22 07:47:35
Geforce RTX 3060Ti @showyou

@marblejenka はい、結構便利っすね。ただillustrateだと結局printfデバッグと大差ないんじゃ・・って気も

2011-06-22 07:49:52
marble @marblejenka

@showyou 気持ち的にはpigはお手軽さに利があるので、pigunitとか使ってまでテストは書きたくないなあと。ほんとにテストしないといけない複雑さがあるならpigじゃなくてasakusa使いたいです。僕の場合ですが。

2011-06-22 07:54:00