spark源碼分析(2)-源碼閱讀環境準備

在前面介紹wordcount例子時沒有對spark源碼閱讀環境的準備進行說明,本文就主要介紹Spark源碼閱讀環境的構建

1、環境準備

操作系統採用Ubuntu14.04(案例採用虛擬機中安裝模式,橋接模式可訪問外網)
下載JDK1.7+,Scala2.10(spark 1.6.3之前採用的是2.10版本,spark2.0之後採用scala2.11版本),SBT,Maven3.3.9
下載hadoop-2.6,spark-1.6.3
hadoop,spark環境變量配置:
vi ~/.bashrc
export JAVA_HOME=$HOME/jdk1.7.0_80
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export SCALA_HOME=$HOME/scala-2.10.5
export SPARK_HOME=$HOME/spark-1.6.3-bin-hadoop2.6
export HADOOP_HOME=$HOME/hadoop-2.6.0
export HADOOP_COND_DIR=$HOME/hadoop-2.6.0/etc/hadoop
export MAVEN_HOME=$HOME/apache-maven-3.2.5
export SBT_HOME=$HOME/sbt
export PATH=$PATH:$SCALA_HOME/bin:$SPARK_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$MAVEN_HOME/bin:$SBT_HOME/bin

2、配置spark standalone模式

spark-env.sh
export SCALA_HOME=/home/weiw/scala-2.10.5
export SPARK_MASTER_IP=ubuntu
export SPARK_WORKER_MEMORY=1G
export JAVA_HOME=/home/weiw/jdk1.7.0_80

啓動Spark的Master和Worker服務:
./sbin/start-master.sh
./sbin/start-slave.sh spark://ubuntu:7077

3、Ubuntu上spark源碼編譯

maven 簡單介紹:-P表示激活依賴的程序及版本,-DskipTests表示編譯時跳過測試環境
設置maven的環境參數:
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512M"
編譯源碼:
build/mvn -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.0-cdh5.6.0 -Phive -Phive-thriftserver -DskipTests clean package

生成部署包:
./make-distribution.sh --name 2.6.0-cdh5.6.0 --tgz -Pyarn -Phadoop-provided -Phadoop-2.4 -Dhadoop.version=2.6.0-cdh5.6.0 -Phive -Phive-thriftserver

錯誤一:環境版本不對(有可能是maven , jdk,scala)
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce (enforce-versions) on project spark-parent_2.10: Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed. -> [Help 1]
mvn validate 命令校驗工程環境問題

錯誤二:maven插件問題
+ VERSION='[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/NoPluginFoundForPrefixException'

編譯後生成文件:
assembly/target/scala-2.10/spark-assembly-1.6.3-hadoop2.6.0.jar
examples/target/scala-2.10/spark-examples-1.6.3-hadoop2.6.0.jar

4、IDE導入spark源碼

IDEA的安裝下載後直接解壓運行bin/idea.sh啓動IDEA,需要安裝scala插件,然後Import Project 選擇maven找到我們的spark源碼導入spark源碼,選擇導入spark的子項目界面,然後就是next finish等。

1)運行Master:

Spark master啓動的入口 org.apache.spark.deploy.master.Master。如果出現下面的問題需要在spark core子項目中引入guava-14.0.1.jar包。

導入缺失依賴包:


Master運行成功:


SparkUI界面:http://ip:8080

2)運行Worker節點
org.apache.spark.deploy.worker.Worker --webui-port 8081 spark://192.168.1.9:7077

Worker啓動成功:


最後Master和Worker啓動完成後的SparkUI界面也出現了Worker


最後,Spark的源碼閱讀環境基本上準備完成,後面就可以進行DEBUG進行源碼閱讀和調試了,可以參考WordCount的例子:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章