zoukankan      html  css  js  c++  java
  • 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页面。

  • 相关阅读:
    ceph故障恢复
    上线遇到nginx问题
    java.lang.IllegalArgumentException: Comparison method violates its general contract 异常
    drone构建build时mvn日志太多,取消日志打印,输出失败异常
    mongo异常com.mongodb.MongoCursorNotFoundException
    循环list执行删除报ConcurrentModificationException异常
    磁盘目录/dev/vda2满了进行清理
    elasticSearch基本操作
    LOJ#6029「雅礼集训 2017 Day1」市场
    虚树
  • 原文地址:https://www.cnblogs.com/xinfang520/p/7803980.html
Copyright © 2011-2022 走看看