该内容仅在头歌实验环境下使用,不适用于本地,仅可作为参考。

 !!!头歌平台实验一定注意,做完一关一定要连续做下一关,不然配置过的内容会丢失,要从第一关开始重做......

  这关之前没看具体要求,测评没成功,后来才知道要按下面的编程要求做,再重新做了一遍才通过,大家不要像我一样粗心......

目录

  第1关:HDFS的基本操作


第1关:HDFS的基本操作

  首先为了不让做实验做半天还不知道具体要做什么,我先把这关的要求放在这里,只有做出以下操作才能通过测评,实验中前面的操作主要是为了让大家熟悉相关操作。

编程要求:
在右侧命令行中启动Hadoop,进行如下操作。

在HDFS中创建/usr/output/文件夹;
在本地创建hello.txt文件并添加内容:“HDFS的块比磁盘的块大,其目的是为了最小化寻址开销。”;
将hello.txt上传至HDFS的/usr/output/目录下;
删除HDFS的/user/hadoop目录;
将Hadoop上的文件hello.txt从HDFS复制到本地/usr/local目录。

  接下来我也先带大家熟悉操作

先在本地和hadoop中分别创建文件夹(头歌这里给的格式有误,建议按照这里来)

mkdir /develop
mkdir /develop/input
mkdir /develop/output
start-dfs.sh
hadoop fs -mkdir /usr
hadoop fs -mkdir /usr/input
hadoop fs -mkdir /usr/output

切换到input,创建文件添加数据:hello hadoop(关于如何编辑保存文件内容我的上一篇文章有讲过,不知道的可以参考上一篇)

cd /develop/input
touch helloworld.txt
vim helloworld.txt

hello hadoop

将该文件上传至hadoop,上传后可用cat命令查看文件内容

hadoop fs -put helloworld.txt /usr/output
hadoop fs -cat /usr/output/helloworld.txt

接下来对文件进行移动和删除操作,移动使用mv命令,删除则是rm,我们在操作前后可以通过ls命令列出目录里的文件,观察文件进行的相关操作是否成功

hadoop fs -ls /user/hadoop
hadoop fs -ls /
hadoop fs -ls /usr
hadoop fs -mv /usr/output/helloworld.txt /
hadoop fs -ls /
hadoop fs -rm /helloworld.txt
hadoop fs -ls /

(实验到这里还列出了部分常用操作及其命令,很有用,需要的可以自行查看学习)

接下来我们接着来完成开头提到的,实验题目要求部分,也就是实验主要部分

先在HDFS中创建/usr/output/文件夹

hadoop fs -mkdir /usr/output

接着创建并编辑hello.txt文件,在文件内输入题目要求内容:HDFS的块比磁盘的块大,其目的是为了最小化寻址开销。(内容要求必须完全一样才能通过测评,多个空格或者标点中英文格式不对都无法通过,这里建议直接复制粘贴下面的内容)

touch hello.txt
vim hello.txt

HDFS的块比磁盘的块大,其目的是为了最小化寻址开销。

接着是移动删除,先将hello.txt文件上传至HDFS的/usr/output/,删除HDFS的/user/hadoop,再
将Hadoop上的文件hello.txt从HDFS复制到本地/usr/local

hadoop fs -put hello.txt /usr/output
hadoop fs -ls /usr/output
hadoop fs -rm -r /user/hadoop
hadoop fs -get /usr/output/hello.txt /usr/local
ls /usr/local

测评出现“HDFS的块比磁盘的块大,其目的是为了最小化寻址开销。”则成功

第2关:HDFS-JAVA接口之读取文件

先在右侧命令行创建test.txt文件并编辑内容,最后上传至HDFS(这里只是为了熟悉操作,不影响测评内容)

start-dfs.sh
touch test.txt
vim test.txt

独坐池塘如虎踞,绿荫树下养精神。
春来我不先开口,哪个虫儿敢作声。

hadoop fs -put test.txt /user/tmp

使用如下代码在左侧代码文件的Begin和End之间插入来查看上传文件(这里测评实验会自动创建并编辑需要的文件,所以我们查看出来的结果是实验已经准备好的,内容为:怕什么真理无穷,进一寸有一寸的欢喜。而不是我们之前通过命令行上传的内容)

  URI uri = URI.create("hdfs://localhost:9000/user/tmp/test.txt");
    Configuration config = new Configuration();
    FileSystem fs = FileSystem.get(uri, config);
    InputStream in = null;
    try {
        in = fs.open(new Path(uri));
        IOUtils.copyBytes(in, System.out, 2048, false);
    } catch (Exception e) {
        IOUtils.closeStream(in);
    }
}

完成之后直接测评即可通过

这次实验前置了很多熟悉操作的内容,具体的实验要求都在后面,不仔细看容易忽略,这次头歌实验中还介绍了很多实用命令与操作,实验原理也很详细,想进一步了解相关内容的,请移步头歌查看ovo.

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐