spark总结

Spark

1. Spark基础概念:是基于内存的大数据分析计算引擎,相比Hadoop MapReduce,在处理迭代式数据流、交互式数据挖掘等场景更具优势,但受内存限制,不能完全替代MapReduce。核心模块包括Spark Core、Spark SQL、Spark Streaming、MLlib和GraphX ,分别负责基础功能、结构化数据操作、实时数据处理、机器学习算法和图计算。运行模式多样,如Local用于教学调试,Standalone独立部署,Yarn与Hadoop集成,还有K8S、Mesos和Windows模式 ,各模式在安装机器数、进程启动、所属者和应用场景上有差异。

2. 安装部署:详细介绍Local、Standalone、Yarn和Windows模式的安装步骤。Local模式在单节点即可运行,用于简单测试;Standalone模式需多节点构建集群,配置slaves和spark - env.sh等文件;Yarn模式要修改Hadoop和Spark配置文件,与Yarn集群集成;Windows模式可在Windows系统本地运行,方便学习。还涉及历史服务配置,用于记录任务运行情况。

3. 运行架构:采用master - slave结构,Driver负责作业调度,Executor执行任务。在Yarn环境提交流程分Client和Cluster模式,区别在于Driver运行位置,Client模式用于测试,Cluster模式用于生产。

4. RDD相关概念:RDD是核心数据处理模型,具有弹性、分布式等特性。其核心属性包括分区列表、计算函数、依赖关系、分区器和首选位置。执行时,Spark申请资源、分解任务并分发到计算节点。RDD有序列化、依赖关系、持久化等机制,分区器决定分区和Reduce个数,支持多种文件格式和文件系统的读取与保存。

执行与序列化:在Yarn环境中,RDD将逻辑封装并生成Task供Executor计算。执行前会进行闭包检查,且Spark支持Kryo序列化框架提升性能,即便使用Kryo,相关对象仍需继承Serializable接口。

5. Spark - Core编程:开发环境需Jdk1.8、Scala2.12和IDEA的Scala插件。以WordCount程序为例,介绍项目创建、依赖添加、代码编写和常见问题解决。RDD创建方式有从集合、外部存储、其他RDD创建和直接创建。RDD算子丰富,按数据处理方式分为Value、双Value和Key - Value类型,还有行动算子触发实际计算,此外还有累加器和广播变量两种特殊数据结构。

6. Spark SQL

核心概念:是Spark用于结构化数据处理的模块,继承发展自Shark,相比Hive有诸多优势,提供DataFrame和DataSet两种编程抽象,具有易整合、统一数据访问、兼容Hive和标准数据连接等特点。DataFrame是带schema元信息的分布式数据集,DataSet是其扩展,具有强类型等特性 。

核心编程:通过SparkSession创建DataFrame,支持SQL、DSL语法操作,可实现RDD、DataFrame和DataSet之间的相互转换。还可自定义函数(UDF、UDAF),进行数据加载与保存,支持多种数据源,如Parquet、JSON、CSV、MySQL等 。

连接Hive:使用方式包括内嵌Hive、外部Hive、Spark - SQL CLI、Spark beeline及代码操作,连接时需进行相应配置,如拷贝配置文件、添加驱动等 。

7.. Spark Streaming

核心概念与架构:用于流式数据处理,以DStream为抽象表示,具有易用、容错、易整合到spark体系的特点。其架构包含背压机制,可动态控制数据接收速率。

核心编程:DStream创建方式有RDD队列、自定义数据源、kafka数据源(如DirectAPI)。操作分为无状态转化(如map、reduceByKey等)和有状态转化(如UpdateStateByKey、Window Operations),输出操作决定对流数据处理结果的去向 。

8. Kafka

核心概念与安装:是分布式发布 - 订阅消息系统,具有高吞吐量、低延迟等特性。角色包括Broker、Topic、Partition等,集群安装需依赖JDK和Zookeeper,安装时要修改配置文件并分发到各节点 。

命令行操作与架构:通过命令行可进行创建、查看、删除topic,生产和消费数据等操作。其架构涉及工作流程、文件存储机制、生产者、消费者等,如分区策略、数据可靠性保证、消费方式、分区分配策略等 。

与其他组件整合:与Flume整合可实现数据的监控采集与传输;与Spark Streaming整合时,需导包并进行相应配置,还可利用Redis维护偏移量 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值