Spark記錄-Spark on mesos配置


1.安裝mesos

#用centos6的源yum安裝

# rpm -Uvh http://repos.mesosphere.io/el/6/noarch/RPMS/mesosphere-el-repo-6-2.noarch.rpm
# yum install mesos -y
注意:如果要運行Mesos而不將其安裝到系統的默認路徑中(例如,如果您缺乏安裝它的管理權限),請傳遞 --prefix選項configure以告訴它在哪里安裝。例如,通過 --prefix=/home/me/mesos。默認情況下,前綴是/usr/local
#wget http://mirror.bit.edu.cn/apache/mesos/1.3.1/mesos-1.3.1.tar.gz 
#tar zxvf mesos-1.3.1.tar.gz 
#cd  mesos-1.3.1
#mkdir build
#cd build
#../configure
#make
#make install

#依賴項

#yum -y install apr-devel  libcurl-devel  apr-util-devel
#yum install subversion
#yum install subversion-javahl
#yum install subversion-devel
#yum install cyrus-sasl-md5
#yum install python-devel

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
升級了GCC,生成的動態庫沒有替換老版本gcc的動態庫。
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
strings /usr/lib64/libstdc++.so.6|grep GLIBCXX

3.spark on mesos(http://spark.apache.org/docs/latest/running-on-mesos.html)

在客戶端模式下,直接在客戶機上啟動Spark Mesos框架並等待驅動程序輸出。

驅動程序需要一些配置spark-env.sh才能與Mesos正確交互:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM