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

简介: 这篇文章是关于大数据体系知识学习的,主要介绍了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的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
6月前
|
机器学习/深度学习 存储 算法
强化学习算法基准测试:6种算法在多智能体环境中的表现实测
本文系统研究了多智能体强化学习的算法性能与评估框架,选用井字棋和连珠四子作为基准环境,对比分析Q-learning、蒙特卡洛、Sarsa等表格方法在对抗场景中的表现。实验表明,表格方法在小规模状态空间(如井字棋)中可有效学习策略,但在大规模状态空间(如连珠四子)中因泛化能力不足而失效,揭示了向函数逼近技术演进的必要性。研究构建了标准化评估流程,明确了不同算法的适用边界,为理解强化学习的可扩展性问题提供了实证支持与理论参考。
350 0
强化学习算法基准测试:6种算法在多智能体环境中的表现实测
|
8月前
|
监控 安全 测试技术
【01】卓伊凡收到冒充税务机关的诈骗程序-决定在沙盒Sandbox环境中运行测试下-广大企业同胞们注意防诈骗
【01】卓伊凡收到冒充税务机关的诈骗程序-决定在沙盒Sandbox环境中运行测试下-广大企业同胞们注意防诈骗
233 14
【01】卓伊凡收到冒充税务机关的诈骗程序-决定在沙盒Sandbox环境中运行测试下-广大企业同胞们注意防诈骗
|
10月前
|
存储 分布式计算 Hadoop
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
527 79
|
11月前
|
存储 人工智能 编译器
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
755 11
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
11月前
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
1589 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
机器学习/深度学习 人工智能 算法
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
BALROG 是一款用于评估大型语言模型(LLMs)和视觉语言模型(VLMs)在复杂动态环境中推理能力的基准测试工具。它通过一系列挑战性的游戏环境,如 NetHack,测试模型的规划、空间推理和探索能力。BALROG 提供了一个开放且细粒度的评估框架,推动了自主代理研究的进展。
414 3
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
|
存储 分布式计算 大数据
Flume+Hadoop:打造你的大数据处理流水线
本文介绍了如何使用Apache Flume采集日志数据并上传至Hadoop分布式文件系统(HDFS)。Flume是一个高可用、可靠的分布式系统,适用于大规模日志数据的采集和传输。文章详细描述了Flume的安装、配置及启动过程,并通过具体示例展示了如何将本地日志数据实时传输到HDFS中。同时,还提供了验证步骤,确保数据成功上传。最后,补充说明了使用文件模式作为channel以避免数据丢失的方法。
734 4
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
1103 4
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
7月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1159 23