打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
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页面。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
去哪儿网:使用Alluxio(前 Tachyon)实现300倍提升
Apache Spark三种分布式部署方式比较
spark
【原】Learning Spark (Python版) 学习笔记(三)
去哪儿网基于Marathon管理Spark 2.0实现动态扩容实践
Spark 资源管理和YARN应用程序模型 | 单向街的夏天
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服