Spark的安装和使用方法

1. 安装Spark

2. 在Spark shell中运行代码

Spark Shell本身就是一个Driver,Driver包mian()和分布式数据集。

启动Spark Shell 命令:

./bin/spark-shell --master <master-url>

Spark的运行模式取决于传递给SparkContext的Master URL的值,可以有如下选择:

1. local 使用一个Worker线程来本地化运行Spark,非并行。默认模式。

2. local[*] 使用逻辑CPU个数数量的线程来本地化运行Spark。

3. local[K] 使用K个Worker线程来本地化运行Spark(理想情况下K应该根据运行机器的CPU核数设定)。

4. spark://HOST:PORT 连接到指定的Spark standalone master,默认端口7077。

5. yarn-client 以客户端模式连接Yarn集群,集群位置在HADOOP_CONF_DIR环境变量中。

6. yarn-cluster 以集群模式连接Yarn集群。

7. mesos://HOST:PORT 连接到指定的Mesos集群,默认端口5050。

在Spark中采用本地模式启动Spark Shell命令主要包括以下参数:

--master      表示要连接的master,如local[*]表示使用本地模式,其中*表示需要使用几个CPU Core(启动几个线程)模拟Spark集群;

--jars           用于把相关的jar包添加到CLASSPATH中,多个jar包可使用“,”连接。

比如要采用本地模式,在4个CPU核心上运行spark-shell

cd /usr/local/spark
./bin/spark-shell --master local[4] --jars code.jar
# 获取完整的选项列表
./bin/spark-shell --help

退出交互环境    :quit

3. 编写Spark独立应用程序

3.1 不同语言应用程序的编译方式

1. Scala编写的应用程序需要使用sbt或Maven进行编译打包;

2. Java编写的应用程序使用Maven编译打包;

3. Python编写的应用程序通过spark-submit直接提交;

3.2 安装sbt

sbt是一款Spark用来对Scala编写的程序进行打包的工具,Spark没有自带sbt,需下载安装。

3.3 scala应用程序

创建代码目录 

/usr/local/spark/mycode/src/mian/scala

test.scala

import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf

object SimpleApp {
  def main(args: Array[String]): Unit = {
    val file = "file:///usr/local/spark/11.log"
    val conf = new SparkConf()
        .setMaster("local[*]")
        .setAppName("Simple Application")
    val sc = new SparkContext(conf)
    val data = sc.textFile(file, 2).cache()
    val num_a = data.filter(_.contains("a")).count()
    val num_b = data.filter(_.contains("b")).count()
    println("Line with a:%s, b:%s".format(num_a, num_b))
  }
}

3.4 使用sbt打包

第一次编译时,需在./sparkapp文件中新建文件simple.sbt(名字可以随便起,与工程无关,有一个以后就可以一直用了),声明该独立应用程序的信息以及与Spark的依赖关系。

name := "Simple Project"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies += "org.apache.spark" %% "spark-core"%"2.1.0"

第一次运行可能很慢,需下载大量依赖,耐心等待。

运行前先执行检查

 打包jar包

/usr/local/sbt/sbt package

3.5 通过spark-submit 运行

./bin/spark-submit
    --class <mian-class>           // 应用程序入口点
    --master <master-url>
    --deploy-mode <deploy-mode>
    ... # other options           //其他参数
    <application-jar>
    [application-arguments]       // 传递给主类的主方法的参数

运行

/usr/local/spark/bin/spark-submit   --class  "SimpleAPP" ~/sparkapp/target/scala-2.11/simple-project_2.11-1.0.jar

简化输出结果

/usr/local/spark/bin/spark-submit   
  --class  "SimpleAPP" 
  ~/sparkapp/target/scala-2.11/simple-project_2.11-1.0.jar 2>&1 
  | grep "Lines with a:"

4. WordCount

import org.apache.spark.SparkContext
import org.apache.spark.SparkContext_
import org.apache.spark.SparkConf

object SimpleApp {
  def main(args: Array[String]): Unit = {
    val file = "file:///usr/local/spark/11.log"
    val conf = new SparkConf()
      .setAppName("Simple Application")
      .setMaster("local[2]")
    val sc = new SparkContext(conf)

    val data = sc.textFile(file)
    val result = data.flatMap(line => line.split(" "))
      .map(word => (word, 1))
      .reduceByKey((a, b) => a+b)
    result.foreach(println)
  }
}

5. 使用Intellij IDEA编写Spark应用程序

1. 安装idea

2. 在idea中安装Scala插件,并配置JDK、Scala SDK

3. 创建Maven工程文件

4. 编写代码

5. 编译打包程序

参考: http://dblab.xmu.edu.cn/blog/1327/

6. Spark集群环境搭建

6.1 集群概况

使用3台机器(节点),1台作为Master节点,另外两台作为Slave节点(Woker节点),主机名分别为Slave01、Slave02。

6.2 搭建Hadoop集群环境

Spark+HDFS运行架构

 参考: http://dblab.xmu.edu.cn/blog/1177-2/

6.3 安装Spark

6.3.1 节点配置

在Master节点上,下载Spark安装包

1. 配置slaves文件;

2. 配置spark-env.sh文件;

3. 将Master主机上的/usr/local/spark文件夹复制到各个节点上;

6.3.2 启动集群

1. 首先启动Hadoop集群;

2. 启动Master节点;

3. 启动所有Slave节点。

 在Master主机浏览器上访问 http://master:8080,查看Spark独立集群管理器的集群信息。

6.3.3 关闭Spark集群

1. 关闭Master节点;

2. 关闭Worker节点;

3. 关闭Hadoop集群。

7. 在集群上运行Spark应用程序

7.1 采用独立集群管理器

7.1.1 在集群中运行应用程序jar包

sprak自带样例,计算pai值

/usr/local/spark/bin/spark-submit   --class  org.apache.spark.examples.SparkPi
--master spark://master:7077 examples/jars/spark-examples_2.11-2.0.2.jar 100 2>&1
| grep "PI is roughly"

7.1.2 在集群中运行spark-shell

用spark-shell连接到独立集群管理器

bin/spark-shell --master spark://master:7077

在独立集群管理Web界面查看应用的运行情况 http://master:8080

7.2 采用Haoop YARN管理器

7.2.1 在集群中运行应用程序jar包

bin/spark-submit   
    --class org.apache.spark.examples.SparkPi
    --master yarn-cluster examples/jars/spark-examples_2.11-2.0.2.jar

在浏览器中打开运行追踪URL,点击Logs,再点击stdout,查看结果。

7.2.2 在集群中运行spark-shell

bin/spark-shell --master yarn

查看运行结果:http://master:8080/cluster

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值