启动spark-shell
直接启动bin目录下的spark-shell:
./spark-shell
spark-shell说明
- 直接使用./spark-shell
表示使用local 模式启动,在本机启动一个SparkSubmit进程
- 还可指定参数 --master,如:
spark-shell --master local[N] 表示在本地模拟N个线程来运行当前任务
spark-shell --master local[*] 表示使用当前机器上所有可用的资源
- 不携带参数默认就是
spark-shell --master local[*]
- 后续还可以使用–master指定集群地址,表示把任务提交到集群上运行,如
./spark-shell --master spark://hadoop01:7077
- 退出spark-shell
使用 :quit
读取本地文件
- 准备数据
vim /root/words.txt
hello me you her
hello you her
hello her
hello
val textFile = sc.textFile("file:///root/words.txt")
val counts = textFile.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _)
counts.collect//收集结果
// Array[(String, Int)] = Array((you,2), (hello,4), (me,1), (her,3))
读取HDFS文件
- 准备数据
上传文件到hdfs
hadoop fs -put /root/words.txt /wordcount/input/words.txt
目录如果不存在可以创建
hadoop fs -mkdir -p /wordcount/input
结束后可以删除测试文件夹
hadoop fs -rm -r /wordcount
val textFile = sc.textFile("hdfs://node01:8020/wordcount/input/words.txt")
val counts = textFile.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _)
counts.saveAsTextFile("hdfs://node01:8020/wordcount/output")