【Hadoop】【hdfs】【大数据技术基础】实验二 熟悉常用的HDFS操作

实验二: 熟悉常用的HDFS操作

一、实验题目

熟悉常用的HDFS操作。

二、实验目的

(1) 理解HDFS在Hadoop体系结构中的角色;

(2) 熟练使用HDFS操作常用的Shell命令;

(3) 熟悉HDFS操作常用的Java API。

三、平台

操作系统:Linux

Hadoop版本:1.2.1或以上版本

JDK版本:1.6或以上版本

四、内容和要求

利用Hadoop提供的Shell命令完成下列任务:

首先,启动hadoop:

cd /usr/local/hadoop

./sbin/start-dfs.sh

(1)向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,由用户指定是追加到原有文件末尾还是覆盖原有的文件;

假如指定了local.txt文件。而你的本地文件里不存在,则可以使用创建本地文件命令:

touch local.txt

然后将本地文件 local.txt 的内容追加到 HDFS 中的文件 text.txt:

./bin/hdfs dfs -appendToFile local.txt text.txt

  • ./bin/hdfs: 这是执行 HDFS 命令的路径。
  • dfs: 表示操作 HDFS。
  • -appendToFile: 这个选项表示要将一个文件的内容追加到另一个文件中。
  • local.txt: 是本地文件,包含你想要追加的内容。
  • text.txt: 是目标文件,即你希望将 local.txt 的内容追加到这个文件中。

如果 text.txt 不存在,该命令将会报错,因为 -appendToFile 只能用于已经存在的文件。

本文使用myLocalFile.txt文件。

把本地文件系统的"/home/hadoop/myLocalFile.txt"上传到HDFS中的当前用户目录的input目录下,也就是上传到HDFS的"/user/local/hadoop/input/"目录下。

向HDFS中上传任意文本文件:

hdfs dfs -put /home/hadoop/myLocalFile.txt input/

命令使用示例:

hdfs dfs -appendToFile local.txt text.txt:追加到原文件末尾,追加本地文件 local.txt 的内容到HDFS上已存在的文件 text.txt。

覆盖原来文件,第一种命令形式: hdfs dfs -copyFromLocal -f local.txt text.txt。本地文件 local.txt的内容覆盖到HDFS上已存在的文件text.txt

覆盖原来文件,第二种命令形式: hdfs dfs -cp -f file:///home/hadoop/local.txt text.txt。

1.追加到原文件末尾:

hdfs dfs -appendToFile /home/hadoop/myLocalFile.txt input/myLocalFile.txt

2.覆盖原来文件:

hdfs dfs -copyFromLocal -f /home/hadoop/myLocalFile.txt input/myLocalFile.txt

1和2你可以根据实际情况选择追加还是覆盖。

【说明】:这里是将本地的 myLocalFile.txt 文件复制到 HDFS 的 input 目录下,并且如果 input 目录中已经存在同名的 myLocalFile.txt 文件,将会被覆盖。

(2)从HDFS中下载指定文件,如果本地文件与要下载的文件名称相同,则自动对下载的文件重命名;

if hdfs dfs -test -e file:///home/hadoop/myLocalFile.txt; then

hdfs dfs -copyToLocal input/myLocalFile.txt ./text2.txt

else

hdfs dfs -copyToLocal input/myLocalFile.txt ./myLocalFile.txt

fi

(3)将HDFS中指定文件的内容输出到终端中;

hdfs dfs -cat input/myLocalFile.txt

(4)显示HDFS中指定的文件的读写权限、大小、创建时间、路径等信息;

hdfs dfs -ls -h input/myLocalFile.txt

(5)给定HDFS中某一个目录,输出该目录下的所有文件的读写权限、大小、创建时间、路径等信息,如果该文件是目录,则递归输出该目录下所有文件相关信息;

hdfs dfs -ls -R -h /user/hadoop

(6)提供一个HDFS内的文件的路径,对该文件进行创建和删除操作。如果文件所在目录不存在,则自动创建目录;

if $(hdfs dfs -test -d dir1/dir2);

then $(hdfs dfs -touchz dir1/dir2/filename);

else $(hdfs dfs -mkdir -p dir1/dir2 && hdfs dfs -touchz dir1/dir2/filename);

fi

hdfs dfs -rm dir1/dir2/filename #删除文件

(7)提供一个HDFS的目录的路径,对该目录进行创建和删除操作。创建目录时,如果目录文件所在目录不存在则自动创建相应目录;删除目录时,由用户指定当该目录不为空时是否还删除该目录;

创建目录的命令如下:

hdfs dfs -mkdir -p dir1/dir2

删除目录的命令如下:

hdfs dfs -rmdir dir1/dir2

上述删除命令执行以后,如果目录非空,则会提示 not empty,删除操作不会执行。如果要

强制删除目录,可以使用如下命令:

hdfs dfs -rm -R dir1/dir2

(8)向HDFS中指定的文件追加内容,由用户指定内容追加到原有文件的开头或结尾;

追加到原文件末尾:

hdfs dfs -appendToFile /home/hadoop/myLocalFile.txt input/myLocalFile.txt

追加到原文件的开头:

hdfs dfs -get input/myLocalFile.txt

cat myLocalFile.txt >> /home/hadoop/myLocalFile.txt

hdfs dfs -copyFromLocal -f /home/hadoop/myLocalFile.txt inpu/myLocalFile.txt

【说明】:在 HDFS 中不存在与这种操作对应的命令,因此,无法使用一条

命令来完成。可以先移动到本地进行操作,再进行上传覆盖。

【说明】:其中cat myLocalFile.txt >> /home/hadoop/myLocalFile.txt 这个命令尝试将myLocalFile.txt文件的内容追加到/home/hadoop/myLocalFile.txt文件的末尾。hdfs dfs -copyFromLocal -f命令将本地文件系统中的/home/hadoop/myLocalFile.txt文件强制复制到HDFS的input/myLocalFile.txt路径

(9)删除HDFS中指定的文件;

hdfs dfs -rm input/myLocalFile.txt

(10)删除HDFS中指定的目录,由用户指定目录中如果存在文件时是否删除目录;

删除目录(如果目录非空则会提示not empty,不执行删除):

hdfs dfs -rmdir dir1/dir2

强制删除目录:

hdfs dfs -rm -R dir1/dir2

(11)在HDFS中,将文件从源路径移动到目的路径。

hdfs dfs -mv text.txt text2.txt

相关推荐
Mephisto.java35 分钟前
【大数据学习 | HBASE】hbase的读数据流程与hbase读取数据
大数据·学习·hbase
SafePloy安策4 小时前
ES信息防泄漏:策略与实践
大数据·elasticsearch·开源
学术搬运工4 小时前
【珠海科技学院主办,暨南大学协办 | IEEE出版 | EI检索稳定 】2024年健康大数据与智能医疗国际会议(ICHIH 2024)
大数据·图像处理·人工智能·科技·机器学习·自然语言处理
Matrix705 小时前
HBase理论_背景特点及数据单元及与Hive对比
大数据·数据库·hbase
B站计算机毕业设计超人6 小时前
计算机毕业设计Python+大模型农产品价格预测 ARIMA自回归模型 农产品可视化 农产品爬虫 机器学习 深度学习 大数据毕业设计 Django Flask
大数据·爬虫·python·深度学习·机器学习·课程设计·数据可视化
Carl_奕然7 小时前
【大数据算法】MapReduce算法概述之:MapReduce基础模型
大数据·算法·mapreduce
Elastic 中国社区官方博客8 小时前
Elasticsearch 8.16:适用于生产的混合对话搜索和创新的向量数据量化,其性能优于乘积量化 (PQ)
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
飞翔的佩奇8 小时前
ElasticSearch:使用dsl语句同时查询出最近2小时、最近1天、最近7天、最近30天的数量
大数据·elasticsearch·搜索引擎·dsl
2301_769006788 小时前
19名专家被通报批评!国家科技重大专项评审违规!
大数据·人工智能·科技·sci·期刊·ssci
Yz98769 小时前
Kafka面试题
大数据·分布式·zookeeper·kafka·big data