大数据体系知识学习(一):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的热门话题分析
目录
相关文章
|
9月前
|
数据采集 搜索推荐 Java
Java 大视界 -- Java 大数据在智能教育虚拟学习环境构建与用户体验优化中的应用(221)
本文探讨 Java 大数据在智能教育虚拟学习环境中的应用,涵盖多源数据采集、个性化推荐、实时互动优化等核心技术,结合实际案例分析其在提升学习体验与教学质量中的成效,并展望未来发展方向与技术挑战。
|
安全 关系型数据库 测试技术
学习Python Web开发的安全测试需要具备哪些知识?
学习Python Web开发的安全测试需要具备哪些知识?
396 61
|
8月前
|
人工智能 边缘计算 搜索推荐
AI产品测试学习路径全解析:从业务场景到代码实践
本文深入解析AI测试的核心技能与学习路径,涵盖业务理解、模型指标计算与性能测试三大阶段,助力掌握分类、推荐系统、计算机视觉等多场景测试方法,提升AI产品质量保障能力。
|
存储 分布式计算 Hadoop
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
715 79
|
9月前
|
传感器 分布式计算 大数据
“用大数据盯着天看地”——聊聊环境监测的精准化升级
“用大数据盯着天看地”——聊聊环境监测的精准化升级
210 0
|
10月前
|
传感器 机器学习/深度学习 算法
Java 大视界 -- Java 大数据在智能农业温室环境调控与作物生长模型构建中的应用(189)
本文探讨了Java大数据在智能农业温室环境调控与作物生长模型构建中的关键应用。通过高效采集、传输与处理温室环境数据,结合机器学习算法,实现温度、湿度、光照等参数的智能调控,提升作物产量与品质。同时,融合多源数据构建精准作物生长模型,助力农业智能化、精细化发展,推动农业现代化进程。
|
存储 分布式计算 大数据
Flume+Hadoop:打造你的大数据处理流水线
本文介绍了如何使用Apache Flume采集日志数据并上传至Hadoop分布式文件系统(HDFS)。Flume是一个高可用、可靠的分布式系统,适用于大规模日志数据的采集和传输。文章详细描述了Flume的安装、配置及启动过程,并通过具体示例展示了如何将本地日志数据实时传输到HDFS中。同时,还提供了验证步骤,确保数据成功上传。最后,补充说明了使用文件模式作为channel以避免数据丢失的方法。
907 4
|
存储 大数据 数据处理
大数据环境下的性能优化策略
大数据环境下的性能优化策略
593 2
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
726 2