大数据体系知识学习(一):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的热门话题分析
目录
相关文章
|
数据采集 搜索推荐 算法
Java 大视界 -- Java 大数据在智能教育学习社区用户互动分析与社区活跃度提升中的应用(274)
本文系统阐述 Java 大数据技术在智能教育学习社区中的深度应用,涵盖数据采集架构、核心分析算法、活跃度提升策略及前沿技术探索,为教育数字化转型提供完整技术解决方案。
|
数据采集 数据可视化 大数据
大数据体系知识学习(三):数据清洗_箱线图的概念以及代码实现
这篇文章介绍了如何使用Python中的matplotlib和numpy库来创建箱线图,以检测和处理数据集中的异常值。
591 1
大数据体系知识学习(三):数据清洗_箱线图的概念以及代码实现
|
存储 SQL 分布式计算
大数据学习
【10月更文挑战第15天】
460 1
|
SQL 分布式计算 NoSQL
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
558 4
|
运维 监控 数据可视化
大数据-171 Elasticsearch ES-Head 与 Kibana 配置 使用 测试
大数据-171 Elasticsearch ES-Head 与 Kibana 配置 使用 测试
589 1
|
分布式计算 大数据 Linux
大数据体系知识学习(二):WordCount案例实现及错误总结
这篇文章介绍了如何使用PySpark进行WordCount操作,包括环境配置、代码实现、运行结果和遇到的错误。作者在运行过程中遇到了Py4JJavaError和JAVA_HOME未设置的问题,并通过导入findspark初始化和设置环境变量解决了这些问题。文章还讨论了groupByKey和reduceByKey的区别。
409 1
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
1238 6
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
581 2
|
存储 分布式计算 Hadoop
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
815 79
|
存储 分布式计算 大数据
Flume+Hadoop:打造你的大数据处理流水线
本文介绍了如何使用Apache Flume采集日志数据并上传至Hadoop分布式文件系统(HDFS)。Flume是一个高可用、可靠的分布式系统,适用于大规模日志数据的采集和传输。文章详细描述了Flume的安装、配置及启动过程,并通过具体示例展示了如何将本地日志数据实时传输到HDFS中。同时,还提供了验证步骤,确保数据成功上传。最后,补充说明了使用文件模式作为channel以避免数据丢失的方法。
1056 4