实验三spark和hadoop的安装
hadoop的安装在之前的随笔中已经介绍过,此处传送门:https://www.cnblogs.com/heiyang/p/11293969.html
接着介绍,spark的安装,不是很难,唯一需要注意的是不同的hadoop版本都有对应的spark版本,下载的时候时候请注意选择。
HDFS的常用操作:以前的随笔传送门:https://www.cnblogs.com/heiyang/p/11411343.html
Spark读取文件系统的数据:
(1) 在 spark-shell 中读取 Linux 系统本地文件“/home/hadoop/test.txt”,然后统计出文件的行数;
sc.textFile("file:///home/hadoop/input/newtest.txt").flatMap(line => line.split(" ")).map(word => (word,1)) .reduceByKey(_ + _).collect
启动spark shell:
./spark-shell --master local[4] //表示使用4个核心
读入需要处理的单词文件
val file = sc.textFile("file:///home/hadoop/input/newtest.txt")
将文件中的每一行单词按照分隔符(这里是空格)分隔
val a = file.flatMap(line => line.split(" "))
给每个单词计数为1
val b = a.map(word => (word,1))
统计相同单词的数量
val c = b.reduceByKey(_ + _)
(2) 在 spark-shell 中读取 HDFS 系统文件“/user/hadoop/test.txt”(如果该文件不存在,请先创建),然后,统计出文件的行数;
如果是在hdfs上操作文件的话,只需要关闭spark,然后启动hadoop,再重新启动spark就可以了,代码基本上没有变化
var file=sc.textFile("/input/newtest.txt") var count = file.flatMap(line=>line.split(" ")).map(word=>word,1)).reduceByKey((a,b)=>a+b) count.collect();