写点什么

大数据开发之如何用 Scala 进行 spark 开发

  • 2021 年 11 月 26 日
  • 本文字数:964 字

    阅读完需:约 3 分钟

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 */def main(args: Array[String]) {

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

./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

用户头像

关注尚硅谷,轻松学IT 2021.11.23 加入

还未添加个人简介

评论

发布
暂无评论
大数据开发之如何用Scala进行spark开发