第三章 熟悉常用的HDFS操作

本文详细介绍了如何使用Hadoop提供的Shell命令来管理HDFS中的文件和目录,包括创建、上传、下载、显示文件内容及权限信息等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Hadoop提供的Shell命令完成相同任务:

         1.在本地Linux文件系统的“/home/hadoop/”目录下创建一个文件txt,里面可以随意输入一些单词.

  1. mkdir hadoop
  2. 在本地查看文件位置(ls)
    cd hadoop
  3. 在本地显示文件内容
    touch test.txt
    gedit test.txt
  4. 使用命令把本地文件系统中的“txt”上传到HDFS中的当前用户目录的input目录下。
    ./sbin/start-dfs.sh
        ./bin/hdfs dfs -mkdir -p /user/hadoop
        ./bin/hdfs dfs -mkdir input
        ./bin/hdfs dfs -put ./test.txt input
  5. 查看hdfs中的文件(-ls)
    ./bin/hdfs dfs -ls input
  6. 显示hdfs中该的文件内容
    ./bin/hdfs dfs -ls /input
    ./bin/hdfs dfs -cat input/test.txt
  7. 删除本地的txt文件并查看目录
    cd hadoop
    rm -r test.txt
    ls -al
  8. 从hdfs中将txt下载地本地原来的位置。
    ./bin/hdfs dfs -get /input/test.txt ~/hadoop
  9. 从hdfs中删除txt并查看目录
    ./bin/hdfs dfs -rm -ls input/test.txt

    二、

    1. 向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,由用户指定是追加到原有文件末尾还是覆盖原有的文件;
      hadoop fs -put /home/hadoop/test.txt /usr/local/hadoop
      hadoop fs -test -e /usr/local/hadoop/test.txt
    2. 从HDFS中下载指定文件,如果本地文件与要下载的文件名称相同,则自动对下载的文件重命名;
      if $(hadoop fs -test -e /home/hadoop/test.txt); <br>then $(hadoop fs -copyToLocal /usr/local/hadoop/test.txt /home/hadoop/test.txt);<br>else $(hadoop fs -copyToLocal /usr/local/hadoop/test.txt /home/hadoop/test2.txt); fi
    3. 将HDFS中指定文件的内容输出到终端中;
      hadoop fs -cat /usr/local/hadoop/test.txt
    4. 显示HDFS中指定的文件的读写权限、大小、创建时间、路径等信息;
      hadoop fs -ls -h /usr/local/hadoop/test.txt
    5. 给定HDFS中某一个目录,输出该目录下的所有文件的读写权限、大小、创建时间、路径等信息,如果该文件是目录,则递归输出该目录下所有文件相关信息;
      hadoop fs -ls -R -h /usr/local/hadoop
    6. 提供一个HDFS内的文件的路径,对该文件进行创建和删除操作。如果文件所在目录不存在,则自动创建目录;
      if $(hadoop fs -test -d /usr/local/hadoop/test); then $(hadoop fs -touchz /usr/local/hadoop/test/test1.txt); else $(hadoop fs -mkdir -p /usr/local/hadoop/test && hadoop fs -touchz /usr/local/hadoop/test/test1.txt); fi
    7. 提供一个HDFS的目录的路径,对该目录进行创建和删除操作。创建目录时,如果目录文件所在目录不存在则自动创建相应目录;删除目录时,由用户指定当该目录不为空时是否还删除该目录;
      hadoop fs -rmr /usr/local/hadoop/test
    8. 向HDFS中指定的文件追加内容,由用户指定内容追加到原有文件的开头或结尾;
      hadoop fs -appendToFile local.txt test.txt
    9. 删除HDFS中指定的文件;
      hadoop fs -rm /usr/local/hadoop/test.txt
    10. 删除HDFS中指定的目录,由用户指定目录中如果存在文件时是否删除目录;
      hadoop fs -rmr /usr/local/hadoop
    11. 在HDFS中,将文件从源路径移动到目的路径。
      hadoop fs -mv /usr/local/hadoop/test.txt /usr/local/hadoop/hadoop_tmp/test.txt

转载于:https://www.cnblogs.com/darkhate/p/8964158.html

<think>好的,我现在需要处理用户关于常用Linux操作和Hadoop操作的实验报告或学习资料的请求。首先,我要回顾用户之前的引用内容,确保回答符合他们的需求。用户提到了引用[1]和[2],其中包含Hadoop目录创建和find、tar命令的使用。用户现在明确需要实验报告或学习资料,所以我的回答应该结构清晰,分步骤讲解,并附上相关示例。 首先,我应该整理常用的Linux命令,分为文件操作、权限管理、进程管理和网络工具。每个部分需要列出常用命令及其示例,比如ls、cd、grep等,结合用户提到的find和tar命令,确保覆盖用户提到的内容。 接下来是Hadoop操作部分,需要包括HDFS基本命令,如hadoop fs -mkdir、-put、-ls等,以及启动Hadoop集群的步骤。用户之前提到创建用户目录,这部分需要详细说明,比如使用hadoop用户登录并创建目录。此外,MapReduce示例可以帮助用户理解实际操作,需要提供一个简单的wordcount例子。 实验报告结构部分,我应该建议用户如何组织实验报告,包括实验目的、环境、步骤、结果分析等,这样他们可以参考这个结构来撰写自己的报告。同时,学习资料推荐需要权威且免费,比如官方文档、在线教程和书籍,确保用户能进一步学习。 最后,生成相关问题时要围绕用户的需求,可能涉及Linux与Hadoop的关系、HDFS命令、性能优化等。需要确保问题有针对性,帮助用户深入理解。 在回答过程中,要注意使用正确的LaTeX格式,所有行内数学表达式用$...$,独立公式用$$...$$,但当前内容可能较少涉及数学公式,所以主要关注代码块和引用标识。同时,引用用户提供的引用[^1]和[^2],比如在创建Hadoop用户目录和tar命令时添加注释。 需要检查是否有遗漏的常用命令或Hadoop操作,确保覆盖用户的需求。此外,语言要口语化,避免使用专业术语过多,保持自然流畅。最后,确保所有代码示例正确,比如Hadoop命令和Shell脚本,避免语法错误。</think>### 常用 Linux 操作与 Hadoop 操作实验报告框架 #### 一、实验目标 1. 掌握 Linux 基础命令(文件管理、权限设置、进程监控等) 2. 熟悉 Hadoop 集群的启动与 HDFS 基本操作 3. 完成简单大数据处理任务验证环境配置 --- #### 二、Linux 常用操作(含示例) **1. 文件操作** ```bash # 查找配置文件(引用用户提供的示例) find ~ -name .bashrc # 在用户目录查找.bashrc文件[^2] # 压缩/解压目录(引用示例扩展) mkdir test && tar -zcvf test.tar.gz test # 创建并压缩 tar -zxvf test.tar.gz -C /tmp # 解压到指定目录[^2] ``` **2. 权限管理** ```bash chmod 755 script.sh # 设置可执行权限 sudo useradd hadoop # 创建Hadoop专用用户[^1] ``` **3. 进程监控** ```bash top -u hadoop # 查看用户进程 ps -ef | grep java # 筛选Java进程 ``` --- #### 三、Hadoop 基础操作 **1. 环境启动(引用用户提供的路径)** ```bash # 切换Hadoop用户后执行 /usr/local/hadoop/sbin/start-dfs.sh # 启动HDFS[^1] hadoop fs -mkdir /user/hadoop # 创建用户目录[^1] ``` **2. HDFS 文件操作** ```bash hadoop fs -put localfile.txt /user/hadoop # 上传文件 hadoop fs -cat /user/hadoop/result.txt # 查看文件内容 ``` **3. MapReduce 示例** ```python # WordCount示例代码(Python版) from hadoop.mapreduce import Mapper, Reducer class WordMapper(Mapper): def map(self, key, value): for word in value.split(): yield (word, 1) class SumReducer(Reducer): def reduce(self, key, values): yield (key, sum(values)) ``` --- #### 四、实验报告核心结构建议 1. **实验环境** - Linux 发行版:Ubuntu 22.04 - Hadoop 版本:3.3.4 - Java 版本:OpenJDK 11 2. **实验结果验证** ```bash hadoop jar hadoop-mapreduce-examples.jar pi 10 100 # 计算圆周率验证集群 ``` 3. **问题分析** - 权限问题:`Permission denied` 错误解决方案 - 端口冲突:50070/webUI 无法访问排查 --- #### 五、学习资料推荐 1. **权威文档** - [Hadoop 官方文档](https://hadoop.apache.org/docs/stable/) - [Linux命令速查表](https://linux.die.net/man/) 2. **实验教程** - 《Hadoop权威指南》第四章"YARN" - 实验楼《HDFS分布式文件系统实战》 3. **在线课程** - Coursera: Hadoop Platform and Application Framework - 阿里云大学: 大数据开发入门 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值