微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spark 学习

@H_404_1@一、Spark简介

  Spark是一个快速且通用的集群计算平台。

 

@H_404_1@二、特点:

  @H_404_1@1、Spark 快速

    扩充了Mapreduce计算模型

    Spark是基于内存的计算

  @H_404_1@2、Spark 通用

    Spark的设计容纳了其他分布式系统的拥有的功能

    批处理、迭代式计算、交互查询和流处理等。

  @H_404_1@3、Spark 高度开放

    Python、Java、Scala、sql的API和丰富的内置库

    Spark和其他的大数据工具整合的很好,包括Hadoop和Kafka

 

@H_404_1@三、Spark的组件

@H_404_1@  1、Spark Core

@H_404_1@    包含Spark的基本功能,包含任务调度、内存管理、容错机制等

    内部定义了RDDs(弹性分布式数据集)

    提供了很多API来创建和操作这些RDDs

    应用场景,为为其他组件提供底层的服务

   @H_404_1@2、Spark sql

@H_404_1@    是Spark处理结构化数据的库,就像Hive sqlMysqL一样。

    应用场景,在企业中用来做报表统计

     3、Spark Sreaming

    是实时数据流处理组件,类似Storm

    Spark Streaming提供了API来操作实时数据流

    应用场景,企业中用来从Kafka接收数据做实时统计

 @H_404_1@ 4、Mlib

    一个包含机器学习功能的包,Machine learning lib

    包含分类、聚类、回归等,还包括模型评估和数据导入

    Mlib提供的上面的方法,都支持集群上的横向扩展

    应用场景,机器学习

  @H_404_1@ 5、GraphX

    是处理图的库(例如,社交网络图),并进行图的并行计算

    像Spark Streaming、Spark sql一样,它继承了RDD API

    它提供了各种图的操作,和常用的图算法,例如PangeRank算法

    应用场景,图计算

    @H_404_1@6、Cluster Managers

    集群管理,Spark自带一个集群管理是单独调度器

    常见的集群管理:Hadoop YARN,Apache Mesos

@H_404_1@  紧密集成的优点:

    1、Spark底层优化,基于Spark底层的组件,也得到了相应的优化

    2、紧密集成,节省了各个组件组合使用时的部署、测试等时间

    3、向Spark新增组件时,可立即享用新组件的功能

 

@H_404_1@四、Spark和Hadoop的比较

@H_404_1@     1、Hadoop

@H_404_1@     离线处理

@H_404_1@      对时效性要求不高

@H_404_1@       Hadoop中间数据存储在@H_404_1@硬盘上

    @H_404_1@2、Spark

          时效性较高的场景

      Spark中间数据存储在@H_404_1@内存中

 

@H_404_1@五、Spark的安装

@H_404_1@     1、下载地址: http://spark.apache.org/downloads.html

@H_404_1@     2、Spark目录:

@H_404_1@         bin:包含用来和Spark进行交互的可执行文件,如Spark Shell

        core、streaming、python...,包含主要组件的源代码

        examples包含一些单机Spark job,可以研究和运行这些例子

      @H_404_1@3、Shell

@H_404_1@         Spark的Shell是你能够处理分布在集群上的数据

            Spark把数据加载到节点的内存中,因此分布式处理可在秒级完成

            快速使迭代式计算,实施查询、分析一般能够在shells中完成

        Spark提供了Python shell和Scala shell

        ./bin/spark-shell

 

@H_404_1@六、Spark开发环境搭建

@H_404_1@     1、Scala的安装

@H_404_1@      地址: https://www.scala-lang.org/download/

@H_404_1@    2、IntelliJ IDEA CE

@H_404_1@      地址:https://www.jetbrains.com/idea/

@H_404_1@      安装plugin: Spark 和 Scala

@H_404_1@ 

@H_404_1@七、第一个Spark项目

@H_404_1@    1、配置Spark的无密登陆:

@H_404_1@      终端命令 ssh-keygen 生成密钥,这个密钥的生成和github配置ssh生成的密钥一样的,如果github生成过的话,直接用github那个id_rsa.pub就可以。

       步骤是: 1、ssh-keygen

            2、cd ~/.ssh/

            3、touch authorized_keys

              4、cat id_rsa.pub > authorized_keys

            5、chown 600 authorized_keys

     @H_404_1@  2、创建项目

@H_404_1@        Spark 和 Scala安装完成之后

@H_404_1@@H_404_1@            New -> Project -> Scala -> sbt -> Next -> Finish

@H_404_1@@H_404_1@@H_404_1@         

             

         

       @H_404[email protected] 中配置项目依赖 ,@H_404_1@注意 Scala和Spark的版本一定要对应上 不然会出版本问题

         这是我用的配置:

name := "Scala-Test"

version := "0.1"

scalaVersion := "2.12.8"

libraryDependencies ++= Seq(
  "org.apache.spark" %% "spark-core" % "2.4.3")

  

       

 

<style></style>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐