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

这篇具有很好参考价值的文章主要介绍了大数据编程实验一:HDFS常用操作和Spark读取文件系统数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大数据编程实验一: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子目录及其子目录下的所有内容
  3. 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查看进程验证是否启动成功:

spark处理hdfs,大数据学习,大数据,spark,hdfs

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

hdfs dfs -mkdir -p /user/hadoop

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

vi /home/hadoop/test.txt

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

spark处理hdfs,大数据学习,大数据,spark,hdfs

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

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

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

hdfs dfs -ls /user/hadoop

spark处理hdfs,大数据学习,大数据,spark,hdfs

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

然后我们再通过如下命令把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

spark处理hdfs,大数据学习,大数据,spark,hdfs

我们再在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

spark处理hdfs,大数据学习,大数据,spark,hdfs

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

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

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

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

spark处理hdfs,大数据学习,大数据,spark,hdfs

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

我们首先启动pyspark:

cd /usr/local/spark/bin/
pyspark

spark处理hdfs,大数据学习,大数据,spark,hdfs

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

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

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

spark处理hdfs,大数据学习,大数据,spark,hdfs

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

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

spark处理hdfs,大数据学习,大数据,spark,hdfs

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

sudo vi st-app.py

spark处理hdfs,大数据学习,大数据,spark,hdfs

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

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

spark处理hdfs,大数据学习,大数据,spark,hdfs

五、最后我想说

到这里本次实验就结束了,我重新做了一遍加深了一下印象,也更加熟练的使用这些Linux命令了。

后面一个实验就是RDD编程,我马上就会更新,Hold on!文章来源地址https://www.toymoban.com/news/detail-846546.html

到了这里,关于大数据编程实验一:HDFS常用操作和Spark读取文件系统数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spark读取HDFS路径文件

    有些时候我们希望直接读取HDFS上的文件进行处理,那么我们可以使用 textFile 这个方法,这个方法可以将指定路径的文件将其读出,然后转化为Spark中的RDD数据类型。 textFile 是 Spark 中的一个函数,用于从文本文件中读取数据并创建一个 RDD。它可以用于加载文本数据,并将每行

    2024年02月05日
    浏览(54)
  • 大数据技术原理及应用课实验2 :熟悉常用的HDFS操作

    实验2  熟悉常用的HDFS操作 目录 实验2  熟悉常用的HDFS操作 一、实验目的 二、实验平台 三、实验步骤(每个步骤下均需有运行截图) (一)编程实现以下功能,并利用Hadoop提供的Shell命令完成相同任务: (1)向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,则

    2024年04月14日
    浏览(104)
  • 熟悉常用的HDFS操作(大数据技术原理与应用-第三章实验)

    首先启动Hadoop,命令如下: 在终端输入如下命令,查看 hdfs dfs 总共支持哪些操作: 上述命令执行后,会显示如下的结果: 如果显示 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable ,说明环境变量 JAVA_LIBRARY_PATH 并未定义,首

    2024年02月01日
    浏览(41)
  • Spark - 获取一定时间内的 Hdfs 全部文件并读取

    目录 一.引言 二.获取 Interval 内文件 1.获取 FileSystem 2.获取全部 File 3.读取 Hdfs File 有一个需求要求定时获取距离目前时间 Interval 范围之内的文件并读取,例如现在是 7:00,interval 为 30 min,则我们需要读取 6:30 - 7:00 的全部文件并读取。这里思路是通过 FileSystem 获取文件的 modo

    2024年02月06日
    浏览(40)
  • 实验2熟悉常用的HDFS操作

    (1)理解HDFS在Hadoop体系结构中的角色; (2)熟练使用HDFS操作常用的Shell命令; (3)熟悉HDFS操作常用的Java API。 (1)操作系统:Linux; (2)Hadoop版本:2.7.4 ; (3)JDK版本1.8; (4)Java IDE:eclipse  。 (一)编程实现以下功能,并利用Hadoop提供的Shell命令完成相同任务:

    2023年04月18日
    浏览(41)
  • 大数据实验 实验二:熟悉HDFS常用操作

    附件中有word版本的实验报告 理解HDFS在Hadoop体系结构中的角色。 熟练使用HDFS操作常用的Shell命令。 熟悉HDFS操作常用的Java API。 Oracle VM VirtualBox虚拟机 系统版本centos7 JDK1.8版本 Hadoop-3.1.3 Windows11 Java IDE:IDEA 1.向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,由用户

    2024年04月12日
    浏览(39)
  • 云计算技术 实验四 HDFS操作方法和基础编程

    参考资料为: 教材代码-林子雨编著《大数据基础编程、实验和案例教程(第2版)》教材所有章节代码_厦大数据库实验室博客 1 . 实验学时 4学时 2 . 实验目的 熟悉HDFS的基本shell命令 熟悉HDFS的web管理 掌握HDFS编程实践 3 . 实验内容 (一)参考实验指南的内容,完成相关的HDF

    2024年02月08日
    浏览(34)
  • 大数据技术基础实验四:HDFS实验——读写HDFS文件

    在前面的实验中我们进行了HDFS的部署,并设置了一键启动HDFS操作,本期实验我们将使用HDFS开发环境进行HDFS写、读的编写,以及程序的运行,了解HDFS读写文件的调用流程,理解HDFS读写文件的原理。 好啦废话不多说,我们开始今天的实验操作。 会在Linux环境下编写读写HDFS文

    2023年04月16日
    浏览(38)
  • 大数据技术原理与应用实验指南——HDFS JAVA API编程实践

    1. 实验目的 (1) 熟练使用HDFS操作常用的Shell命令。 (2) 熟悉HDFS操作常用的Java API。 2. 实验内容 (1) 编程实现指定功能,并利用Hadoop提供的Shell命令完成相同任务(文件的上传、下载、输出、删除、移动等操作)。 (2) 有余力编写一个Java程序,读取HDFS中的指定文件。

    2024年02月19日
    浏览(40)
  • Spark流式读取文件数据

    流式读取文件数据 from pyspark.sql import SparkSession ss = SparkSession.builder.getOrCreate() df_csv = ss.readStream.csv(‘hdfs://node1:8020/目录’) df_json = ss.readStream.json(‘hdfs://node1:8020/目录’) options2 ={ ‘host’:‘192.168.88.100’, ‘port’:9999 } options={ # 每个批次读取1个文件 ‘maxFilesPerTrigger’:1, ‘lat

    2024年01月21日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包