17982


ログ分析を行うのにApache
Sparkを検討しています。しかし、本当にSparkを使うことが他の手段よりも効果的なのかの判断がなかなか難しく悩んでいます。

このサイトでは、１ノードに収まるディスクで対応できるならHadoopなどを使う必要はないという主張がされています。  
<https://www.chrisstucchio.com/blog/2013/hadoop_hatred.html>

現在ではSparkなどの高速なHadoop技術も成長しているので、この記事が書かれたころとは状況は変わっていると思います。  
それでもこのサイトが主張するように１つのノードに収まるデータ量であれば集計はMySQLやC/C++などを選択すべきでしょうか。

明確な答えでなくてもかまわないので、自分なりの指標などを持っている方がいらっしゃいましたらお教えいただきたく思います。

お願い致します。

### 追記

質問のデータ量という話からはちょっとズレますが、MySQLで１億レコードのベンチを取ってみました。  
<http://qiita.com/devneko/items/56c391e75537db07a515>  
１億レコードともなると簡単な処理でも1クエリ1分以上はかかりそうです。  
マシンの性能アップやチューニングで改善すると思いますが、10億レコードくらいになってくると  
さすがにMySQLなどで集計するのは辛くなるのではないでしょうか。  
ちなみに1億レコードの元データはSQLのプレーンテキストで約10GBほどなので、データ量の話しに直すと10億レコードは100GBほどということになります。  
CPUの使用率があがってないので、C/C++などでマルチスレッドで処理した場合はもっと性能が出そうです。


CC BY-SA 3.0
2015-09-30T12:59:14.433
17111
2015-10-23T08:48:16.423
2020-06-17T08:14:45.997
-1
3416
question
scala
Apache SparkなどのHadoop技術を使う意味がでてくるデータ量はどれくらいでしょうか？


あえてデータ量のみを条件にした一般論で話をすれば1ノードで処理できるデータ量なら余計なフレームワークはオーバーヘッドにしかならないので不適、という当たり前すぎてたいした意味の無い結論にしかならないでしょう。

実際にはデータ量というのは要素の一つでしかなく、データの中身、処理の内容、更新や分析の頻度、用意できるリソース、その他諸々いろいろな条件が選択に大きな影響を与えるようなことなので、それが明らかにならない限り誰にも答えられないタイプの質問です。

何らかの理由で明確な判断やその根拠を求められているのであれば、実際のデータ(の一部)と処理でベンチマークを取るべきです。


CC BY-SA 3.0
2015-10-01T02:23:31.413
17126
2015-10-01T02:23:31.413
5793
17111
answer


想定している処理の並列度および要件(応答時間)，データの性質などに深く依存します．よって，「データ量が1台に収まる」という条件のみでは決定が難しいです．性能要件，データの流量および増加量，用意できる計算機などから逆算すると良いでしょう．

以下のスライドの4ページ目から13ページ目が参考になるかと思いますので，参照してみてください．  
<http://seminar-materials.iijlab.net/iijlab-seminar/iijlab-
seminar-20150326.pdf>


CC BY-SA 3.0
2015-10-23T08:48:16.423
17982
2015-10-23T08:48:16.423
3600
17111
answer