第 1回 “Learning Spark” 読書会
Chap. 2: “Downloading Sparkand Getting Started” (1)
– Sparkを導入し、使ってみよう (1) –
@data sciesotist
2015/2/28
1 “In this chapter...”• この章では、1台のPCへのSparkの導入から利用開始までの手順を紹介します• Scala、Java、Pythonについて、基本文法を理解していることが望ましいです• SparkはScalaで書かれており、JVM上で動作するため、Java 6以上が必須です• SparkはPython3では動作しません
……だそうです。1
2 “Downloading Spark” (1)
• 最新のコンパイル済みパッケージをhttps://spark.apache.org/downloads.html
からダウンロードする
• 例えば “Pre-built for Hadoop 2.4 and later”など、適切なバージョンを選択する
• WindowsでSparkを利用する場合、スペースを含まないフォルダ名にする
• もちろんソースからのコンパイルも可能2
3 参考: Sparkサイトからのダウンロード
ftp.riken.jpや ftp.jaist.ac.jpなどのネットワーク的に近いミラーも利用可能3
4 “Downloading Spark” (2)
• アーカイブの中でも特に重要なものは以下■ README.md: 簡単な案内文
■ bin: Sparkの実行ファイルを格納
■ core,streaming,python...:各コンポーネントのソースを格納
■ examples: サンプル集
• 以降、ローカル環境でインタラクティブ処理、バッチ処理の順に使い方を紹介していく
4
5 “Introduction to Spark’s Pythonand Scala Shells”
• シェルを操作してアドホック分析ができる• 大量データへの反復処理、探索的分析を対話的に、高速に実行可能
• シェルの利便性を体感するには、SparkサイトのQuick Start Guideが適している
• シェルを起動するにはbin/pysparkまたはbin/spark-shellとする
5
6 参考: Scalaシェルの起動画面
メッセージが邪魔な場合は 2> /dev/nullとするWindowsでも2> NULとできる
詳細はconf/log4j.propertiesで設定6
7 “Using IPython”
• IPythonは補完などの機能があり多くのユーザーに利用されるPythonシェルの一種
• Sparkで利用するにはIPYTHON環境変数を1に設定する (IPYTHON=1 ./bin/pyspark)
• IPythonノートブックを使うにはIPYTHON OPTS="notebook" ./bin/pyspark
• Windowsではset IPYTHON=1 bin\pyspark
7
8 “Example 2-1. Python line count”
# RDDsの作成>>> lines=sc.textFile("README.md")
# 行数のカウント>>> lines.count()
# 1つ目の要素 (1行目を出力)>>> lines.first()
8
9 参考: IPythonノートブックの利用
http://localhost:8888にアクセス
set IPYTHON=1
set IPYTHON_OPTS="notebook"
bin\pyspark
9
10 “Example 2-2. Scala line count”
# RDDsの作成> val lines=sc.textFile("README.md")
# 行数のカウント> lines.count()
# 1つ目の要素 (1行目を出力)> lines.first()
10
12 参考: EC2へのデプロイ (1)• EC2にデプロイするためのspark-ec2スクリプトが標準で付属する
• 前提: AWSのアカウントがあり
■ キーペアを作成していること
■ アクセスキーを作成していること
• Bash + Pythonスクリプトなので、Linuxからデプロイするのが楽
12
13 参考: EC2へのデプロイ (2)• m3.largeインスタンス5台
(マスタ1 + スレーブ4) で構成する例
$ ec2/spark-ec2 --help
... ヘルプ表示 ...$ ec2/spark-ec2 -k SparkLab
-i ˜/aws_key/SparkLab.pem
-s 4 -t m3.large
launch SparkLab00
13
14 参考: EC2へのデプロイ (3)
やたらエラーが出るけど、これでよいらしい
スタンドアロンクラスタマネージャのURLが表示される
14
今回はここまで!
15