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頁面。
