zoukankan      html  css  js  c++  java
  • 1、spark集群搭建

    前提:已经搭建完全分布式的Hadoop集群,请参看http://www.cnblogs.com/netbloomy/p/6660131.html

    1、Scala2.12.1环境搭建

    1)、下载scala安装包:wget https://downloads.lightbend.com/scala/2.12.1/scala-2.12.1.rpm

    2)、安装:rpm -ivh scala-2.12.1.rpm

    3)、添加环境变量:

      export SCALA_HOME=/usr/share/scala
      export PATH=$SCALA_HOME/bin:$PATH

    2、Spark2.1.0完全分布式环境搭建

    以下操作都在c7001节点/opt目录下进行。

    1)、下载二进制包:

      [vagrant@c7002 opt]$ wget http://d3kbcqa49mib13.cloudfront.net/spark-2.1.0-bin-hadoop2.7.tgz

    2)、解压并移动到相应目录,命令如下:

      tar -zxvf spark-2.1.0-bin-hadoop2.7.tgz 

    3)、修改相应的配置文件。

      修改/etc/profie,增加如下内容:

      export SPARK_HOME=/opt/spark-2.1.0-bin-hadoop2.7
      export PATH=$PATH:$SPARK_HOME/bin

      复制spark-env.sh.template成spark-env.sh

      cp spark-env.sh.template spark-env.sh

      修改$SPARK_HOME/conf/spark-env.sh,添加如下内容:

      export JAVA_HOME=/opt/jdk1.8.0_121 #配置java路径
      export SCALA_HOME=/usr/share/scala #配置scala路径
      export HADOOP_HOME=/opt/hadoop-2.8.0 #配置hadoop的路径
      export HADOOP_CONF_DIR=/opt/hadoop-2.8.0/etc/hadoop #配置hadoop的配置路径
      export SPARK_MASTER_IP=192.168.70.101 #master节点ip
      export SPARK_MASTER_HOST=c7001 #master节点hostname
      export SPARK_MASTER_OPTS="-Dspark.deploy.defaultCores=1" #spark-shell启动使用核数
      export SPARK_LOCAL_IP=192.168.70.101 #本机ip或hostname
      export SPARK_LOCAL_DIRS=/opt/spark-2.1.0-bin-hadoop2.7/local #配置spark的local目录
      export SPARK_MASTER_WEBUI_PORT=8080 #web页面端口
      export SPARK_WORKER_MEMORY=1g #worker内存大小
      export SPARK_WORKER_CORES=1 #Worker的cpu核数
      export SPARK_WORKER_DIR=/opt/spark-2.1.0-bin-hadoop2.7/work #worker目录
      export SPARK_WORKER_OPTS="-Dspark.worker.cleanup.enabled=true -Dspark.worker.cleanup.appDataTtl=604800" #worker自动清理及清理时间间隔
      export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://192.168.70.101:9000/tmp/spark/applicationHistory" #history server页面端口、备份数、log日志在HDFS的位置  
      export SPARK_LOG_DIR=/opt/spark-2.1.0-bin-hadoop2.7/log #配置Spark的log日志目录
      export SPARK_HOME=/opt/spark-2.1.0-bin-hadoop2.7
      export SPARK_DIST_CLASSPATH=$(/opt/hadoop-2.8.0/bin/hadoop classpath)

      spark-defaults.conf内容如下
      spark.eventLog.enabled true #eventLog是否生效(建议开启,可以对已完成的任务记录其详细日志)
      spark.eventLog.compress true #eventLog是否启用压缩(cpu性能好的情况下建议开启,以减少内存等的占用)
      spark.eventLog.dir hdfs://192.168.70.101:9000/tmp/spark/applicationHistory #eventLog的文件存放位置,与spark-env.sh中的history server配置位置一致,这两个位置必须手动创建 hadoop fs -mkdir -p /tmp/spark/applicationHistory,否则spark启动失败
      spark.broadcast.blockSize 8m #广播块大小
      spark.executor.cores 1 #Executor的cpu核数
      spark.executor.memory 512m #Executor的内存大小
      spark.executor.heartbeatInterval 20s #Executor心跳交换时间间隔
      spark.files.fetchTimeout 120s #文件抓取的timeout
      spark.task.maxFailures 6 #作业最大失败次数(达到此次数后,该作业不再继续执行,运行失败)
      spark.serializer org.apache.spark.serializer.KryoSerializer #设置序列化机制(默认使用java的序列化,但是速度很慢,建议使用Kryo)
      spark.kryoserializer.buffer.max 256m #序列化缓冲大小
      spark.akka.frameSize 128 #Akka调度帧大小
      spark.default.parallelism 20 #默认并行数
      spark.network.timeout 300s #最大网络延时
      spark.speculation true #Spark推测机制(建议开启)

      复制slaves.template成slaves

      cp slaves.template slaves

      修改$SPARK_HOME/conf/slaves,添加如下内容:

      c7002
      c7003
      c7004
      c7005

    4)、将配置好的spark文件复制到c7002、c7003、c7004和c7005节点。

      scp -r /opt/spark-2.1.0-bin-hadoop2.7 vagrant@C7002:/opt
      scp -r /opt/spark-2.1.0-bin-hadoop2.7 vagrant@C7003:/opt
      scp -r /opt/spark-2.1.0-bin-hadoop2.7 vagrant@C7004:/opt
      scp -r /opt/spark-2.1.0-bin-hadoop2.7 vagrant@C7005:/opt

    5)、修改c7002、c7003、c7004和c7005节点配置。

      在c7002、c7003、c7004和c7005节点上分别修改/etc/profile,增加Spark的配置,过程同c7001一样。

      在c7002、c7003、c7004和c7005节点修改$SPARK_HOME/conf/spark-env.sh,将export SPARK_LOCAL_IP=192.168.70.101改成c7002、c7003、c7004和c7005对应节点的IP。

    6)、在Master节点启动集群。

      /opt/spark-2.1.0-bin-hadoop2.7/sbin/start-all.sh

    7)、查看集群是否启动成功:

      jps

      Master在Hadoop的基础上新增了:

      Master

      Slave在Hadoop的基础上新增了:

      Worker

    3、spark-submit提交作业
    代码需要提交到spark运行,使用命令 spark-submit --master spark://c7001:7077 test.py
    spark-submit 在默认情况下它会从Spark文件夹的conf/spark-defaults.conf读取参数
    如果配置了spark.master, 你就可以不用在调用spark-submit脚本时设置--master参数
    如果你不清楚配置项来自哪里,你可以使用--verbose打印详细的调试信息

  • 相关阅读:
    AX 2012 Form and Parts
    AX 2012 SSRS print setting-报表打印输出设置
    AX 2012 关于parts 添加
    AX Dynamic 2012 tabletype:TempDB使用
    AX Dynamic 2012 SSRS 按行数分页
    AX Dynamic 2012 SSRS autorepot中取当前公司名、打印时间、打印页码
    AX Dynamics 去中文字符长度:中文字符当2个字符处理
    AX dynamics 2012 ssrs 开发报错:Native compiler return value: ‘[BC30179]
    在Ubuntu 下编译c语言
    在ubuntu加载flash的方法
  • 原文地址:https://www.cnblogs.com/netbloomy/p/6702597.html
Copyright © 2011-2022 走看看