大数据体系知识学习(一):PySpark和Hadoop环境的搭建与测试

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 这篇文章是关于大数据体系知识学习的,主要介绍了Apache Spark的基本概念、特点、组件,以及如何安装配置Java、PySpark和Hadoop环境。文章还提供了详细的安装步骤和测试代码,帮助读者搭建和测试大数据环境。

1. 相关知识学习

1.1 Spark的基本介绍

Apache Spark是一个开源的大数据处理框架,使用内存计算方式加速大数据处理。Spark的主要优点包括高速批量处理、交互式查询、实时流处理以及机器学习等功能。**Spark由Scala语言实现,是一种面向对象、函数式编程语言,支持多种编程语言,如Scala、Java、Python和R等,可以运行在Hadoop集群上或者独立运行。**Spark的核心概念包括弹性分布式数据集(RDD)、DataFrame和Dataset等。RDD是Spark的核心数据结构之一,是一种不可变的分布式对象,可以并行计算和操作数据。DataFrame是一个类似于关系型数据库中的表的数据结构,支持多种数据格式,如JSON、CSV和Parquet等。Dataset是RDD和DataFrame的结合体,它可以提供类型安全、面向对象的API,同时还能享受到Spark SQL的优势。Spark还提供了一些扩展库,如Spark Streaming、Spark MLlib和Spark GraphX等,可以支持流处理、机器学习和图处理等不同领域的应用场景。

整体Spark的框架通信采用的模块:netty

1.2 Spark四大特点

  • 运行速度快

    方面一: Spark基于内存计算,采用DAG有向无环图,进行无环计算操作,中间计算的结果可以保存在内存中
    方面二: Spark基于线程运行的,线程的启动和销毁的速度要高于进程的效率的
    
  • 易用性好

    方面一: Spark提供了多种语言的客户端,允许多种语言来操作Spark,如Python、SQL、JAVA、Scala、R.....
    方面二: Spark提供了更加高阶的API,而且这些API在不同语言上,基本都是一样的,大大降低了程序员学习的难度
    
  • 通用型强

    Spark提供了多种工具库,用于满足各种计算的场景
    
    Spark Core: Spark的核心库 次重点 它是学习Spark的基础
                主要放置了Spark的核心的API,内存管理的API,包括维护RDD的数据结构
    Spark SQL: 通过SQL操作操作Spark计算框架 (最为重要的)
    Spark Streaming: Spark的流处理,主要是用于支持流式计算(实时计算)(目前不适用,主要后续使用Flink完成流式计算,效率比Streaming更好)
    Spark MLlib: Spark的机器学习库,主要包括主要算法库: 回归,聚类...(针对特定人群)
    Spark Graphx: Spark的图计算,比如行程规划
    
  • 随处运行

方面一: Spark程序可以运行在不同的资源调度平台上: YARN、Spark集群,云上的调度器(阿里、华为等都提供)
方面二: Spark程序可以和大数据生态圈中各种软件进行集成,让我们能够更加方便使用Spark和相关软件

2. 所有环境版本

  • java version =1.8.0_361
  • PySpark version = 3.1.2
  • Hadoop version = 3.3.0

3. JAVA jdk安装

windows
在这里插入图片描述
ubuntu

# 解压命令
tar -zxvf jdk-8u271-linux-x64.tar.gz
# 开始配置环境变变量,通过 vi /etc/profile 命令打开 profile 文件盘配置环境变量,打开之后按 i 进入 insert (插入)模式,在文件末尾添加上环境变量
export JAVA_HOME=/uer/loacal/jdk1.8.0_271
export CLASSPATH=.:${JAVA_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
# 退出后 source /etc/profile
source /etc/profile
# 测试是否成功
Java -version

4. PySpark安装

PySpark安装包括两种安装方式,第一种直接pip指定版本安装,第二种直接下载文件离线安装。
第一种:(无需添加环境变量)

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspark==3.1.2
pip install findspark

第二种:(需要添加环境变量)
linux平台:参考链接
Windows平台:下载文件
下载符合本机Hadoop和JDK版本的Spark安装包

下载完成后进行解压在D盘的根目录下,设置环境变量。
首先新建一个环境变量SPARK_HOME,变量名是安装的路径:

5. Hadoop安装

下载地址:点击
下载上述版本
放入文件夹,在环境变量指定Hadoop路径

在这里插入图片描述
在这里插入图片描述

6. 测试

打开Pycharm,输入以下代码并运行

import findspark
findspark.init()
from datetime import datetime, date
from pyspark.sql import SparkSession

spark = SparkSession.builder.getOrCreate()
rdd = spark.sparkContext.parallelize([
    (1, 2.5, 'string1', date(2022, 1, 1), datetime(2022, 1, 1, 12, 0)),
    (2, 3.5, 'string2', date(2022, 2, 1), datetime(2022, 1, 2, 12, 0)),
    (3, 4.5, 'string3', date(2022, 3, 1), datetime(2022, 1, 3, 12, 0))])
df = spark.createDataFrame(rdd, schema=['A', 'B', 'C', 'D', 'E'])
df.show()

在这里插入图片描述

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
1月前
|
数据采集 数据可视化 大数据
大数据体系知识学习(三):数据清洗_箱线图的概念以及代码实现
这篇文章介绍了如何使用Python中的matplotlib和numpy库来创建箱线图,以检测和处理数据集中的异常值。
44 1
大数据体系知识学习(三):数据清洗_箱线图的概念以及代码实现
|
20天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
71 2
|
21天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
59 1
|
30天前
|
存储 SQL 分布式计算
大数据学习
【10月更文挑战第15天】
34 1
|
1月前
|
分布式计算 大数据 Linux
大数据体系知识学习(二):WordCount案例实现及错误总结
这篇文章介绍了如何使用PySpark进行WordCount操作,包括环境配置、代码实现、运行结果和遇到的错误。作者在运行过程中遇到了Py4JJavaError和JAVA_HOME未设置的问题,并通过导入findspark初始化和设置环境变量解决了这些问题。文章还讨论了groupByKey和reduceByKey的区别。
29 1
|
11天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
43 3
|
1月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
64 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
246 7
Jmeter实现WebSocket协议的接口测试方法
|
2月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
255 3
快速上手|HTTP 接口功能自动化测试
|
2月前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
49 5
下一篇
无影云桌面