Spark概述

Spark概述

  • Spark是什么

    1. Apache Spark是一个快速的,多用途的集群计算系统,相对于Hadoop MapReduce将中间结果保存在磁盘中,Spark使用了内存保存中间结果,能在数据尚未写入硬盘时在内存中进行运算
    2. Spark只是一个计算框架,不像Hadoop一样包含了分布式文件系统和完备的调度系统,如果要使用Spark,需要搭载其它的文件系统和更成熟的调度系统
  • Spark特点

    1. 速度快

      1. Spark的在内存时的运行速度是Hadoop MapReduce的100倍
      2. 基于硬盘的运算速度大概是Hadoop MapReduce的10倍
      3. Spark实现了一种叫做RDDs的DAG执行引擎,其数据缓存在内存中可以进行迭代处理
    2. 易用

      1. Spark支持Java,Scala,Python,R,SQL等多种语言的API

      2. Spark支持超过80个高级运算符使得用户非常轻易的构建并行计算程序

      3. Spark可以使用基于Scala,Python,R,SQL的Shell交互式查询.

        scala 复制代码
        df = spark.read.json("logs.json")
        df.where("age > 21") \
        	.select("name.first") \
        	.show()
    3. 通用

      1. Spark提供一个完整的技术栈,包括SQL执行,Dataset命令式API,机器学习库MLlib,图计算框架GraphX,流计算SparkStreaming
      2. 用户可以在同一个应用中同时使用这些工具,这一点是划时代的
    4. 兼容

      1. Spark可以运行在Hadoop Yarn,Apache Mesos,.Kubernets,Spark Standalone等集群中
      2. Spark可以访问HBase,HDFS,Hive,Cassandra在内的多种数据库
    5. 总结

      1. 支持Java,Scala,Python和R的API
      2. 可扩展至超过8K个节点
      3. 能够在内存中缓存数据集,以实现交互式数据分析
      4. 提供命令行窗口,减少探索式的数据分析的反应时间
  • Spark组成

    1. Spark-Core和弹性分布式数据集(RDDs)
      1. Spark-Core是整个Spark的基础,提供了分布式任务调度和基本的 I/O 功能
      2. Spark的基础的程序抽象是弹性分布式数据集(RDDs),是一个可以并行操作,有容错的数据集合
        1. RDDs 可以通过引用外部存储系统的数据集创建(如HDFS, HBase),或者通过现有的 RDDs 转换得到
        2. RDDs 抽象提供了Java, Scala, Python等语言的API
        3. RDDs 简化了编程复杂性,操作 RDDs 类似通过 Scala 或者 Java8 的 Streaming 操作本地数据集合
    2. Spark SQL
      1. Spark SQL 在 spark-core 基础之上带出了一个名为 DataSet 和 DataFrame 的数据抽象化的概念
      2. Spark SQL 提供了在 Dataset 和 DataFrame 之上执行 SQL 的能力
      3. Spark SQL 提供了 DSL, 可以通过 Scala,Java,Python 等语言操作 DataSet 和 DataFrame
      4. 它还支持使用 JDBC/ODBC 服务器操作 SQL 语言
    3. Spark Streaming
      1. Spark Streaming 充分利用 spark-core 的快速调度能力来运行流分析
      2. 它截取小批量的数据并可以对之运行 RDD Transformation
      3. 它提供了在同一个程序中同时使用流分析和批量分析的能力
    4. MLlib
      1. MLlib 是 Spark 上分布式机器学习的框架. Spark 分布式内存的架构 比 Hadoop 磁盘式的 Apache Mahout 快上10倍,扩展性也非常优良
      2. MLlib 可以使用许多常见的机器学习和统计算法,简化大规模机器学习
      3. 汇总统计,相关性,分层抽样,假设检定,随即数据生成
      4. 支持向量机,回归,线性回归,逻辑回归,决策树,朴素贝叶斯
      5. 协同过滤,ALS
      6. K-means
      7. SVD 奇异值分解,PCA 主成分分析
      8. TF-IDF , Word2Vec , StandardScaler
      9. SGD随机梯度下降,L-BFGS
    5. Graphx
      1. GraphX 是分布式图计算框架,提供了一组可以表达图计算的APL,GraphX还对这种抽象化提供了优化运行
    6. 总结
      1. Spark 提供了批处理 (RDDs), 结构化查询 (DataFrame),流计算 (SparkStreaming),机器学习 (MLlib), 图计算(GraphX)等组件

      2. 这些组件均是依托于通用的计算引擎 RDDs 而构建出的,所以 spark-core 的 RDDs 是整个 Spark 的基础

  • Spark和Hadoop之间的关系

    Hadoop Spark
    类型 基础平台,包含计算,存储,调度 分布式计算工具
    场景 大规模数据集上的批处理 迭代计算,交互式计算,流计算
    延迟
    易用性 API较为底层,算法适应性差 API较为顶层,方便使用
    价格 对机器要求低,便宜 对内存有要求,相对较贵
相关推荐
ZOHO项目管理软件1 分钟前
EDM平台大比拼 用户体验与营销效果双重测评
大数据
HyperAI超神经1 小时前
Meta 首个多模态大模型一键启动!首个多针刺绣数据集上线,含超 30k 张图片
大数据·人工智能·深度学习·机器学习·语言模型·大模型·数据集
Hello.Reader3 小时前
TopK算法在大数据重复数据分析中的应用与挑战
大数据·算法·数据分析
数据龙傲天3 小时前
1688商品API接口:电商数据自动化的新引擎
java·大数据·sql·mysql
Elastic 中国社区官方博客3 小时前
Elasticsearch:使用 LLM 实现传统搜索自动化
大数据·人工智能·elasticsearch·搜索引擎·ai·自动化·全文检索
Jason不在家5 小时前
Flink 本地 idea 调试开启 WebUI
大数据·flink·intellij-idea
Elastic 中国社区官方博客6 小时前
使用 Vertex AI Gemini 模型和 Elasticsearch Playground 快速创建 RAG 应用程序
大数据·人工智能·elasticsearch·搜索引擎·全文检索
CHICX12297 小时前
【Hadoop】改一下core-site.xml和hdfs-site.xml配置就可以访问Web UI
xml·大数据·hadoop
权^8 小时前
MySQL--聚合查询、联合查询、子查询、合并查询(上万字超详解!!!)
大数据·数据库·学习·mysql
bin915312 小时前
【EXCEL数据处理】000010 案列 EXCEL文本型和常规型转换。使用的软件是微软的Excel操作的。处理数据的目的是让数据更直观的显示出来,方便查看。
大数据·数据库·信息可视化·数据挖掘·数据分析·excel·数据可视化