• Spark简介及linux环境搭建(local本地模式)


    Spark和java的集成demo请点击

    官方网址:https://spark.apache.org/
    定义:

    Unified engine for large-scale data analytics
    Spark是用于大规模数据处理的统一分析引擎

    背景 Spark风雨十年
    2009年Spark诞生于加州大学伯克利分校AMP实验室,
    2013年其原创团队建立了Databricks公司,并将Spark捐献给了Apache软件基金会,
    2014年成为Apache顶级项目,2016年发布了Spark2.0,2019年10月发布
    Spark3.0预览版,2020年6月18日Spark3.0正式发布
    Spark的发展历史,经过几个重要阶段,如下图所示
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    自2009年伯克利的AMP实验室将Spark开源以来,Spark在大数据处理领域发展相当迅速
    ,并获得了巨大的成功。如今,Spark已经成为最活跃的开源项目之一,
    是大数据处理、数据科学、机器学习和数据分析工作负载的事实上的统一引擎
    从世界著名的开发者论坛Stack Overflow的数据可以看出,2015年开始Spark
    每月的问题提交数量已经超越Hadoop,而2018年Spark Python 版本的API
    PySpark每月的问题提交数量也已超过Hadoop.2019年排名Spark第一,PySark
    第二;而十年累计排名Spark第一,PySpark第三。按照这个趋势发展下去,Spark和
    PySpark在未来很长一段时间内应该还会处于垄断地位
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    Spark环境搭建——local本地模式

    将从下面三个步骤展开

    原理
    操作
    测试
    
    • 1
    • 2
    • 3

    一:准备工作

    1.保证有JDK(Spark 源码是使用Scala编写的,编译成.class文件,运行
    在JVM之上)
    2.Scala的SDK?—不在Linux上进行Spark开发则不需要
    3.安装包下载
    目前使用Spark最新稳定版本:3.0.x系列
    
    http://archive.apache.org/dist/spark/spark-3.0.1/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    二:原理

    在本地使用多线程模拟Spark集群中的各个角色
    在这里插入图片描述

    三:操作

    1.上传:将安装包上传至linux
    2.解压  tar -zxvf spark-3.0.1-bin-hadoop2.7.tgz
    3.改权限,如果有权限问题,可以修改为root,方便学习时操作,实际
    中使用运维分配的用户和权限即可
    chown -R root /export/server/spark-3.0.1-bin-hadoop2.7
    chgrp -R root /export/server/spark-3.0.1-bin-hadoop2.7
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    四:测试

    1.上传测试文件
    2.启动bin目录下的spark-shell
    /xxx/spark/spark-3.0.1-bin-hadoop2.7/bin
    3.运行成功以后,有如下提示信息
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    4.打开webUI: http://shcas.com.cn:4040  (浏览器可以看到spark任务页面)
    5.执行命令脚本wordcount
    
    • 1
    • 2

    测试代码1(可以直接复制,粘贴到服务器spark启动界面执行):

    val textFile = sc.textFile("/app/gzengine/spark/word.txt")
    val counts = textFile.flatMap(line => line.split(" "))
                     .map(word => (word, 1))
                     .reduceByKey(_ + _)
    counts.collect
    
    • 1
    • 2
    • 3
    • 4
    • 5

    测试代码1

    val textFile = sc.textFile("/app/gzengine/spark/word.txt")
    val counts = textFile.flatMap(line => line.split(" "))
                     .map(word => (word, 1))
                     .reduceByKey(_ + _)
    counts.saveAsTextFile("/xxx/spark/text.txt")
    
    • 1
    • 2
    • 3
    • 4
    • 5

    五:补充

    总的来说,开箱即用,非常简单。除了local本地模式,还有独立集群、独立集群高可用、on yarn 等部署方式,需要用到多台服务器,在配置文件中配置

    Spark环境搭建-Standalone-独立集群-原理
    在这里插入图片描述
    Spark环境搭建-Standalone-HA-独立集群(高可用)-原理
    在这里插入图片描述

  • 相关阅读:
    ansible command 模块
    VoLTE基础自学系列 | IMS网络概述
    Ubuntu安装搜狗输入法
    操作系统基本概念
    组合拳SSRF+redis未授权访问
    【CMU15-445数据库】bustub Project #0:Trie 树实现(C++ Primer)
    Word控件Spire.Doc 【页面背景】教程(9) ;C#/VB.NET:从 Word 文档中删除文本或图像水印
    前端 Javascript 编程中的闭包知识点有哪些?
    距离软考仅剩50天,论文怎么写?
    Jupyter介绍和安装使用
  • 原文地址:https://blog.csdn.net/weixin_43078114/article/details/126155207