Spark开发——Spark简介及入门

目录

什么是Spark?

Spark有哪些特点和优势

1.计算速度

2.易用性

3.通用性

4.兼容性

Spark架构

Spark基本概念

Spark结构设计

使用Scala语言实现Spark本地词频统计


什么是Spark?

Spark它是一个用于大规模数据处理的实时计算引擎。

 

Spark有哪些特点和优势

1.计算速度

由于Spark它是基于内存计算的方式,从计算速度来说远比Hadoop要高,经过统计Spark的计算速度是Hadoop的100多倍。

2.易用性

Spark能够支持多种编程语言进行开发。有 Java, Scala, Python, R, 和 SQL

3.通用性

Spark支持一站式开发流程,支持一系列库,包括SQL和DataFrames、用于机器学习的MLlib、GraphX和Spark流。

4.兼容性

Spark可以运行在Hadoop、Apache Mesos、Kubernetes、独立平台上,也可以运行在云上。它可以访问不同的数据源。

Spark架构

Spark基本概念

RDD:是弹性分布式数据集(Resilient Distributed Dataset)的简称,是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型;
DAG:是Directed Acyclic Graph(有向无环图)的简称,反映RDD之间的依赖关系;
Executor:是运行在工作节点(Worker Node)上的一个进程,负责运行任务,并为应用程序存储数据;
应用:用户编写的Spark应用程序;
任务:运行在Executor上的工作单元;
作业:一个作业包含多个RDD及作用于相应RDD上的各种操作;
阶段:是作业的基本调度单位,一个作业会分为多组任务,每组任务被称为“阶段”,或者也被称为“任务集”。

Spark结构设计

Master节点:Spark运行架构包括集群资源管理器

Worker节点:运行作业任务的工作节点(Node)

Driver:任务提交运行程序

Executor:和每个工作节点上负责具体任务的执行进程(Executor)

集群资源管理器可以是Spark自带的资源管理器,也可以是YARN或Mesos等资源管理框架。

使用Scala语言实现Spark本地词频统计

1.创建Maven工程

2.pom.xml导入相关依赖

<build>
    <!--java编译插件,如果使用的java默认配置不是java8,需要配置这个-->
    <plugins>
       <plugin>
           <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

<!--spark核心依赖-->
<dependencies>
    <dependency>
       <groupId>org.apache.spark</groupId>
       <artifactId>spark-core_2.11</artifactId>
       <version>2.2.0</version>
    </dependency>
</dependencies>

3.编写spark wordcount

import org.apache.spark.{SparkConf, SparkContext}

object WordCountWithScala {
    def main(args: Array[String]): Unit = {
        
        //本地调试
        val conf = new SparkConf().setMaster("local[2]").setAppName("master")
        
        val sc = new SparkContext(conf)

        sc.textFile("sparktest/spark_demo/words.text").flatMap(_.split(" "))
            .map((_,1)).reduceByKey(_+_)//.saveAsTextFile("hdfs://hadoop01:9000/out")
            .foreach(println)
        sc.stop
    }
}

tips:运行相关配置

文件默认路径是当前父项目根目录

本地运行需要winutils文件支持,否则会报错

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值