#author("2017-05-17T08:25:10+00:00","default:admin","admin") #author("2017-05-17T08:56:34+00:00","default:admin","admin") -[[Apache Spark - Lightning-Fast Cluster Computing:http://spark.apache.org]] -[[ユースケースで徹底検証! Sparkのビッグデータ処理機能を試す 記事一覧:https://thinkit.co.jp/series/5747]] -[[Apache Spark で分散処理入門:http://qiita.com/Hiroki11x/items/4f5129094da4c91955bc]] -[[Apache Spark を使ったシステム構築のための Tips:http://blog.albert2005.co.jp/2016/06/16/apache-spark-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E6%A7%8B%E7%AF%89%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE-tips/]] -[[Pythonで入門するApache Spark at PyCon2016 - SlideShare:https://www.slideshare.net/tatsuyaatsumi/pythonapache-spark-at-pycon2016]] -[[Amazon EMRで構築するApache Spark超入門:http://www.atmarkit.co.jp/ait/series/3907/]] -[[MLlib Apache Sparkで人工知能 機械学習:https://matome.naver.jp/odai/2146210880616879001]] -[[Apache Sparkに注力するIBM、目指すは「データ分析のOS」:http://www.atmarkit.co.jp/ait/articles/1507/24/news023.html]] ---- -Apache Sparkは巨大なデータに対して高速に分散処理を行うオープンソースのフレームワーク -JavaやScala、Pythonなどいろいろなプログラミング言語のAPIが用意されている -Sparkは分散処理のややこしい部分をうまく抽象化してくれているので、簡潔なコードを実行するだけで、何百台ものコンピュータで、同時平行に計算を実行させることができる -クラスタ上のデータをSQLで処理できる「Spark SQL」や、機械学習のための「MLlib」、グラフ処理のための「GraphX」、ストリーミング処理のための「Spark Streaming」など、便利なコンポーネントが付属している *[[Spark Streaming:http://spark.apache.org/streaming/]] [#x1f86896] -[[Spark Streamingの概要と検証シナリオ:https://thinkit.co.jp/article/9958]] -[[Spark Streamingを使ってみた ~Twitterリアルタイムトレンドランキング~:https://www.slideshare.net/sugiyama_k/spark-streaming-62573392]] -[[ビッグじゃなくても使えるSpark Streaming:https://www.slideshare.net/chibochibo/spark-streaming-62325020]] -[[Spark Streamingによるリアルタイムユーザ属性推定:https://www.slideshare.net/laclefyoshi/spark-streaming-66114671]] -[[AWS Kinesis Streams + Spark Streamingでストリーム処理を試してみた:http://qiita.com/take60/items/a35925e9569e2b7fa63e]] -[[Spark StreamingからAmazon Kinesis Analyticsへ移行する話:http://data.gunosy.io/entry/spark-kinesis-analytics]] -[[Benchmarking Streaming Computation Engines at Yahoo!:https://yahooeng.tumblr.com/post/135321837876/benchmarking-streaming-computation-engines-at]] --[[Yahoo!がApache Flink, Spark, Stormのベンチマークを実施:https://www.infoq.com/jp/news/2016/02/yahoo-flink-spark-storm]] -[[ストリーム処理とは何か?+2016年の出来事:http://qiita.com/kimutansk/items/60e48ec15e954fa95e1c]] -マイクロバッチ方式によるストリームデータ処理機能を提供 --数百ミリ秒から数秒ほどの短い時間に流れて来たデータに対して、短い間隔でバッチ処理を行うようなイメージ --バッチ処理の間隔を短くしてできる限りレイテンシを小さくすることで、「ニア・リアルタイム」に結果を得ることができる。 *MLlib [#vdc941a3] -[[Machine Learning Library (MLlib) Guide:http://spark.apache.org/docs/latest/ml-guide.html]] -[[MLlib: メイン ガイド - Spark 2.0.0 ドキュメント 日本語訳 - FC2:http://mogile.web.fc2.com/spark/spark200/ml-guide.html]] -[[まだRDDしか使ってない人へ、DataFrame, Pipelineの要点紹介:https://catcher-in-the-tech.net/2585/]] -RDDベースのAPIは今後なくなる予定 -MLlibは一般的な機械学習アルゴリズムとユーティリティからなるSparkのスケール可能な機械学習ライブラリで、分類、回帰、クラスタ化、協調フィルター、次元削減、そして低レベル optimization primitivesと高レベルpipeline API を含んでいる **主な機能 [#t011f5a5] ***基本的な統計 [#pebdf896] -相関関係 -階層化されたサンプリング -仮説テスト -ランダムデータ生成 -カーネル密度推定 ***分類と回帰 [#gd2d2b60] -2値分類 --線形SVM --ロジスティック回帰 --決定木 --ランダムフォレスト --勾配ブースト木 --ナイーブベイズ -多クラス分類 --ロジスティック回帰 --決定木、 --ランダムフォレスト --ナイーブベイズ -回帰 --線形最小二乗 --ラッソ --リッジ回帰 --決定木 --ランダムフォレスト --勾配ブースト木 --アイソトニック回帰 ***協調フィルタリング [#pfd54190] -交互最小二乗法 (ALS) アルゴリズムを使用 ***クラスタリング [#ba5e5d65] -K-平均法 -混合ガウス -べき乗クラスタリング (PIC) -潜在的ディレクレ配分法 (LDA) -二値k平均法 -ストリーミング k-平均法 ***次元削減 [#l8bd1ab0] -特異値分解 (SVD) -主成分分析 (PCA) ***特徴量抽出および変形 [#w9e5224a] -TF-IDF -Word2Vec -StandardScaler -平均器 -ChiSqSelector -ElementwiseProduct -PCA ***頻出パターンマイニング [#m39e054a] -FP-growth -相関ルール -PrefixSpan ***評価マトリックス [#e7d13e75] -分類モデルの評価 -二値分類 -多クラス分類 -多ラベル分類 -ランキング システム -回帰モデルの評価 ***PMML モデル抽出 [#c1781267] -Predictive Model Markup Language (PMML)へのモデルのエクスポートをサポート ***最適化 [#v55ae40a] -勾配降下法 -確率的勾配降下法 (SGD : Stochastic Gradient Descent) -L-BFGS(Limited-memory Broyden–Fletcher–Goldfarb–Shanno) *[[GraphX:http://spark.apache.org/graphx/]] [#s9540be0] -[[GraphX - Spark 2.1.1 Documentation - Apache Spark:http://spark.apache.org/docs/latest/graphx-programming-guide.html]] --[[GraphX - Spark 2.0.0 ドキュメント 日本語訳 - FC2:http://mogile.web.fc2.com/spark/spark200/graphx-programming-guide.html]] -[[Scalaを使用したApache Spark GraphX入門:https://community.mapr.jp/how-get-started-using-apache-spark-graphx-scala.html]] -[[Spark GraphX で始めるグラフ解析 - SlideShare:https://www.slideshare.net/mogproject/geeknightgraphx-70341335]] -[[Spark GraphXを使ったグラフ分析: サッカーチームのパフォーマンスをグラフ理論で解いてみる:https://www.creationline.com/lab/10827]] -[[Spark GraphXのページランク アルゴリズムを使用しラブライブ!などの人物関係を解析してみる:http://qiita.com/AKB428/items/bf1cd05d6cf3e23986d9]] *[[Apache PredictionIO:http://predictionio.incubator.apache.org]] [#p49643e7] -[[Apache Prediction IO 事始めと Heroku へのデプロイ:http://qiita.com/mokamoto/items/b5c7bca4ad2a4438429c]] -[[Scala製の機械学習サーバApache PredictionIOを使ってみよう:http://takezoe.hatenablog.com/entry/2017/05/11/132410]] -[[PredictionIOを使ってAmazonのような関連商品のレコメンドシステムを構築する:https://blog.spot-corp.com/ai/2016/07/11/prediction_io_recommend_system.html]] -Apache Software Foundationの元で開発されている、Sparkをベースにしたオープンソース機械学習サーバ -以下の機能を提供 --学習データや学習モデルを格納するためのストレージ --機械学習を使用したエンジンを定型化するためのフレームワーク --開発したエンジンをWebサービスとしてデプロイする機能 -機械学習はSparkのMLlibで行われる。 --学習データの投入は基本は CLI ツールから行うが、REST API でデータ投入もできる。 --学習データは RDBMS か HBase 上に保存。学習データ以外にメタデータ(RDBMSかElasticsearch上)、モデルデータ(RDBMS, HDFS, LOCALFS上)も保存する必要がある。 -機械学習されたモデルを使って予測が出来る。 --予測サービスは REST API で呼び出せる。計算済みのモデルを用いて、Spark で予測してレスポンスを返す。 *Kafka [#yc79a746] -[[Kafka+Spark Streaming+Elasticserachによるシステム構築と検証の進め方:https://thinkit.co.jp/article/10033]] -[[ストリーム処理を支えるキューイングシステムの選び方:https://www.slideshare.net/laclefyoshi/ss-67658888]] -メッセージキュー *[[Apache Flink:https://flink.apache.org]] [#g8021d27] -[[Apache Flink とは?:http://qiita.com/takanorig/items/e9880813798f0ac5679d]] -[[Apache Flinkでリアルタイムストリーム処理を実装してみる:https://medium.com/all-worldly-things-are-transitory/apache-flink%E3%81%A7%E3%83%AA%E3%82%A2%E3%83%AB%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%A0%E5%87%A6%E7%90%86%E3%82%92%E5%AE%9F%E8%A3%85%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B-f901ee68ac52]] -[[IoT時代におけるストリームデータ処理と急成長の Apache Flink:https://www.slideshare.net/takanorig/iot-apache-flink]] -[[Apache Flink とは:http://x1.inkenkun.com/archives/5406]] -[[Apache Flinkを試している:http://ogibayashi.github.io/blog/2016/02/26/trying-apache-flink/]] -[[分散ストリーム処理エンジンあれこれ:http://qiita.com/takanorig/items/aaa4f116d1564ec20dd3]] -Spark Streaming と同類の、分散ストリーム処理プラットフォームのOSS -特長 --高パフォーマンス&低レイテンシ(真のストリーム処理が可能) --耐障害性に優れる(自動でイベント処理継続) ---各処理をステートフルで扱っており、障害が発生した際には、その情報から処理を自動で復旧させる機能を有している --ストリーム処理、バッチ処理の両方をサポートし、高レベルのAPIが提供されるAll-in-One構成