当前位置: 首页 > news >正文

spark入门-helloword

        我们学习编程语言的时候,第一个程序就是打印一下 “hello world” ,对于大数据领域的第一个任务则是wordcount。那我们就开始我们的第一个spark任务吧!

下载spark

官方下载地址:Apache Download Mirrors 下载完毕以后,直接tar解压即可。

本地启动spark集群

环境只是为了让我们能够运行我们的程序,所以我们的任务是写任务而不是搭建环境。搭建环境的部分,可能运维比我们更专业。

安装官网我们启动一个standalon模式 ,Spark Standalone Mode - Spark 4.0.0 Documentation。

启动完以后master我们就可以在8080端口上看到我们的spark集群了。

接着启动一个worker,启动的时候需要master的地址。我们本地启动的,所以localhost就可以了。./sbin/start-worker.sh  spark://bogon:7077  ,master的url可以从master 8080的界面看到,这个记得一定要写正确,要不启动worker的时候就有问题了。否则这个worker节点不现实worker个数的。

构建我们的jar程序

我们直接参考官网的代码(注意:这是学习的方式方法,看到别人博客直接写的入门代码。其实官方是第一手资料)Spark Streaming - Spark 4.0.0 Documentation 

代码

def main(args: Array[String]): Unit = {println("======== start ==========")val conf = new SparkConf().setAppName("test")val ssc = new StreamingContext(conf, Seconds(1))val source = ssc.socketTextStream("localhost", 9999)val words = source.flatMap(_.split(","))val paris = words.map(word => (word, 1))val wordCounts = paris.reduceByKey(_ + _)wordCounts.print()ssc.start()ssc.awaitTermination()}

编译打包jar,然后提交submit

./bin/spark-submit \--class demo.WordCount \--executor-memory 512M  \--total-executor-cores 2 \--master spark://localhost:7077 \--deploy-mode client \--verbose \/path/spark-task-1.0-SNAPSHOT.jar  

Submitting Applications - Spark 4.0.0 Documentation

查看日志打印

总结

        小结一下,其实看似很简单的一个demo。过程也是遇到了很多的问题,1、是启动 worker的时候需要制定master的url地址,这个需要从8080端口查看。2、发现自己的代码无法提交到集群中,结果发现是代码里面setMaster了,所以去掉。3、打包的时候提示找不到class,因为是maven构建的java程序。自己添加的scala包,所以需要打包的时候指定一下scala路径,把下面的class打包进去。

        多实践才能发现问题,有时候只是知道了理论,看似懂了,其实离懂了还是差了一些。

http://www.dtcms.com/a/305720.html

相关文章:

  • React 闭包陷阱及解决方案与 React 16/17/18 版本区别
  • 5种安全方法:如何删除三星手机上的所有内容
  • 三轴云台之减震系统篇
  • OpenEuler 安装 apache + php8 不解析php文件的处理
  • Apache Ignite 2.8 引入的新指标系统(New Metrics System)的完整说明
  • SpringBoot+Three.js打造3D看房系统
  • 深入理解 Doris Compaction:提升查询性能的幕后功臣
  • 深入剖析 Spark Shuffle 机制:从原理到实战优化
  • 【CVPR2025】FlowRAM:用区域感知与流匹配加速高精度机器人操作策略学习
  • linux 执行sh脚本,提示$‘\r‘: command not found
  • (8)(8.6) H-流量(光学流量和距离传感器模块)
  • 自动化测试实战—petstore实战
  • SparkSQL_数组排序函数 array_sort用法详解
  • 快秀录屏记录高光时刻,分享游戏激情
  • 少林寺用什么数据库?
  • 传统ERP迁移SAP Cloud ERP现代化升级:Kyano Crossway一种更智能的迁移方案
  • 【C++详解】深入解析多态 虚函数、虚函数重写、纯虚函数和抽象类、多态原理、重载/重写/隐藏的对⽐
  • Python字典高级映射:键到多值映射的工程实践
  • 智能Agent场景实战指南 Day 26:Agent评估与性能优化
  • SAP ABAP锁机制程序锁
  • LeetCode热题100--148. 排序链表--中等
  • Linux730 tr:-d /-s;sort:-r,-n,-R,-o,-t,-k,-u;bash;cut:-d,-c;tee -a;uniq -c -i
  • AD域设计与管理-批量创建域用户
  • 大语言模型API付费?
  • 【Qt】QTime::toString(“hh:mm:ss.zzz“) 显示乱码的原因与解决方案
  • MySQL EXPLAIN详解与高效调优方法
  • Spring-rabbit使用实战四
  • ConcurrentHashMapRedis实现二级缓存
  • 力扣219:存在重复元素Ⅱ
  • Android Animation Transitions:打造流畅的用户体验