Spark-Windows安装与实践
有时候懒得开虚拟机,windows也凑合
安装开发环境
1.安装spark
这里不再赘述,http://spark.apache.org/downloads.html下载spark-xx-bin-hadoop即可,配置路径环境变量,路径记得加上bin
然后spark的安装文件夹做如下处理
第一步,去掉只读、隐藏
第二步,勾选完全控制
不然spark-shell启动会
然后赋权
PS I:\develop_software\hadoop-2.7.7\bin> .\winutils.exe ls \tmp\hive
d--------- 1 PC-20200212XFBQ\Administrator PC-20200212XFBQ\None 0 Aug 8 2020 \tmp\hive
PS I:\develop_software\hadoop-2.7.7\bin> .\winutils.exe chmod 777 \tmp\hive
PS I:\develop_software\hadoop-2.7.7\bin> spark-shell
2.安装hadoop
http://mirrors.hust.edu.cn/apache/hadoop/common/下载hadoop-xx-tar.gz
特别注意
为了防止运行程序的时候出现nullpoint异常,到github下载hadoop.dll和winutils.exe 下载地址:https://github.com/steveloughran/winutils
找到对应的hadoop版本,然后把hadoop安装的目录的bin改名bin-bak, 然后把winutil下载的hadoop的bin复制到所安装hadoop的bin目录下替代掉原来的。
测试hadoop能不能用
3.安装scala,这里不多讲。同理安装jdk。
Spark开发有两种方式,一种是用内置的spark-shell,另一种是独立应用开发,独立应用开发支持的语言有Java、Scala、Python和R语言
试一下wordcount程序
package scala
import org.apache.spark.{SparkConf,SparkContext}
object WordCount1{
def main(args:Array[String]):Unit={
//1.创建SparkConf并设置App名称,在本地运行Master,设置为local[*]
val conf = new SparkConf().setAppName("WC").setMaster("local[*]")
//2.创建SparkContext,该对象是提交Spark App的入口
val sc = new SparkContext(conf)
//3.使用sc创建RDD并执行相应的transformation和action
/*
* sc.textFile方法可以读取数据,也可以从其他数据源读取数据,
* 前提是本地安装了hadoop.bin目录下面有winutils相关dll并配置了hadoophome环境变量
* 也可以写hdfs文件路径。
* flatmap方法将数据切分压平
* map对数据进行映射,reduceByKey则将相同key的数据进行聚合
* */
val result = sc.textFile("C:\\Users\\Administrator\\IdeaProjects\\SparkLearning\\src\\main\\scala\\文本.txt").flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_, 1).sortBy(_._2, false).collect()
println(result.toBuffer)
//4.关闭连接
sc.stop()
}
}
我随便打的txt
运行结果: