大数据开发之如何用Scala进行spark开发
1、开发第一个Spark程序
1)创建一个Spark Context
2)加载数据
3)把每一行分割成单词
4)转换成pairs并且计数
2、wordCount程序
import org.apache.spark.{SparkConf, SparkContext}
/**
- @author
- @date 2020-05-11 20:19
- @version 1.0
*/
val conf = new SparkConf().setAppName("wordcount")
val sc= new SparkContext(conf)
val input=sc.textFile("/Users/navyliu/Downloads/spark/helloSpark.txt")
val lines = input.flatMap(line=>line.split(" "))
val count = lines.map(word=>(word,1)).reduceByKey{case (x,y)=>x+y}
val output = count.saveAsTextFile("/Users/navyliu/Downloads/spark/helloSparkRes")
}
3、打包
配置jar包大数据培训
build
文章图片
然后build
文章图片
4、启动集群
1)启动master
【大数据开发之如何用Scala进行spark开发】./sbin/start-master.sh
文章图片
master启动之后,可以访问下面地址:
http://localhost:8080/
文章图片
2)启动worker
./bin/spark-class
启动work要用到这个地址:
spark://deMacBook-Pro.local:7077
启动work的命令为:
./bin/spark-class org.apache.spark.deploy.worker.Worker spark://navydeMacBook-Pro.local:7077
文章图片
查看进程
文章图片
也可以在页面中看到worker进程
文章图片
3)提交作业
./bin/spark-submit
提交命令
./bin/spark-submit --master spark://deMacBook-Pro.local:7077 --class CountWord untitled.jar
把生成的jar包拷到当前目录
文章图片
提交作业的命令为:
./spark-2.4.5-bin-hadoop2.7/bin/spark-submit --master spark://deMacBook-Pro.local:7077 --class CountWord untitled.jar
结果为:
文章图片
可以看到生成了文件目录helloSparkRes
文章图片
文章图片
jobs任务截图:
文章图片
5、遇到的问题
如果报这种错误:
dyld: lazy symbol binding failed: Symbol not found: ____chkstk_darwin
Referenced from: /private/var/folders/91/6g1y3wp163jbr7tgdrqgkjg80000gn/T/liblz4-java-8731604412047028366.dylib
Expected in: /usr/lib/libSystem.B.dylib
dyld: Symbol not found: ____chkstk_darwin
Referenced from: /private/var/folders/91/6g1y3wp163jbr7tgdrqgkjg80000gn/T/liblz4-java-8731604412047028366.dylib
Expected in: /usr/lib/libSystem.B.dylib
原因是scala版本与spark版本冲突,重新下载spark,版本是2.4.5(spark-2.4.5-bin-hadoop2.7),对应的scala是scala-2.12.11.
重新运行即可.
作者:归来少年666
推荐阅读
- 我要做大厨
- Docker应用:容器间通信与Mariadb数据库主从复制
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 开学第一天(下)
- 20170612时间和注意力开销记录
- 知识
- 三十年后的广场舞大爷
- 奔向你的城市
- 深入理解Go之generate
- 村里的故事|村里的故事 --赵大头