安装Spark
-------------------
首先,安装spark之前需要先安装scala,并且安装scala的版本一定要是将要安装的spark要求的版本。比如spark2.1.0 要求scala 2.11系列的版本,不能多也不能少
1.下载spark-2.1.0-bin-hadoop2.7.tgz
地址:http://spark.apache.org/downloads.html
2.解压
Linux中:
3.环境变量
[/etc/profile]
SPARK_HOME=/soft/spark
PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
[source]
$>source /etc/profile
Windos系统中:
将spark安装目录的bin目录以及sbin目录添加到path环境变量中
4.验证spark
运行spark的bin目录中的spark-shell
5.webUI
http://localhost:4040/
注:在spark-shell中 函数.(注意“.”)可以查看api
spark实现word count
------------------------
创建测试文档test.txt内容为
hello world1
hello world2
hello world3
hello world4
打开spark-shell按行执行下列命令
//单词统计1
$scala>val rdd1 = sc.textFile("/home/centos/test.txt")
$scala>val rdd2 = rdd1.flatMap(line=>line.split(" "))
$scala>val rdd3 = rdd2.map(word = > (word,1))
$scala>val rdd4 = rdd3.reduceByKey(_ + _)
$scala>rdd4.collect
//单词统计2
sc.textFile("/home/centos/test.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _).collect
//统计所有含有wor字样到单词个数。filter
//过滤单词
sc.textFile("/home/centos/test.txt").flatMap(_.split(" ")).filter(_.contains("wor")).map((_,1)).reduceByKey(_ + _).collect
[API]
SparkContext:
Spark功能的主要入口点。代表到Spark集群的连接,可以创建RDD、累加器和广播变量.
每个JVM只能激活一个SparkContext对象,在创建sc之前需要stop掉active的sc。
SparkConf:
spark配置对象,设置Spark应用各种参数,kv形式。
分别以scala以及Java实现wordcount示例
----------------------------------------------------------
创建Java项目,添加maven以及scala支持:
项目中添加spark依赖包
scala版:
Java版:
直接运行即可,输出如下:
有此可见scala与Java开发Spark的代码差异,太巨大了,还是别偷懒赶紧去学scala吧,开发效率不是一个级别的。
接下来我们可以把我们的项目打成jar包,通过spark-submit命令在spark中运行:
spark-submit --master [主节点地址] --name [任务名称] --class [jar包的main方法入口类名] [jar包地址]
spark-submit --master local --name myWordCount --class WordCountScala D:\workSpace\58QF\sparkFirst\target\sparkFirst-1.0-SNAPSHOT.jar