大数据编程实验一: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查看进程验证是否启动成功:

在这里插入图片描述

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

hdfs dfs -mkdir -p /user/hadoop

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

vi /home/hadoop/test.txt

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

在这里插入图片描述

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

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

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

hdfs dfs -ls /user/hadoop

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

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

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

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

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

在这里插入图片描述

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

我们首先启动pyspark:

cd /usr/local/spark/bin/
pyspark

在这里插入图片描述

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

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

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

在这里插入图片描述

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

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

在这里插入图片描述

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

sudo vi st-app.py

在这里插入图片描述

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

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

在这里插入图片描述

五、最后我想说

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

后面一个实验就是RDD编程,我马上就会更新,Hold on!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-北天-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值