Spark:安装和简单应用

介绍

spark是一个用来快速且通用的集群计算平台,使用scala开发,运行于jvm之上。Spark基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性。Spark适用于各种各样原先需要多种不同的分布式平台实现的场景,包括批处理、迭代计算、交互式查询、流处理等。

image-20210208171705206

下载安装

前提:安装jdk(不再赘述)

下载spark-2.4.7-bin-hadoop2.7.gz

mv spark-2.4.7-bin-hadoop2.7.gz /opt
cd /opt
tar -zxvf spark-2.4.7-bin-hadoop2.7.gz
mv spark-2.4.7-bin-hadoop2.7 spark
cd spark
sbin/start-all.sh
jps -l

image-20210208171534267

发现多出来spark的worker和master,分别代表工作节点和主节点 。

我们可以通过http://ip:8080端口查看master运行状况:

image-20210208172304356

简单使用

启动spark

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

image-20210208172502960

下面简单介绍它的基本使用:对文本内容的单词统计

scala> val rdd = sc.textFile("/opt/spark/bin/spark-shell")
scala> val wordmap = rdd.flatMap(_.split(" ")).map(x=>(x,1))
scala> val wordreduce = wordmap.reduceByKey(_+_)
scala> wordreduce.take(10)

image-20210208172955350

1.首先通过SparkContext(Spark在启动的时候自动创建一个SparkContext对象,叫做sc的变量)的textFile()方法读取文件

2.然后使用split()方法按照空格进行分词,之后又通过flatMap()方法对处理后的单词进行展平,展平之后使用map(x=>(x,1))对每个单词计数1

3.reduceByKey(_+_)根据单词进行技术,这个过程是一个Shuffle过程

4.使用take(10)方法获取前面10个单词的统计结果

如果想看到单词出现次数前10的内容:

scala> var wordsort = wordreduce.map(x=>(x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1))
scala> wordsort.take(10)

image-20210208173651867

1.使用map(x=>(x._2,x._1))对单词统计结果的键和值进行互换,然后通过sortByKey(false)降序排序,然后map(x=>(x._2,x._1))将键和值互换

4.使用take(10)方法获取前面10个单词的统计结果

原文地址:https://www.cnblogs.com/wwjj4811/p/14389768.html