4.0.0
com.luoliang.spark
luoliang
1.0-SNAPSHOT
2.1.1
2.11.8
org.apache.spark
spark-core_2.11
${spark.version}
org.scala-tools
maven-scala-plugin
2.15.2
compile
testCompile
maven-compiler-plugin
3.6.0
1.8
org.apache.maven.plugins
maven-surefire-plugin
2.19
true
注意:配置好pom.xml以后,点击Enable Auto-Import即可;
import org.apache.spark.{SparkConf, SparkContext}
object SparkTest {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setMaster("local")setAppName("WordCount")
val sc = new SparkContext(conf)
val file=sc.textFile("file:///D:/a/a.txt").flatMap(_.split(" ")).map((_,1))
.reduceByKey(_+_).saveAsTextFile("file:///D:/a/out/7")
}
}
这段代码实现的是在本地文件夹中获取数据然后输出到本地文件夹中的WordCount操作
import org.apache.spark.{SparkConf, SparkContext}
object Spark1 {
def main(args: Array[String]): Unit = {
val conf = new SparkConf()
.setAppName("wordcount")
.setMaster("local")
val sc = new SparkContext(conf)
val textFile = sc.textFile("hdfs://master:9000/kk/a.txt")
val wordsRDD = textFile.flatMap(_.split(" "))
val wordCountRDD = wordsRDD.map((_, 1)).reduceByKey(_+_).saveAsTextFile("file:///D:/a/out/1")
sc.stop
}
}
这段代码实现的是在hadoop集群中获取数据然后输出到本地文件夹中的WordCount操作,进行操作之前记得提前开启hadoop集群和spark集群
import org.apache.spark.{SparkConf, SparkContext}
object Spark {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("WordCount").setMaster("local[2]")
val sc = new SparkContext(conf)
val file=sc.textFile("hdfs://master:9000/kk/a.txt").flatMap(_.split(" ")).map((_,1))
.reduceByKey(_+_).saveAsTextFile("hdfs://master:9000/out")
sc.stop()
}
}
这段代码实现的是在hadoop集群中获取数据然后输出到hadoop集群文件夹中的WordCount操作,进行操作之前记得提前开启hadoop集群和spark集群
import org.apache.spark.{SparkConf, SparkContext}
object WordCount {
def main(args: Array[String]): Unit = {
//创建SparkConf()并且设置App的名称
val conf = new SparkConf().setAppName("wordCount");
//创建SparkContext,该对象是提交spark app的入口
val sc = new SparkContext(conf);
//使用sc创建rdd,并且执行相应的transformation和action
sc.textFile(args(0)).flatMap(_.split(" ")).map((_ ,1)).reduceByKey(_ + _,1).sortBy(_._2,false).saveAsTextFile(args(1));
//停止sc,结束该任务
sc.stop();
}
}
这段代码实现的是写好wordcount逻辑流程,将其打成jar包进入虚拟机中,开启hadoop集群和spark集群后在spark集群中进行操作,以下是操作的具体流程。
然后,点击idea右侧的Maven Project选项,点击Lifecycle,选择clean和package,然后点击Run Maven Build:
等待编译完成,选择编译成功的jar包,并将该jar上传到Spark集群中的某个节点上:
记得,启动你的hdfs和Spark集群,然后使用spark-submit命令提交Spark应用(注意参数的顺序):
然后开始进行Spark Submit提交操作,命令如下所示:
bin/spark-submit --class com.bie.WordCount --master spark://master:7077 --executor-memory 512M --total-executor-cores 2 /home/hadoop/data_hadoop/sparkWordCount-1.0-SNAPSHOT.jar hdfs://master:9000/wordcount.txt hdfs://master:9000/output
操作如下:
可以在图形化页面看到多了一个Application:
然后呢,就出错了,学知识,不出点错,感觉都不正常: