前提:已经搭建完全分布式的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打印详细的调试信息

1、spark集群搭建的更多相关文章

  1. (四)Spark集群搭建-Java&Python版Spark

    Spark集群搭建 视频教程 1.优酷 2.YouTube 安装scala环境 下载地址http://www.scala-lang.org/download/ 上传scala-2.10.5.tgz到m ...

  2. Spark集群搭建简要

    Spark集群搭建 1 Spark编译 1.1 下载源代码 git clone git://github.com/apache/spark.git -b branch-1.6 1.2 修改pom文件 ...

  3. Spark集群搭建简配+它到底有多快?【单挑纯C/CPP/HADOOP】

    最近耳闻Spark风生水起,这两天利用休息时间研究了一下,果然还是给人不少惊喜.可惜,笔者不善JAVA,只有PYTHON和SCALA接口.花了不少时间从零开始认识PYTHON和SCALA,不少时间答了 ...

  4. Spark集群搭建中的问题

    参照<Spark实战高手之路>学习的,书籍电子版在51CTO网站 资料链接 Hadoop下载[链接](http://archive.apache.org/dist/hadoop/core/ ...

  5. Spark集群搭建_Standalone

    2017年3月1日, 星期三 Spark集群搭建_Standalone Driver:    node1    Worker:  node2    Worker:  node3 1.下载安装 下载地址 ...

  6. Spark集群搭建_YARN

    2017年3月1日, 星期三 Spark集群搭建_YARN 前提:参考Spark集群搭建_Standalone   1.修改spark中conf中的spark-env.sh   2.Spark on ...

  7. spark集群搭建

    文中的所有操作都是在之前的文章scala的安装及使用文章基础上建立的,重复操作已经简写: 配置中使用了master01.slave01.slave02.slave03: 一.虚拟机中操作(启动网卡)s ...

  8. Spark 集群搭建

    0. 说明 Spark 集群搭建 [集群规划] 服务器主机名 ip 节点配置 s101 192.168.23.101 Master s102 192.168.23.102 Worker s103 19 ...

  9. hadoop+spark集群搭建入门

    忽略元数据末尾 回到原数据开始处 Hadoop+spark集群搭建 说明: 本文档主要讲述hadoop+spark的集群搭建,linux环境是centos,本文档集群搭建使用两个节点作为集群环境:一个 ...

  10. Spark集群搭建(local、standalone、yarn)

    Spark集群搭建 local本地模式 下载安装包解压即可使用,测试(2.2版本)./bin/spark-submit --class org.apache.spark.examples.SparkP ...

随机推荐

  1. 【hive】关于浮点数比较的问题

    当在hive中写下浮点数(例如:0.2) hive会把浮点数(0.2)存储为double类型 但是系统中并不能精准表示0.2这个浮点数 正确的浮点数表示 float   0.2 —> 0.200 ...

  2. C++复习8.异常处理和RTTI

    C++异常处理和RTTI技术 20130930 1.异常处理的基本知识 C语言中是没有内置运行时错误处理机制,对于错误发生的时候使用的几种处理机制: 函数返回彼此协商后统一定义的状态编码来表示操作成功 ...

  3. hdu4115

    题解: 2-sat 对于bob出的每一张牌,alice显然只有两种选择 然后对于每一个限制,连边 判断是否可行 代码: #include<cstdio> #include<cmath ...

  4. Gridview 尾部添加总计

    1.GridView控件showfooter的属性=true 2. int totalZJ, iZJ; protected void GridView1_RowDataBound(object sen ...

  5. WordCount-个人项目2

    我的这个WC程序实现了对txt文件中的数据的计数,算出程序中有多少单词.字符数.行数还有空格数.以及长度. 项目源代码参考:http://www.cnblogs.com/sunbuqiao/p/531 ...

  6. SpringInAction--条件化的Bean

    学习了profile bean之后,发现有的时候bean还是有根据环境来选择的余地的,那么假设我们希望某个bean只有当另外某个特定的bean也声明了之后才会创建.我们还可能要求只有某个特定的环境变量 ...

  7. keras 报错 ValueError: Tensor conversion requested dtype int32 for Tensor with dtype float32: 'Tensor("embedding_1/random_uniform:0", shape=(5001, 128), dtype=float32)'

    在服务器上训练并保存模型,复制到本地之后load_model()报错: ValueError: Tensor conversion requested dtype int32 for Tensor w ...

  8. 那些年提交AppStore审核踩过的坑

    此文刚刚上了CocoaChina的首页:那些年提交AppStore审核踩过的坑  欢迎围观,谢谢大家支持. //add by 云峰小罗,2016.08.04 做iOS开发近5年了,每次提交版本时不可谓 ...

  9. Android编程 高德地图 中如何重写 定位按键 的触发事件 (com.amap.api.maps2d.LocationSource)点击定位后不仅定位在地图中心点上而且可以设置地图的缩放大小和提示

    在利用高德地图来编写自己的APP的时候,发现了一种对定位按键的重写方法,那就是利用   com.amap.api.maps2d.LocationSource  接口来重写. 什么是定位按键呢,下图中右 ...

  10. 每天一个linux命令(权限):【转载】 /etc/group文件详解

    Linux /etc/group文件与/etc/passwd和/etc/shadow文件都是有关于系统管理员对用户和用户组管理时相关的文件.linux /etc/group文件是有关于系统管理员对用户 ...