大数据学习之路66-spark安装,单节点

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37050372/article/details/82499290

我们先从单机运行spark开始,将spark解压之后我们先修改配置文件。

spark-env.sh

export JAVA_HOME=/root/app/jdk1.8.0_171
export SPARK_MASTER_HOST=marshal

slaves

localhost

进入sbin,分别启动Master和Worker

start-master.sh 
start-slaves.sh

单机方式启动spark shell

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

启动之后我们尝试的写一个wordcount

我们先写

sc

sc是什么呢?就是spark context,spark的上下文,spark就是用它来创建rdd

sc.textFile()

什么是textFile?就是告诉他从哪里读取数据,然后把任务提交到集群中,他就开始从这里面读数据开始计算。

他不但可以从hdfs读数据,还可以从本地读数据。

虽然这里写WordCount的算子和我们之前用scala写的单机版的wordcount很相似,但是两者不同,现在我们用的底层已经不是scala的方法了,而是spark的方法。

sc.textFile("/root/word.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect

虽然这些算子和scala的的方法相似,但是,这些算子将来会被提交到集群中进行分布式并行计算。

我们还可以在此基础上进行排序,现在我们排序的话,如果像要升序的话为true,如果想要降序就为false。不必像之前一样使用reverse了。

sc.textFile("/root/word.txt").
flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).sortBy(_._2,false).collect

这里写语句的时候我们要注意我们的rdd是lazy的,必须要激励一下才能执行,这里collect就是一种激励,他的意思是,架构结果收集起来在sparkshell中展示。

那如果我们想将结果保存在文件中也可以:

sc.textFile("/root/word.txt").flatMap(_.split(" ")).map((_,1))
.reduceByKey(_+_).sortBy(_._2,false).saveAsFile("/root/outword)

猜你喜欢

转载自blog.csdn.net/qq_37050372/article/details/82499290