一、编写程序WordCount
1、导入相应jar包
这些jar包都在saprk的安装包里。
2、编写程序
package com.cn.spark
import org.apache.spark.{SparkConf, SparkContext}
object WordCount {
def main(args: Array[String]): Unit = {
val conf=new SparkConf().setAppName("WordCount");
val sc= new SparkContext(conf);
val input=sc.textFile("/home/test/aa.txt");
val lines=input.flatMap(line=>line.split(" "))
val kv=lines.map(word=>(word,1))
val count=kv.reduceByKey(_+_);
val output=count.saveAsTextFile("/home/test01/")
}
}
3、在hadoop上面相应路径下创建aa.txt
[root@master ~]# hdfs dfs -mkdir /home/test
[root@master ~]# hdfs dfs -ls /home/test/
Found 1 items
-rw-r--r-- 1 root supergroup 50 2019-12-09 19:34 /home/test/aa.txt
[root@master ~]# hdfs dfs -cat /home/test/aa.txt
word spark hbase spark hive word count word redis
4、保证hadoop文件夹下的/home/test01目录不存在。
因为saveAsTextFile要求事先提供一个不存在的路径,否则会报错。
二、提交yarn集群
1、注意:
此时并不需要启动spark集群,只需要启动yarn集群即可。
2、执行命令
[root@master bin]# ./spark-submit --master yarn --deploy-mode cluster --class com.cn.spark.WordCount /home/test/wordCount_jar/SparkPro.jar
3、执行完毕查看yarn页面和结果
三、本地模式提交
1、说明
不指定master 或者 --master local local[N] local[*]
local: 只是用一个cores
local[N] : 使用N个cores
local[*] : 使用当前机器的所有的可以用的cores
注 : local 模式运行程序时 , 不能在 Spark 监控页面中进行查看
这个也不需要启动spark集群
2、运行命令
[root@master bin]# ./spark-submit --master local[*] --class com.cn.spark.WordCount /home/test/wordCount_jar/SparkPro.jar
3、执行结果
四、standalone方式提交
1、说明
spark本身提供的集群模式
--master spark://host:port
这个需要先启动集群
2、执行命令
[root@master bin]# ./spark-submit --master spark://master:7077 --class com.cn.spark.WordCount /home/test/wordCount_jar/SparkPro.jar
3、结果: