Más contenido relacionado La actualidad más candente (20) Similar a JP version - Beyond Shuffling - Apache Spark のスケールアップのためのヒントとコツ (20) JP version - Beyond Shuffling - Apache Spark のスケールアップのためのヒントとコツ2. 自己紹介
名前は Holden Karau です
女性
IBM のソフトウェア・エンジニア
Alpine、Databricks、Google、Foursquare、および Amazon での勤務経験があります
「Learning Spark & Fast Data processing with Spark」の共著者
来年出版される Spark のパフォーマンスに関する最新の書籍*の共著者
@holdenkarau
Slideshare http://www.slideshare.net/hkarau
Linkedin https://www.linkedin.com/in/holdenkarau
3. 3
3IBM Spark 3
本日のアジェンダ
皆さんについて
RDD の再利用 (キャッシング、永続化レベル、およびチェックポイント機能)
キー・バリュー・データの処理
group キーの使用が危険な理由と対処方法
Spark アキュムレーターに関するベスト・プラクティス*
Spark SQL がすばらしい理由
Spark MLLib のパフォーマンスを高めるための将来の機能強化に関する説明
6. 6
6IBM Spark 6
RDD の再利用について (標準機能として利用
できるようになりました)
RDD を再利用する予定がある場合は、どうすべきでしょうか?
メモリーにうまく収まる場合は、メモリー上にキャッシングする
別のレベルで永続化する
「MEMORY」、「MEMORY_ONLY_SER」、「MEMORY_AND_DISK」、「
MEMORY_AND_DISK_SER」
チェックポイント機能を使用
ノイズを多く含むデータのクラスター
_2 & checkpointing」が役立つ場合があります
Richard Gillin
9. 9
9IBM Spark 9
groupByKey によって発生する問題
非常に大きな問題を引き起こします
同じキーを持つすべてのレコードを単一のレコードにグループ化
すぐに reduce 演算 (集計処理など) を行った場合でも、上記が発生
データのサイズが大きすぎてメモリーに収まらないため、ジョブで障害が発生する
SQL 環境を使用すればこの問題を解決できる
PROgeckoam
10. 10
10IBM Spark 10
groupByKey を使用した単語数計算のプログラムの再確認
val words = rdd.flatMap(_.split(" "))
val wordPairs = words.map((_, 1))
val grouped = wordPairs.groupByKey()
grouped.mapValues(_.sum)
13. 13
13IBM Spark 13
問題を引き起こすのはシャッフルだけでしょうか?
キー順にソートすると、すべてのレコードが同じパーティションに配置される場合がある
パーティション・サイズの制限 (2 GB 程度) の問題が発生することがある
または、パフォーマンスが悪化する
そのため、上記のとおりデータを処理し、キーに無意味な値を追加することが可能
(94110, A, B)
(94110, A, C)
(10003, D, E)
(94110, E, F)
(94110, A, R)
(10003, A, R)
(94110, D, R)
(94110, E, R)
(94110, E, R)
(67843, T, R)
(94110, T, R)
(94110, T, R)
PROTodd
Klassy
14. 14
14IBM Spark 14
Spark のアキュムレーター
障害が発生したレコードをトラッキングするための卓越した方法を提供
ダブルカウントによって、正確な結果が得られなくなる
小さな変更が発生すると、これまでうまく機能して機能がうまく機能しなくなる
特定の条件において、相対ルールで問題を解決できる場合がある*
Found Animals Foundation Follow
15. 15
15IBM Spark 15
アキュムレーターを使用して検証を行う
val (ok, bad) = (sc.accumulator(0), sc.accumulator(0))
val records = input.map{ x => if (isValid(x)) ok +=1 else bad += 1
// Actual parse logic here
}
// An action (e.g. count, save, etc.)
if (bad.value > 0.1* ok.value) {
throw Exception("bad data - do not use results")
// Optional cleanup
}
// Mark as safe
P.S: If you are interested in this check out spark-validator (still early stages).
Found Animals Foundation Follow
16. 16
16IBM Spark 16
Spark SQL によってパフォーマンスが改善するケースとは?
構造化データまたは半構造化データを処理する場合
それほど複雑でない*処理が利用できれば、それでも構わない場合
データのサブセットに対してのみ処理を行う必要がある場合
処理対象の最も高速なデータでさえ読み取りが行われない
この手法については標準の手法であると説明しましたが、一部卓越した手法**が利用できる
ようになりました。
内部機能を活用することで実現
** この卓越した手法を活用すると、スタックのオーバーフローが発生することがあります。すべての状態でこの手法が有効と
は限りません。この手法を試す前には、最寄りの Spark の担当部門までご相談ください。
Matti Mattila
17. 17
17IBM Spark 17
このようなケースで Spark SQL を活用するメリット
スペースを効率的に使用するカラムナー処理とキャッシングによってデータの表示が可能
処理をデータ・ストアにプッシュダウン可能
オプティマイザーが処理の内部を検証することが可能
通常の Spark では、処理の内部を検証することで (min(_, _)) と (append(_, _)) の違いを検出することは
できない
Matti Mattila
18. 18
18IBM Spark 18
レビュー: Spark の機械学習に codegen を組み込む
Spark SQL のコード生成に基づく
最初のドラフトには Quasiquote を使用
Janino に切り替えることで Java でのコンパイルに対応
最初のドラフトは Gradient Boosted Tree を使用
データベースの処理に基づく
最初のドラフトは Quasiquote を使用
スピーディーな処理のために Java を採用
詳細については、SPARK-10387 を参照
Jon
19. 19
19IBM Spark 19
すべての人*にとって reduce 処理は必須であるため、さら
に処理を迅速化するには
reduce と aggregate にはツリー構造のバージョンがある
無償の map サイドの reduce 機能は既に提供済み
しかし、さらに処理を迅速化するこが可能**
** さらに先進的なバージョンを作成することも可能
20. 20
20IBM Spark 20
@Override
public double call(Vector input) throws
Exception {
if (input.apply(1) <= 1.0) {
return 0.1;
} else {
if (input.apply(0) <= 0.5) {
return 0.0;
} else {
return 2.0;
}
}
}
(1, 1.0)
0.1 (0, 0.5)
0.0 2.0
生成されたコードの例 Glenn Simmons
21. 21IBM Spark 21
追加のリソース
プログラミング・ガイド (Java、Python、Scala に関する資料もあります)
http://spark.apache.org/docs/latest/
書籍
ビデオ
次のイベントに参加ください
Spark に関するお問い合わせへの対応
今後のイベントを確認するには、Twitter で私をフォローしてください
https://twitter.com/holdenkarau
このアンケートに回答して、次の日付を選択してください http://bit.ly/spOffice1
raider of gin
22. 22IBM Spark 22
Learning Spark
Fast Data
Processing with
Spark
(内容は多少古い)
Fast Data
Processing with
Spark
(第 2 版)
Advanced
Analytics with
Spark
近日中に発売:
Spark in Action
23. 23IBM Spark 23
Spark のビデオ
Apache Spark の Youtube チャンネル
YouTube 上の Spark のビデオ -
http://bit.ly/holdenSparkVideos
Spark Summit 2014 のトレーニング
Paco の Introduction to Apache Spark
24. 24
24IBM Spark 24
Quinn Dombrowski による猫の写真
ありがとうございました!
Spark のテストを現在実施中です。
以下からぜひアンケートにご協力ください。
http://bit.ly/holdenTestingSpark
最終的な結果は、@holdenkarau からツイートします。
Notas del editor https://www.flickr.com/photos/lorika/4148361363/in/photolist-7jzriM-9h3my2-9Qn7iD-bp55TS-7YCJ4G-4pVTXa-7AFKbm-bkBfKJ-9Qn6FH-aniTRF-9LmYvZ-HD6w6-4mBo3t-8sekvz-mgpFzD-5z6BRK-de513-8dVhBu-bBZ22n-4Vi2vS-3g13dh-e7aPKj-b6iHHi-4ThGzv-7NcFNK-aniTU6-Kzqxd-7LPmYs-4ok2qy-dLY9La-Nvhey-Kte6U-74B7Ma-6VfnBK-6VjrY7-58kAY9-7qUeDK-4eoSxM-6Vjs5A-9v5Pvb-26mja-4scwq3-GHzAL-672eVr-nFUomD-4s8u8F-5eiQmQ-bxXXCc-5P9cCT-5GX8no から取った写真 https://www.flickr.com/photos/haoli/6349372032/in/photolist-aF5c6A-beRSyF-cnUjBm-dxujoM-cukarf-5osZv-7LrwZb-8hzdGg-dWAXVw-7j8eCn-mU1GDC-du6Njj-9fNeUF-9fNf2c-jeQw2Z-pCQxin-pCPx1S-oYtpxt-pCSwKY-oYtpz2-5nAgBd-4kR3Xg-2CLt3B-mU1HuL-pCPx4h-54W9r-mTYJGa-pVkTdo-2CLrVX-9qkxeT-9s2gwi-9qkx1X-oYqiWL-pCSwD5-2xFigB-72vWUH-dWoBAi-opf1Pw-7jc8Bu-6QfmGS-pVcDuv-4FDmvY-dWufM9-9rFwy5-RAsAG-csnYJu-7QF7sx-83wqki-6faJ2B-7NJT8E https://www.flickr.com/photos/photoverulam/22626301622/in/photolist-AtpHbE-2biJ8i-cbDxLj-5SbTJs-bvJ6pR-4cKd6r-c5io3W-x7fuW-8GEnYV-7ngpwq-7ncv4F-7ncv36-6UPdLM-cS2j3s-6zXf6D-pps5P-6UPdZc-qbhws-egQRmW-61si6q-N864-65o5nN-4D4R6z-wavuvy-zzzrqc-6RG2Wn-zhbLnM-zhbLPP-coidfb-6d9XaA-cfPRY7-coidn7-coidLC-6hDKxj-se5vfT-t8y1tQ-5pRoHx-N854-8UuUYz-msyfx-9DqPba-49vTz-4c4F5-5QL2qk-v7G7z9-w4GYdP-irqiN-6Dc9WZ-2h4pkp-uKaPa から取った写真 https://www.flickr.com/photos/eleda/531867386/in/photolist-NZXDm-4H2JU2-chHH61-aDPTFx-5SYV6V-cgjJVm-bmsnCt-bWgJiD-eiwHzX-dQgyhR-3bN33R-eXWaq2-7Cr1HJ-5TxxkF-9prgZh-2Fehf-9xVUGJ-guZfLW-bWgJk2-93HkH6-9prh4Q-9poftp-eL99JM-9prerC-93LqUf-eLkz5L-6gsr2T-4ofma3-4obj4M-bV2a3u-7ygQQr-gS4GzY-GTrX9-7cLyNh-6yFvoe-fv6smP-4GRE5r-5kLaJv-5BE2Eg-4GVR4f-5Qnzri-6N33MP-4XfVC8-56HJVB-s5HTfd-4GVPwW-27SD6T-dGk3Vj-4ofqNC-9e2NoY https://www.flickr.com/photos/hckyso/2055866250/in/photolist-48ERpQ-c3rR-7DyiPo-4wAZRn-hzYJD4-9KvP1D-81rV7R-7F1fnm-dTQkdt-AdUJ-95BJsR-4hy1LG-891ckh-orpiij-7sDjhG-qdro34-s1x8Sm-7X3N8R-9JXXZC-aSJdR-ampKtE-6aTcDC-4P6QUv-9Zry8g-4d54Qi-ZMHEJ-g16RaZ-j95eU-9pp82n-7Efa4Y-apJqbb-6kYmJ8-t4N6G5-DCbLQ-7Smuw8-eir9us-ek6wdx-eiGMj1-5iMBeE-9bh3qr-8MpZPp-9kRy1L-ekLggu-du4gyZ-7bmbow-eir9vo-9kunTs-a2Wru-cQGXy5-DCcaR https://www.flickr.com/photos/geckoam/2956778600/ から取った写真 https://www.flickr.com/photos/latitudes/66424863/in/photolist-6SrNg-4FS7h3-n3aG-675Ggf-2mvpnV-4EPRi-agTjTx-3fuHL-7xHxwK-2RnrK-9hNfoi-2RnV1-2RnV3-6y5i2D-4EPSo-rgtUq-6amUo9-2RnV4-dxZEgS-HS6QM-dzGYC-cWsXC5-2RnV6-aDHNC-2RnV2-bqQu1Q-5kwTda-n35c-tvq1-rgu6G-NdcJr-6ahMeZ-oUnQSw-4kPxbs-xGmP-63cN61-6ahKok-rgtZY-zE7Wf-dghvFQ-sQaV1s-aLr6Tn-aWCMd4-whPuJ-jhaCqH-wM72t-Z5TfQ-a8Tqys-Nopr3-gz9b7W/ https://www.flickr.com/photos/foundanimalsfoundation/8055190879/in/photolist-dgNXBn-4L53ub-ajWE6R-ovhrAn-buEU2i-6TM1kv-6F62SX-dv1zwm-6JiU12-e3GnSr-877jwm-nkEHyT-5q27Jq-6Yngd4-4xcRaU-4x8Mgn-6g3oAX-8Hcwvh-6bdxVW-4xcUnq-idRQ5-4x93fz-9ix9t5-4x8QSt-4x9dhT-ovW6RV-ou7PoH-aukUjT-dbHTpJ-aPCdta-4xdaNG-4x8ViZ-4xd8kh-4x97ge-4xd1WS-4xduUs-4x8LaV-4x8Nig-4x8JEM-4x8Dxe-4x8U7n-4xdhs1-4xdfi9-4x8Gsg-4x9fL2-4xcSfW-4xcPmq-4x9akx-4x95e2-4x99n8 から取った写真 https://www.flickr.com/photos/mattimattila/8190148857/in/photolist-dtJDV4-9tFyUo-9tBqdY-9tymzv-9tBFDf-9tBf1Y-9tyhGp-9tBerj-9tBe4u-9tygGt-9tBc1L-9tB7aJ-9tBeC5-9tzzx6-9tzzq2-9tCw4u-9tzyAv-9tCsHo-9tzvf8-9tyS8X-9tCx5Y-c1JFsu-9tBD8s-9tyt9Z-9tymqa-9tykmD-9tyi3D-9tBPo1-9tyvJt-9tBofj-9tBB9E-9tyBVx-9tBanw-9ty7KM-9ty662-9tCwwY-9tCrVq-4YqUM-9ty2Fv-9tCry1-9tzu72-9tCrbo-9tyReT-c1PhzY-9tyR5r-9tywiK-9tyw9B-9tBt3b-9tBsFs-9tBswf https://www.flickr.com/photos/jb-london/6659711647/in/photolist-b9uLfB-oMFLKY-psumAe-PvmTe-9vatNK-qektu-8g3jSA-349iv-6GtGmj-oK9cEY-991iGG-cPJ8QU-8dxxkB-mF2Hpc-jKLC8r-o6k2UB-eqbByC-6RGY2L-56P4E3-75QJPn-meLnko-athMJ5-dshXvy-9Ddf4h-dWcYXQ-8cxGxH-4EaXuw-nSfe14-eeXM3G-6w6p2X-dz1VFC-cirujw-nRjjjG-nRon7D-BBRxV-b8Y4UZ-4ang32-8N4tS6-aqNUJJ-3daDSd-bdnv4Z-9jJxG8-otHbqV-CsKnA-4rLoBN-pczP4-niPcP4-f9xNuq-fpDcRL-7khdoc https://www.flickr.com/photos/simmogl/4055700308/in/photolist-7bowpo-zvyWaQ-3EhtfM-zM3uwo-zM3Ba3-pG7vSq-oMmzPG-oMpCrt-5uSRnw-4HXxs-bwiGtb-9u29aC-oMmLtY-kop9e-4HXwH-oMoqa7-5zd1U6-9pB2jn-hCMrd5-bGyH6i-4Kj7q-dDaF1-prNtLn-zM3yR5-yRhpTn-yR8sRL-yR8oMd-yRhsqB-gTH7qx-zvz4sW-92waWk-yR8wph-yRhrJB-3EmRpS-7eqcqM-4Kj3p-njURVR-2aHanh-iFykZQ-9x97CL-9NfNL-k9N6fm-5RSaZ-4BxAv5-a51APZ-dqhjnr-dqhqZ9-eb9V7X-3EmR3d-6sCnb7 https://www.flickr.com/photos/fairerdingo/2320356657/in/photolist-4x3rcg-AvWp-9apz9a-jJhpoQ-2ov2gu-7Rr2qr-3P2KH-5YFdAJ-gACrN-HTUWP-6j9ooG-dXpN3Q-9kccaV-aFuUfB-8ZN65i-6pQSAv-btZvjV-9ddxwE-4Lq8UH-dXaZ7j-73Xojt-mUZSq-fTy1P-e4n9B-hYwP4-89QrWo-67bSSJ-aThabK-bTctDK-94iUu2-asHJSr-bBnVA8-5MbBJM-g2Vrky-efhYzw-8NxAKw-e3baUF-grvK9-48GJ6n-bAV4eh-btJDEK-4zJtyV-8naFTb-dgJfT-5H88ML-vRFsiA-bHt6pc-7eVJa6-bm2YzR-63sSC5