Spark记录-Spark on mesos配置
1.安装mesos
#用centos6的源yum安装
--prefix
选项configure
以告诉它在哪里安装。例如,通过 --prefix=/home/me/mesos
。默认情况下,前缀是/usr/local
。#依赖项
2.升级gcc4.4.7到gcc4.8.0
#wget http:
//ftp
.gnu.org
/gnu/gcc/gcc-4
.8.0
/gcc-4
.8.0.
tar
.bz2
#tar
-jxvf gcc-4.8.0.
tar
.bz2
#cd
gcc-4.8.0
#.
/contrib/download_prerequisites
#cd
..
#mkdir
gcc-build-4.8.0
#cd
gcc-build-4.8.0
#..
/gcc-4
.8.0
/configure
--
enable
-checking=release --
enable
-languages=c,c++ --disable-multilib
# j 后面的是核心数,编译速度会比较快
#make
-j4
#sudo
make
install
#ls
/usr/local/bin
|
grep
gcc
#update-alternatives --
install
/usr/bin/gcc
gcc
/usr/local/bin/i686-pc-linux-gnu-gcc
40
#gcc -
v
cp
/usr/local/lib64/libstdc
++.so.6.0.18
/usr/lib64/
rm
-f libstdc++.so.6
ln
-s libstdc++.so.6.0.18 libstdc++.so.6
3.spark on mesos(http://spark.apache.org/docs/latest/running-on-mesos.html)
在客户端模式下,直接在客户机上启动Spark Mesos框架并等待驱动程序输出。
驱动程序需要一些配置spark-env.sh
才能与Mesos正确交互:
- 在
spark-env.sh
设置一些环境变量:也设置spark.executor.uri
为<URL of spark-2.2.0.tar.gz>
。export MESOS_NATIVE_JAVA_LIBRARY=<path to libmesos.so>
。这个路径通常<prefix>/lib/libmesos.so
是前缀/usr/local
默认的地方。请参阅上面的Mesos安装说明。在Mac OS X上,库被调用libmesos.dylib
而不是libmesos.so
。export SPARK_EXECUTOR_URI=<URL of spark-2.2.0.tar.gz uploaded above>
。
集群模式
Mesos上的Spark还支持集群模式,驱动程序在集群中启动,客户端可以从Mesos Web UI中找到驱动程序的结果。
要使用集群模式,您必须MesosClusterDispatcher
通过sbin/start-mesos-dispatcher.sh
脚本启动集群,传入Mesos主URL(例如:mesos:// host:5050)。这将启动MesosClusterDispatcher
在主机上运行的守护进程。
如果你喜欢MesosClusterDispatcher
与马拉松运行,你需要运行MesosClusterDispatcher
在前台(即:)bin/spark-class org.apache.spark.deploy.mesos.MesosClusterDispatcher
。请注意,MesosClusterDispatcher
尚不支持HA的多个实例。
该MesosClusterDispatcher
还支持写入恢复状态到动物园管理员。这将允许MesosClusterDispatcher
能够在重新启动时恢复所有提交和正在运行的容器。为了启用这种恢复模式,您可以通过配置spark.deploy.recoveryMode
和相关的spark.deploy.zookeeper。*配置来设置spark-env中的SPARK_DAEMON_JAVA_OPTS。有关这些配置的更多信息,请参阅配置文档。
从客户端,您可以通过运行spark-submit
并指定主URL MesosClusterDispatcher
(例如:mesos:// dispatcher:7077)的URL来向Mesos集群提交作业。您可以在Spark集群Web UI上查看驱动程序状态。
例如:
./bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master mesos://207.184.161.138:7077 \
--deploy-mode cluster \
--supervise \
--executor-memory 20G \
--total-executor-cores 100 \
http://path/to/examples.jar \
1000
请注意,传递给spark-submit的jar或python文件应该是Mesos从站可访问的URI,因为Spark驱动程序不会自动上传本地jar。
Mesos运行模式
Spark可以在两种模式下运行Mesos:“粗粒度”(默认)和“细粒度”(不推荐)。
粗粒度
在“粗粒度”模式下,每个Spark执行器都作为一个Mesos任务运行。Spark执行程序根据以下配置变量进行大小调整:
- 执行器内存:
spark.executor.memory
- 执行者核心:
spark.executor.cores
- 执行者的数量:
spark.cores.max
/spark.executor.cores
有关详细信息和默认值,请参阅Spark Configuration页面。