登录 |  注册 |  繁體中文


Spark 安装

分类: Spark 颜色:橙色 默认  字号: 阅读(2051) | 评论(0)

1.  安装

     1.1  Spark的运行依赖于jvm ,所以需要先安装 JDK 1.7, 不需要安装Scala

   1.2 下载预编译好的Spark  解压

   $ tar -xvf spark-1.5.2-bin-hadoop2.4.tgz  

3 单机运行  

./bin/spark-shell

或者指定master

 ./bin/spark-shell --master local[2]  #本地模式两线程运行   

4 集群模式

4.1 需要先安装Hadoop 集群,详见  Hadoop2集群安装

4.2 注释 spark-defaults.conf 

  spark.master                     spark://master:7077

4.3 在master 上配置conf/slaves, 添加Spark worker的hostname, 一行一个。

$ vim slaves
slave01
slave02
# save and exit

4.4 修改配置spark-env.sh

  $ cp ./conf/spark-env.sh.template ./conf/spark-env.sh 
  $ vim ./conf/spark-env.sh  #增加以下内容
export SPARK_WORKER_INSTANCES=3  
export SPARK_MASTER_WEBUI_PORT=8080  #查看集群运行情况的WEB UI的端口号
export SPARK_WORKER_PORT=8081   #worker的端口号
	

 把master上的这个文件拷贝到所有的worker, 注意,三台机器spark所在目录必须一致,因为master会登陆到worker上执行命令,master认为worker的spark路径与自己一样。

启动 Spark 集群

在master上执行

$./bin/start-all.sh

停止 Spark 集群

在master上执行

$./bin/stop-all.sh

Spark History Server 安装,详见  http://www.php3.cn/a/171.html

运行模式

  • 本地模式
  • Standalone模式
  • Mesoes模式
  • yarn模式
实际应用中,Spark 应用程序的运行模式取决于传递给 SparkContext 的 MASTER 环境变量的值,个别模式还需要依赖辅助的程序接口来配合使用,目前所支持的 MASTER 环境变量由特定的字符串或 URL 所组成。例如:
 
Local[N]:本地模式,使用 N 个线程。
Local Cluster[Worker,core,Memory]:伪分布式模式,可以配置所需要启动的虚拟工作节点的数量,以及每个工作节点所管理的 CPU 数量和内存尺寸。
Spark://hostname:port:Standalone 模式,需要部署 Spark 到相关节点,URL 为 Spark Master 主机地址和端口。
Mesos://hostname:port:Mesos 模式,需要部署 Spark 和 Mesos 到相关节点,URL 为 Mesos 主机地址和端口。
YARN standalone/Yarn cluster:YARN 模式一,主程序逻辑和任务都运行在 YARN 集群中。
YARN client:YARN 模式二,主程序逻辑运行在本地,具体任务运行在 YARN 集群中。
  • Standalone – spark-shell --master spark://host:port
  • Apache Mesos – spark-shell --master mesos://host:port
  • Hadoop YARN – spark-shell --master yarn
  • 如果以本地模式运行,则为 spark-shell --master local

Standalone 模式

该模式中,资源调度是Spark框架自己实现的,其节点类型分为Master和Worker节点,其中Driver节点运行在Master节点中,并且有常驻内存的Master进程守护,Worker节点上常驻Worker守护进程,负责与Master通信。

Standalone 模式是Master-Slaves架构的集群模式,Master存在着单点故障问题,目前,Spark提供了两种解决办法:基于文件系统的故障恢复模式,基于Zookeeper的HA方式。

Standalone 模式需要在每一个节点部署Spark应用,并按照实际情况配置故障恢复模式。

 

运行 Spark 示例

Spark 安装包下载的示例代码都在 examples/src/main 目录下面,可以通过运行 bin/run-example[params] 命令方式运行示例程序。例如,运行 SparkPI 的程序,该程序会计算出一个 PI 值,并打印结果在控制台上。

示例1 使用spark-shell

./spark-shell

... 
scala> val days = List("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
days: List[String] = List(Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday)
  
scala> val daysRDD =sc.parallelize(days)
daysRDD: org.apache.spark.rdd.RDD[String] = ParallelCollectionRDD[0] at parallelize at :14
  
scala>daysRDD.count()
scala>res0:Long =7

示例2 运行Spark自带的example中的SparkPi

[root@localhost]# ./bin/run-example SparkPi 10 spark://master01:7077

输出的日志分为两部分,一部分是通用日志信息,它由后面会介绍的一系列脚本及程序产生,另一部分是运行程序的输出结果,此处是计算 PI 的输出结果。

示例3  从HDFS读取文件并运行WordCount

$ hadoop fs -put README.md .  
$ ./spark-shell  MASTER=spark://master01:8070 
scala> val file = sc.textFile("hdfs://master01:9000/user/dev/README.md")  
scala> val count = file.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_+_)  
scala> count.collect()  

 



上一篇:Spark原理分析   下一篇:Scala基础语法

姓 名: *
邮 箱:
内 容: *
验证码: 点击刷新 *   

回到顶部