介绍
欢迎来到神奇的嘉年华,在这里,非凡的魔术师准备展示 Hadoop HDFS 的奇妙之处,并运用 copy 技能。在这个迷人的场景中,魔术师将演示如何使用 Hadoop FS Shell 命令复制文件,为你的 Hadoop 技能之旅增添一抹魔法色彩。
使用 Hadoop FS Shell 复制文件
在这一步骤中,我们将学习如何使用 Hadoop FS Shell 的 cp 命令复制文件。
在终端中切换到
hadoop用户:su - hadoop在
/home/hadoop目录下创建一个名为source.txt的测试文件。执行以下命令:echo "This is a test file." > /home/hadoop/source.txt现在,我们将本地文件
source.txt复制到 HDFS 上的一个新目标文件destination.txt。使用以下命令:hdfs dfs -copyFromLocal /home/hadoop/source.txt /destination.txt验证文件是否已成功复制。你可以列出
/目录下的文件以确认。hdfs dfs -ls /
使用 Hadoop FS Shell 递归复制文件
在这一步骤中,我们将通过使用 Hadoop FS Shell 命令递归复制目录来提升文件复制技能。
在
/目录下创建一个名为source_dir的目录,并在/source_dir/下创建一个名为subdir的子目录。执行以下命令:hdfs dfs -mkdir /source_dir hdfs dfs -mkdir /source_dir/subdir在
subdir目录中放置一个名为file1.txt的测试文件。使用以下命令:echo "Contents of file1" > /home/hadoop/file1.txt hdfs dfs -put /home/hadoop/file1.txt /source_dir/subdir/将整个
source_dir目录递归复制到一个名为destination_dir的新目标目录。尝试以下命令:hdfs dfs -cp /source_dir/ /destination_dir
当然!命令 hdfs dfs -cp /source_dir /destination_dir 包含以下部分:
- **
hdfs dfs -cp**:这部分表示使用 Hadoop 分布式文件系统(HDFS)的cp命令,用于复制文件或目录。 - **
/source_dir/***:这表示源目录的路径。*通配符匹配该目录下的所有文件和子目录。 - **
/destination_dir**:这是目标目录的路径,你希望将文件复制到此处。
总结来说,此命令将 /source_dir 中的所有文件和子目录复制到 /destination_dir,同时保留文件的原始属性。
通过列出
destination_dir目录的内容来验证递归复制是否成功。hdfs dfs -ls -R /destination_dir
总结
在本实验中,我们深入探索了 Hadoop HDFS 的奇妙世界,重点学习了 hdfs dfs -copyFromLocal 和 hdfs dfs -copy 命令。通过创建引人入胜的场景并提供动手实践,本实验旨在增强你对 Hadoop 中文件复制操作的理解。请记住,熟能生巧,掌握这些技能将为你的 Hadoop 之旅赋能。



