前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spark 整体介绍

Spark 整体介绍

作者头像
Freedom123
发布2024-03-29 08:35:33
890
发布2024-03-29 08:35:33
举报
文章被收录于专栏:DevOpsDevOps

Spark 整体介绍

? ? Spark 是一个大数据运算框架,使用了DAG调度程序,比基于Hadoop MapReduce 运行速度提高了100倍以上 ?? ?Spark 是一个通用框架,对于不同的运行场景都提供了对于的解决方案: ?? ??? ?基于流式运算的 Spark Streaming框架 ?? ??? ?基于SQL 语法的 Spark SQL框架 ?? ??? ?基于图运算的 GraphX 框架 ?? ??? ?基于人工智能与机器学习的 MLlib 框架 ?? ?Spark 可运行在 Yarn 框架上,还可以运行在独立的集群,Mesos,kubernetes 等集群上面,访问HDFS,HBase,Hive等上百种数据源 ?? ?Spark 支持 Scala,Java,Python及R语言的快速编写 ?? ?Spark 角色分为 HMaster,Worker俩种角色,Spark 启动命令为 Spark-Submit(简称Driver),? ?? ?Spark 运算框架可以不基于Hadoop 框架进行数据运行,所以在配置conf文件时,不涉及 Hadoop 相关东西,在运算时, ?? ??? ?如果数据存储或者需要写入到HDFS时,需要指定数据读取/写入命令 ?? ??? ?如果只是Local模式运行(调试模式),可以不基于HDFS ?? ?提示:[集群在运行过程中,涉及SSH访问,所以集群配置时一定需要免密登陆方可执行] ?? ?Spark 集群安装?? ??? ? ?? ??? ?1. 配置文件修改 ?? ??? ??? ?spart-env.xml?? ?配置HMaster IP,端口 ?? ??? ??? ?slave.sh 配置workers ip地址 ?? ??? ?2. 启动Spark集群 ?? ??? ??? ?start-all.sh ?? ?Spark 高可用安装 ?? ??? ?可以采用,也可以不采用,根据自身条件而定 ?? ??? ?1. 安装Zookeeper 集群及配置Zookper集群,修改HMaster IP端口为Zookeeper 地址,并且启动 ?? ??? ??? ?spart-env.xml ?? ??? ?2. 启动Spark 集群 ?? ??? ??? ?start-all.sh ?? ??? ?3. 配置HMaster StandBy 进程 并且启动 ?? ??? ??? ?hmaster-start.sh ?? ?提交Spark Sample任务 ?? ??? ?1.spart-submit classpath jarpath? ?? ?Spark任务执行流程 ?? ??? ?Spark任务执行流程与Yarn任务执行流程类型 ?? ??? ?1. 首先客户端编写配置Configuration信息,打包Jar包,发起任务到HMaster ?? ??? ?2. HMaster根据用户下发的任务信息,配置Worker个数及Worker对应的内存及CPU等,并且启动Worker; ?? ??? ?3. Worker根据HMaster下发参数信息,并且与Client交互,获取对应的jar包等信息,然后启动Executor行数据处理(一个Worker下可以包含多个Executor) ?? ??? ?4. 输出保存数据。 ?? ?Yarn与Spark的对比 ?? ??? ?Yarn?? ?ResourceManager ? DataManager ? YarnChild?? ?(Job/Client)/ApplicationMastor?? ??? ? ?? ??? ?Spark ? HMaster ? ? ? ? ? Worker?? ??? ?Executor?? ?SparkSubmit ?? ?SparkShell 执行 ?? ??? ?SparkShell 可以理解为Spark的交互式编程窗口,在启动SparkShell那一瞬间,Spark任务已经启动,每个Work已经分配内存及CPU,等待执行任务,一般不采用SparkShell执行任务,不推荐。 ?? ?Scala编写Spark?? ??? ??? ??? ??? ??? ??? ? ?? ??? ?Spark对Scala的支持最好,Spark是用Scala语言开发的,所以Spark中包含了很多Scala特有的语法,这一点是其他语言所不能比拟的,所以编写Spark任务推荐使用Scala。 ?? ??? ?Spark 任务入口为SparkContext,首选需要创建SparkContent,然后就可以按照Spark任务执行流程进行编写,指定MapTask执行操作,ReduceTask执行操作,数据输入,数据输出等。 ?? ?Java编写Spark ?? ??? ?因为Scala是基于Java的一门开发语言,所以Spark也支持用Java进行Spark任务编写,不过Java对很多的Scala语法没有扩展,所以Scala的很多语法功能只能通过编写Java的Spark接口函数才能实现相应的功能,编写Spark的任务会比用Scala编写的程序臃肿吃力很多。 ?? ?JavaLambda编写Spark ?? ??? ?JavaLambda 任然是使用Java实现Spark编程,只在处理接口函数时使用Lambda模型,进行相应的泛化编写,实现与Java接口相同的功能,相对Java编写会轻量一点。 ?? ?Spark 本地调试 ?? ??? ?在真正部署到Spark集群之前,Spark任务可以在本地Local模型下进行调试,对Spark的本地模式只需要设置为.Local() 即可,把输入输出路径指定就可以了,不需要指定HMasker Spark地址,也无需指定HDFS等分布式文件存储地址和ZK地址。但是本地调试需要保证本地具有Hadoop Local运行环境,即为Hadoop Local模式。

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com