spark的认识(一)

本文介绍了Apache Spark的基本概念,包括其作为大规模数据处理的统一分析引擎的角色,以及比MapReduce更快的计算速度。文章详细阐述了Spark的四大特性:速度快、易用性、通用性和兼容性,并提供了Spark集群的安装、配置和管理步骤。此外,还涵盖了Spark程序的开发,包括使用Spark Shell和IDEA创建Spark应用。
摘要由CSDN通过智能技术生成

spark的认识(一)

1、主要内容

  • 1、掌握spark相关概念

  • 2、掌握搭建一个spark集群

  • 3、掌握编写简单的spark应用程序

2、spark概述

2.1 spark是什么

  • Apache Spark™ is a unified analytics engine for large-scale data processing.

  • spark是一个针对于大规模数据处理的统一分析引擎。

    spark是一个基于内存计算的大数据处理框架,处理非常快。但是这里仅仅只涉及到数据的计算,并没有涉及到数据的存储,后期我们想要通过spark来处理数据,就需要跟外部的数据源进行对接。比如要处理hdfs上的数据。

2.2 为什么要学习spark

  • spark计算速度比mapreduce快很多。

2.3 spark的四大特性

  • 1、速度快

    • spark比mapreduce在内存中快100倍,比mapreduce在磁盘中快10倍

    • 快的主要2个原因

      (1) spark在处理任务的时候,job的输出结果可以保存在内存中,而mapreduce它在处理任务的时候,job的输出结果是只能够保存在磁盘里面。后续又有其他的job需要依赖于前面job的输出结果,spark中可以直接从内存中获取得到,而mapreduce必须要进行大量的磁盘io操作才能够获取得到,这样一来,spark中的job就可以大大减少磁盘的io操作,最后提升性能。
      ​
      select name age from (select * from user where age >30 and age <40)
      ​
      ​
      (2) mapreduce任务它是以进程的方式运行在yarn集群中,比如一个mapreduce任务有100个MapTask,这个时候要处理这100个MapTask就需要启动100个进程。spark任务它是以线程的方式运行在进程中。比如一个spark的任务有100个MapTask,这个时候要处理这100个MapTask可以只启动一个进程,在这一个进程中运行100个线程就可以了。这里启动一个进程跟启动一个线程它的代价肯定是不一样。启动一个进程比启动一个线程需要的时间和资源都是大大增加。spark任务需要的时间和资源是减少了,任务的性能得到了提升。
  • 2、易用性

    • 可以快速写一个spark应用程序通过java、scala、python、R、sql语言来进行代码开发

  • 3、通用性

    • spark框架就是一个生态系统,可以通过它的一些子项目sparksql、sparkStreaming、Mlib、Graphx来使用到不同的应用场景。

  • 4、兼容性

    • spark程序就是一个计算任务的程序,哪里可以给当前这个任务提供计算的资源,我们就可以把spark程序提交到哪里去运行。

      • standalone

        • 它是spark集群自带的集群模式,整个任务的资源分配由Master负责。

      • yarn

        • 可以把spark程序提交到yarn中去运行,整个任务的资源分配由ResourceManager负责

      • mesos

        • 它是一个apache类似于yarn的资源调度框架

 

3、spark集群安装部署

  • 1、下载对应spark版本安装包

  • 2、规划安装目录

    • /export/servers

  • 3、上传安装包到服务器中

  • 4、解压安装包到指定的规划目录

    • tar -zxvf spark-2.1.3-bin-hadoop2.7.tgz -C /export/servers

  • 5、重命名解压目录

    • mv spark-2.1.3-bin-hadoop2.7 spark

  • 6、修改配置文件

    • 进入到spark/conf目录下

      • vim spark-env.sh (mv spark-env.sh.template spark-env.sh)

        #添加java环境变量
        export JAVA_HOME=/export/servers/jdk
        #配置master的IP地址
        export SPARK_MASTER_HOST=node1
        #配置master的端口
        export SPARK_MASTER_PORT=7077
      • vim slaves (mv slaves.template slaves)

        #指定哪些节点是worker(把默认的值localhost干掉)
        node2
        node3
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值