spark 源码安装
clone 源码
git clone git://github.com/apache/spark.git
maven编译源码
国外镜像比较慢,此处修改maven仓库的镜像为阿里云镜像:
1 2 3 4 5 6 7 8 | < mirrors > < mirror > < id >alimaven</ id > < name >aliyun maven</ name > < url >http://maven.aliyun.com/nexus/content/groups/public/</ url > < mirrorOf >central</ mirrorOf > </ mirror > </ mirrors > |
编译的时候内存设置大一点,以免内存溢出,导致编译失败,此处设置maven内存如下:
1 2 | export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m" |
mvn -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.3 -DskipTests clean package
-Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.3 参考下面的链接:
https://spark.apache.org/docs/latest/building-spark.html#specifying-the-hadoop-version
-D系统参数,-P profile定义
查看hadoop版本:./hadoop version 或者 ./hdfs version
测试编译
1 | ./bin/run-example SparkPi 10 |
结果如下则编译没问题:
spark在yarn集群上的运行
注:spark在yarn上运行时不需要启动spark集群的,因为,spark任务是在yarn集群上运行的
在yarn上运行spark应用程序有两种方式,第一种是 cluster模式,第二种是client模式,
区别是
cluster模式
Spark driver运行在yarn集群上,client模式Spark driver运行在客户端进程中。
使用
./bin/spark-submit向yarn集群提交spark应用,
1 | $ ./bin/spark-submit --class path.to.your.Class --master yarn --deploy-mode cluster [options] < app jar> [app options] |
--class:主类
--master:yarn指定在yarn上运行
--deploy-mode:部署模式cluster 指定为集群模式
app jar:应用程序打的jar包
应用实例:
1 | ./bin/spark-submit --class spark.examples.wordcount.WordCount --master yarn --deploy-mode cluster wordcount.jar README.md |
注:运行前请确保yarn的安装时正确的,结果可以在日志文件里面看到
客户端模式如下:
1 | ./bin/spark-shell --master yarn --deploy-mode client |
1 | ./bin/spark-shell --class spark.examples.wordcount.WordCount --master yarn --deploy-mode client --jars wordcount.jar README.md |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步