大数据编程实验一:HDFS常用操作和Spark读取文件系统数据

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 大数据编程实验,利用本地搭建的伪分布式集群进行HDFS常用操作和Spark读取文件系统数据的操作。

一、前言

这是我们大数据专业开设的第二门课程——大数据编程,使用的参考书是《Spark编程基础》,这门课跟大数据技术基础是分开学习的,但这门课是用的我们自己在电脑上搭建的虚拟环境进行实验的,不是在那个平台上,而且搭建的还是伪分布式,这门课主要偏向于有关大数据编程方面的,而且使用的编程语言是Python。

我上课的时候也没有怎么听,所以我再自己做一遍实验。

二、实验目的与要求

  1. 掌握在Linux虚拟机中安装Hadoop和Spark的方法
  2. 熟悉HDFS的基本使用方法
  3. 掌握使用Spark访问本地文件和HDFS文件的方法

三、实验内容

  1. 安装Hadoop和Spark
    进入Linux系统,完成Hadoop伪分布式模式的安装。完成Hadoop的安装以后,再安装Spark(Local模式)。
  2. HDFS常用操作使用Hadoop提供的Shell命令完成如下操作:
  • 启动Hadoop,在HDFS中创建用户目录“/user/hadoop”
  • 在Linux系统的本地文件系统的“/home/hadoop”目录下新建一个文本文件test.txt,并在该文件中随便输入一些内容,然后上传到HDFS的“/user/hadoop”目录下
  • 把HDFS中“/user/hadoop”目录下的test.txt文件,下载到Linux系统的本地文件系统中的“/home/hadoop/下载”目录下
  • 将HDFS中“/user/hadoop”目录下的test.txt文件的内容输出到终端中进行显示
  • 在HDFS中的“/user/hadoop”目录下,创建子目录input,把HDFS中“/user/hadoop”目录下的test.txt文件,复制到“/user/hadoop/input”目录下
  • 删除HDFS中“/user/hadoop”目录下的test.txt文件,删除HDFS中“/user/hadoop”目录下的input子目录及其子目录下的所有内容
  1. Spark读取文件系统的数据
  • 在pyspark中读取Linux系统本地文件“/home/hadoop/test.txt”,然后统计出文件的行数
  • 在pyspark中读取HDFS系统文件“/user/hadoop/test.txt”(如果该文件不存在,请先创建)然后,统计出文件的行数
  • 编写独立应用程序,读取HDFS系统文件“/user/hadoop/test.txt”(如果该文件不存在,请先创建),然后,统计出文件的行数;通过 spark-submit 提交到 Spark 中运行程序

四、实验步骤

这里我们已经提前在课上安装好Hadoop和Spark,所以就不演示了,如果不会的话可以上网查阅一下有很多教程或者等我后面有空写一遍博客也许,我得先把实验做完才行。

我们直接进行后面两个步骤。

1、HDFS常用操作

首先启动Hadoop集群,我们输入如下命令进入到hadoop的sbin目录下面,然后执行启动指令:

cd /usr/local/servers/hadoop/sbin/
start-dfs.sh

然后使用jps查看进程验证是否启动成功:

image-20221030152128438.png

然后我们再进入hadoop目录下的bin目录中,输入如下命令创建用户目录“/user/hadoop”:

hdfs dfs -mkdir-p /user/hadoop

然后我们在master主机内的“/home/hadoop”目录下新建一个文本文件test.txt:

vi /home/hadoop/test.txt

然后再文件中随便输入一些内容:

image-20221030153202522.png

然后我们我们重新进入hadoop的bin目录中并将这个文件上传到HDFS的“/user/hadoop”目录下:

hdfs dfs -put /home/hadoop/test.txt /user/hadoop

查看一些我们是否成功上传到HDFS中:

hdfs dfs -ls /user/hadoop

image-20221030153529020.png

可以看出我们上传成功了。

然后我们再通过如下命令把HDFS中“/user/hadoop”目录下的test.txt文件,下载到Linux系统的本地文件系统中的“/home/hadoop/下载”目录下:

hdfs dfs -get user/hadoop/test.txt /home/hadoop/

然后我们使用如下命令将HDFS中“/user/hadoop”目录下的test.txt文件的内容输出到终端中进行显示:

hdfs dfs -cat /user/hadoop/test.txt

image-20221030154113240.png

我们再在HDFS中的“/user/hadoop”目录下,创建子目录input:

hdfs dfs -mkdir /user/hadoop/input

并把HDFS中“/user/hadoop”目录下的test.txt文件,复制到“/user/hadoop/input”目录下:

hdfs dfs -cp /user/hadoop/test.txt /user/hadoop/input/

并查看一下是否复制成功:

hdfs dfs -ls /user/hadoop/input

image-20221030154655106.png

最后我们删除HDFS中“/user/hadoop”目录下的test.txt文件:

hdfs dfs -rm-r /user/hadoop/test.txt

并删除HDFS中“/user/hadoop”目录下的input子目录及其子目录下的所有内容:

hdfs dfs -rm-r /user/hadoop/input

image-20221030155137343.png

2、Spark读取文件系统的数据

我们首先启动pyspark:

cd /usr/local/spark/bin/
pyspark

image-20221030155539683.png

启动pyspark之后我们就可以直接在这里面进行编程。

我们在pyspark中读取Linux系统本地文件“/home/hadoop/test.txt”,然后统计出文件的行数:

lines=sc.textFile("file:/home/hadoop/test.txt")
lines.count()

image-20221030160200533.png

然后我们在pyspark中读取HDFS系统文件“/user/hadoop/test.txt”(如果该文件不存在,请先创建),然后,统计出文件的行数:

lines=sc.textFile("/user/hadoop/test.txt")
lines.count()

image-20221030160601017.png

最后我们先在/home/hadoop中创建一个py文件并编写独立应用程序,读取HDFS系统文件“/user/hadoop/test.txt”(如果该文件不存在,请先创建),然后统计出文件的行数:

vi st-app.py

image-20221030161816339.png

最后通过 spark-submit 提交到 Spark 中运行程序:

/usr/local/spark/bin/spark-submit --master local[4] st-app.py 2>&1 | grep"The HDFS"

image-20221030161907299.png

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
22天前
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
46 0
|
22天前
|
消息中间件 分布式计算 NoSQL
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
31 0
|
22天前
|
消息中间件 存储 分布式计算
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
58 0
|
1天前
|
SQL 机器学习/深度学习 分布式计算
Spark快速上手:揭秘大数据处理的高效秘密,让你轻松应对海量数据
【10月更文挑战第25天】本文全面介绍了大数据处理框架 Spark,涵盖其基本概念、安装配置、编程模型及实际应用。Spark 是一个高效的分布式计算平台,支持批处理、实时流处理、SQL 查询和机器学习等任务。通过详细的技术综述和示例代码,帮助读者快速掌握 Spark 的核心技能。
13 6
|
1天前
|
分布式计算 大数据 OLAP
AnalyticDB与大数据生态集成:Spark & Flink
【10月更文挑战第25天】在大数据时代,实时数据处理和分析变得越来越重要。AnalyticDB(ADB)是阿里云推出的一款完全托管的实时数据仓库服务,支持PB级数据的实时分析。为了充分发挥AnalyticDB的潜力,将其与大数据处理工具如Apache Spark和Apache Flink集成是非常必要的。本文将从我个人的角度出发,分享如何将AnalyticDB与Spark和Flink集成,构建端到端的大数据处理流水线,实现数据的实时分析和处理。
11 1
|
11天前
|
分布式计算 大数据 Apache
利用.NET进行大数据处理:Apache Spark与.NET for Apache Spark
【10月更文挑战第15天】随着大数据成为企业决策和技术创新的关键驱动力,Apache Spark作为高效的大数据处理引擎,广受青睐。然而,.NET开发者面临使用Spark的门槛。本文介绍.NET for Apache Spark,展示如何通过C#和F#等.NET语言,结合Spark的强大功能进行大数据处理,简化开发流程并提升效率。示例代码演示了读取CSV文件及统计分析的基本操作,突显了.NET for Apache Spark的易用性和强大功能。
25 1
|
19天前
|
消息中间件 分布式计算 Kafka
大数据平台的毕业设计02:Spark与实时计算
大数据平台的毕业设计02:Spark与实时计算
|
22天前
|
存储 分布式计算 算法
大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
33 0
|
22天前
|
消息中间件 分布式计算 Kafka
大数据-102 Spark Streaming Kafka ReceiveApproach DirectApproach 附带Producer、DStream代码案例
大数据-102 Spark Streaming Kafka ReceiveApproach DirectApproach 附带Producer、DStream代码案例
46 0
|
22天前
|
SQL 分布式计算 大数据
大数据-101 Spark Streaming DStream转换 窗口操作状态 跟踪操作 附带多个案例(一)
大数据-101 Spark Streaming DStream转换 窗口操作状态 跟踪操作 附带多个案例(一)
27 0