一応、list-clusterで見えるけど。{{KeyPairName}}は、AWSに登録しているキーペアの名前を入れる。作る場合はこんな感じ。ap-northeast-1key-pair-fileは拡張子が.pemとかじゃないと怒られる。shellを起動する10台2coreなので、以下のように起動。ワーカー毎にメモリ確保するので2gずつで切る。2とりあえず、fluent-plugin-s3で上げた1日分のnginxログをSparkSQLのtableにしてクエリ投げてみる。一行一jsonならJsonFileを使うだけで良いのだけれど、fluent-plugin-s3の出力はそうではないのでjson部分だけ取り出してJsonRDDでtable化する。sqlContext.cacheTable("logs")cacheTableで、メモリに載せたままにしてくれる様子。code_counts.foreach(println)[400,26][404,...][405,...][416,...][304,...][200,...][206,...][499,...]うむ。hiveContext使うほうが高機能。sqlContextだとregexp_extract等のhiveのコマンドが使えない。codeを集計してみるとこんな感じ。index効かせてゴリゴリjoinしないただのフルスキャンならload時間含めて4台クラスタ程度でもredshiftよりだいぶ早い感じ。一日分しかメモリに載せないし。scriptを渡せば一番簡単っぽい。こちらを以下を参考にする。http://snowplowanalytics.com/blog/2014/04/17/spark-example-project-released/わりかしダルいしscalaマンでは無いのでspark-shellにスクリプト食わしてやっていきたい。pysparkを使ってみるYARNの上でpysparkを動かすには環境変数"SPARK_YARN_USER_ENV"にpyspark用のコードを含んだPYTHONPATHを指定して置く必要がある。SPARK_YARN_USER_ENVは、YARNで動かしているslave系にも伝播して渡すことが出来る様子。":".join(sys.path)sshでクラスタにログインしたら、以下を実行してpysparkのシェルを起動。ipythonで使えないと不便なのでpipでipython入れる。2並列度の指定はspark-shellの起動と同じように指定すれば良い。8888パスワードもきちんと設定したほうが良さそう。その上で、SecurityGroupのElasticMapReduce-masterの8888番を適切に開けると外部から接続できるようになる。notebookの起動は以下のコマンドで可能。ipを持ってきて、8888番を開けばそのままpysparkが利用できる。APIが無いとはいえ、mllibも全部使えるようになっているし、1.2からmllib.featureが使えるようになって更に嬉しい。actionsにまとめておくと良い。upLoginユーザーは見つかりませんでした。