Spark環境構築とテスト

4086 ワード

0、環境


公式推薦:
Spark runs on Java 6+, Python 2.6+ and R 3.1+. For the Scala API, Spark 1.4.0 uses Scala 2.10. You will need to use a compatible Scala version (2.10.x).
scala2.11.x追加sparkサポートパッケージのダウンロードが必要
ネイティブ環境:
ubuntu14.04 + jdk1.8 + python2.7 + scala2.10.5 + hadoop2.6.0 + spark1.4.0

1、scalaのインストールと構成


scalaをダウンロードします.ダウンロードアドレスは次のとおりです.http://www.scala-lang.org/download/2.10.5.html#Other_resources
scalaインストールパッケージをアップロードして解凍します
環境変数を構成し、vim/etc/profileに次のように追加します.
export JAVA_HOME=/usr/local/java/jdk1.8.0_45
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export HADOOP_HOME=/home/nob/opt/hadoop-2.6.0
export SCALA_HOME=/home/nob/opt/scala-2.10.5
export SPARK_HOME=/home/nob/opt/spark-1.4.0-bin-hadoop2.6
export PATH=${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:$PATH

source/etc/profile後、scala-versionを入力するとバージョン情報が表示されます

2、spark配置


ダウンロード:/home/nob/opt/spark-1.4.0-bin-hadoop 2.6
実行環境を構成し、spark-envを編集します.sh
nob@nobubuntu:~/opt/spark-1.4.0-bin-hadoop2.6$ vim conf/spark-env.sh

export JAVA_HOME=/usr/local/java/jdk1.8.0_45
export SCALA_HOME=/home/nob/opt/scala-2.10.5
export HADOOP_HOME=/home/nob/opt/hadoop-2.6.0
export HADOOP_CONF_DIR=/home/nob/opt/hadoop-2.6.0/etc/hadoop
export SPARK_MASTER_IP=nobubuntu
export SPARK_WORKER_MEMORY=512M

SPARK_MASTER_IPはmasterノードのipまたはhostname

3、起動

nob@nobubuntu:~/opt/spark-1.4.0-bin-hadoop2.6$ sbin/start-all.sh 
starting org.apache.spark.deploy.master.Master, logging to /data/server/spark-1.4.0-bin-hadoop2.6/sbin/../logs/spark-nob-org.apache.spark.deploy.master.Master-1-nobubuntu.out
nobubuntu: org.apache.spark.deploy.worker.Worker running as process 10297.  Stop it first.
nob@nobubuntu:~/opt/spark-1.4.0-bin-hadoop2.6$ jps
8706 DataNode
9062 ResourceManager
10775 Jps
9192 NodeManager
10569 Master
10297 Worker
8572 NameNode
8911 SecondaryNameNode
nob@nobubuntu:~/opt/spark-1.4.0-bin-hadoop2.6$

jpsはMasterとWorkerプロセス、アクセスを見ることができますhttp://nobubuntu:8080/実行の詳細が表示されます

4、Sparkが持参したPython shellテストを利用する


PySpark shellを使用して、Spark解凍のソースパスの下で、実行
bin/pyspark

プロンプトで、次のコマンドを順番に入力します.
>>> lines = sc.textFile("README.md")
>>> lines.count()
>>> lines.first()

5、印刷ログのレベルを変更する


上記の実行により、shell環境で印刷されたログが多すぎることがわかりました.そのため、以下のログのレベルを調整する必要があります.そのため、私は
confディレクトリの下にファイルlog 4 jを新規作成する.properties、log 4 jです.properties.templateのコピー、
次の行
log4j.rootCategory=INFO, console
に改心
log4j.rootCategory=WARN, console
shellを再開すると、デバッグ情報が少なくなっています.

6、Scala shellを使用してline countウィジェットをテストする


Scalaバージョンのshellを開き、実行
bin/spark-shell
scala> val lines = sc.textFile("README.md")
scala> lines.cout()
scala> lines.first()

独立したアプリケーションで、pythonをデモします.scalaやjavaを使用することもできます.公式ドキュメントから簡単です.
"""SimpleApp.py"""
from pyspark import SparkContext

logFile = "YOUR_SPARK_HOME/README.md"  # Should be some file on your system
sc = SparkContext("local", "Simple App")
logData = sc.textFile(logFile).cache()

numAs = logData.filter(lambda s: 'a' in s).count()
numBs = logData.filter(lambda s: 'b' in s).count()

print "Lines with a: %i, lines with b: %i" % (numAs, numBs)
bin/spark-submit の使用
# Use spark-submit to run your application
$ YOUR_SPARK_HOME/bin/spark-submit --master local[4] SimpleApp.py
...
Lines with a: 46, Lines with b: 23

[参考文献]
1、spark1.2.0バージョンの擬似分散環境の構築http://blog.csdn.net/stark_summer/article/details/43495623
2、完全なhadoop+spark教程http://wenku.baidu.com/link?url=RaRRE0g1FilXQWSAjKO6eNo5zqD0_H4liG0lxF7bBJ1ZztckWysMqlfUiU6y-8yEPDGGLjZgX_RfHO68-uc4qpdU2Pe_-HcdtwOPTzX9KsS
3、spark公式文書http://spark.apache.org/docs/latest/quick-start.html