设为首页 加入收藏

TOP

Spark ---Spark 的基本使用
2019-02-10 13:25:29 】 浏览:23
Tags:Spark ---Spark 基本 使用

Spark 的基本使用

1、执行第一个 Spark 程序

利用 Spark 自带的例子程序执行一个求 PI(蒙特卡洛算法)的程序:

$SPARK_HOME/bin/spark-submit \ 
--class org.apache.spark.examples.SparkPi \ 
--master spark://hadoop02:7077 \ 
--executor-memory 512m \ 
--total-executor-cores 2 \ 
$SPARK_HOME/examples/jars/spark-examples_2.11-2.3.0.jar \ 
100 

2、启动 Spark Shell

启动命令:

$SPARK_HOME/bin/spark-shell \ 
--master spark://hadoop02:7077,hadoop04:7077 \ 
--executor-memory 512M \ 
--total-executor-cores 2

注意上图中的 cores 参数,是 0,那么以后这个 spark shell 中运行的代码是不能执行成功的。 千万注意。必要要把 cpu cores 和 memory 设置合理

1、 executor memory 不能超过虚拟机的内存

2、 cpu cores 不要超过 spark 集群能够提供的总 cpu cores,否则会使用全部。最好不要使用全部。否则其他程序由于没有 cpu core 可用,就不能正常运行

参数说明:

--master spark://hadoop02:7077 指定 Master 的地址

--executor-memory 2G 指定每个 worker 可用内存为 2G

--total-executor-cores 2 指定整个集群使用的 cup 核数为 2 个

注意:

如果启动 spark shell 时没有指定 master 地址,但是也可以正常启动 spark shell 和执行 spark shell 中的程序,其实是启动了 spark 的 local 模式,该模式仅在本机启动一个进程,没有与集群建立联系。

Spark-2.X:

Spark Shell 中已经默认将 SparkContext 类初始化为对象 sc。

Spark Shell 中已经默认将 SparkSession 类初始化为对象 spark。

用户代码如果需要用到,则直接应用 sc,spark 即可

Spark-1.X:

Spark Shell 中已经默认将 SparkContext 类初始化为对象 sc。

Spark Shell 中已经默认将 SQLContext 类初始化为对象 sqlContext。

用户代码如果需要用到,则直接应用 sc,sqlContext 即可

3、在 Spark Shell 中编写 WordCount 程序

在提交 WordCount 程序之前,先在 HDFS 集群中的准备一个文件用于做单词统计:

words.txt 内容如下:

hello huangbo

hello xuzheng

hello wangbaoqiang

把该文件上传到 HDFS 文件系统中:

[hadoop@hadoop05 ~]$ hadoop fs -mkdir -p /spark/wc/input

[hadoop@hadoop05 ~]$ hadoop fs -put words.txt /spark/wc/input

在 Spark Shell 中提交 WordCOunt 程序:

执行最后的结果:

说明:

sc 是 SparkContext 对象,该对象时提交 spark 程序的入口

textFile("hdfs://myha01/spark/wc/input/words.txt")是从 HDFS 中读取数据

flatMap(_.split(" "))先 map 再压平

map((_,1))将单词和 1 构成元组(word,1)

reduceByKey(_+_)按照 key 进行 reduce,并将 value 累加

saveAsTextFile("hdfs://myha01/spark/wc/output")将结果写入到 HDFS 对应输出目录中


编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Apache Spark ecosystem 下一篇『 Spark 』1. spark 简介

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(214) }