您现在的位置是:首页 >学无止境 >20230529_Hadoop_集群操作命令网站首页学无止境

20230529_Hadoop_集群操作命令

衡权定量 2024-08-08 00:01:02
简介20230529_Hadoop_集群操作命令

HDFS_集群操作命令:

一、集群启停命令

 # 启动Hadoop的HDFS进程
 start-dfs.sh
 # 关闭Hadoop的HDFS进程
 stop-dfs.sh
 # 单独关闭某一个进程
 hadoop-daemon.sh start[/stop] namenode[/datanode/secondarynamenode]

二、HDFS文件系统的基本信息

  1. 数据的路径表达方式:

    # Linux: file:///
    # HDFS: hdfs://namenode:port/
    

    如上路径:

    # linux: file:///usr/local/hello.txt
    # HDFS: hdfs://node1:8020/usr/local/hello.txt
    
  2. HDFS文件系统的操作命令:

    • 老版本:hadoop fs [generic options]

    • 新版本:hdfs dfs [generic options]

    • 创建文件夹:

      # hadoop fs -mkdir [-p] <path> ...
      # hdfs dfs -mkdir [-p] <path> ...
      # [-p]: 与linux中的一致, 需要时创建上层目录,如目录早已存在则不当作错误
      # path: 待创建目录
      
    • 查看指定目录下内容:

      # hadoop fs -ls [-h] [-R] [<path> ...]
      # hdfs dfs -ls [-h] [-R] [<path> ...]
      # path 指定目录路径
      # -h 人性化显示文件Size
      # 递归查看指定目录及其子目录
      
    • 上传文件到HDFS指定目录下

      # hadoop fs -put [-f] [-p] <localsrc> ... <dst>
      # hdfs dfs -put [-f] [-p] <localsrc> ... <dst>
      # -f 如果目标文件已存在覆盖目标文件
      # -p 保留访问和修改时间,所有权和权限
      # local linux本地文件系统地址
      # dst 目标文件系统(HDFS)
      
    • 查看HDFS文件内容

      # hadoop fs -cat <src> ...
      # hdfs dfs -cat <src> ...
      # cat 指定读取文件的全部内容,并显示在标准输出控制台
      # hadoop fs -cat /itcast/word.txt
      # 读大文件可以使用管道符配合more
      # hadoop fs -cat /itcast/word.txt | more
      # more : 翻页命令
      
    • 下载HDFS文件

      # hadoop fs -get [-f] [-p] <src> ... <loacldst>
      # hdfs dfs -get [-f] [-p] <src> ... <loacldst>
      # -f 如果目标文件已存在覆盖目标文件
      # -p 保留访问和修改时间,所有权和权限 
      
    • 复制/改名HDFS文件

      # hadoop fs -cp [-f] [-p] <src> ... <dst>
      # hdfs dfs -cp [-f] [-p] <src> ... <dst>
      # -f 如果目标文件已存在覆盖目标文件
      # 实例:hadoop fs -cp -f /test.txt /home/abc.txt
      
    • 追加数据到HDFS文件中

      HDFS只有追加和删除文件两种功能

      # hadoop fs -appendToFile <loacldst> ... <dst>
      # hdfs dfs -appendToFile <loacldst> ... <dst>
      # 将所有给定本地文件的内容追加到给定dst文件
      # dst如果文件不存在,将创建该文件
      # 如果<localSrc>为-,则输入为从标准输入中读取
      
    • HDFS数据移动操作

      # hadoop fs -mv <scr> ... <dst>
      # hdfs dfs mv <scr> ... <dst>
      # 移动到指定文件夹下面
      # 可以使用该命令移动数据,并且重命名文件名称
      
      
    • HDFS删除文件操作

      # hadoop fs -rm -r [-skipTrash] URI [URI ...]
      # hdfs dfs -rm -r [-skipTrash] URI [URI ...]
      # 删除指定路径的文件或者文件夹
      # -skipTrash 跳过回收站,之间删除
      # 回收站功能默认关闭,如果要开启需要在core-site.xml中配置
      <property>
      <name>fs.trash.interval</name>
      <value>1440</value>
      </property>
      """
      1440:表示回收站保存多久,保持七天
      """
      <property>
      <name>fs.trash.checkpoint.interval</name>
      <value>120</value>
      </property>
      """
      120:多久检查一次,两小时检查一次
      """
      # 不需要重启集群,在那个机器配置的,就在那个机器执行命令就生效
      # 回收站默认位置在:/user/用户名(hadoop)/.Trash
      
    • HDFS回收站操作

      # 清空回收站
      hdfs dfs -expunge
      hadoop fs -rmr .Trash # 递归删除(慎用)
      # 直接删除文件不放入回收站
      hdfs dfs -rm -skipTrash /tmp/test.txt
      # 查看hadoop回收站
      hadoop fs -ls /user/hadoop/.Trash/Current/user/hadoop
      # 将文件移除回收站
      hadoop fs -mv /user/hadoop/.Trash/Current/user/hadoop/abc.txt /user/hadoop
      # 查看移除文件是否成功
      hadoop fs -ls /user/hadoop
      
    • 命令官方指导文档

      https://hadoop.apache.org/docs/r3.3.4/hadoop-project-dist/hadoop-common/FileSystemShell.html

    • 使用web界面操作hadoop系统。

      http://node1:9870/dfshealth.html#tab-startup-progress
      

      web界面又用权限问题只保留读权限,并不能删除文件,一般不建议配置删除权限,多数操作是做不了的。如果要以特权用户在浏览器中进行操作,需要配置如下内容到core-site.xml并重启集群。

      <property>
      <name>hadoop.http.staticuser.user</name>
      <value>hadoop</value>
      </property>
      

三、补充-HDFS Shell命令权限不足的问题解决

  • 相关权限修改命令和Linux相同。

    # 修改所属用户和组
    hadoop fs -chown [-R] root:root /xxx.txt
    hdfs dfs -chown [-R] root:root /xxx.txt
    
    # 修改文件权限
    hadoop fs -chmod [-R] 777 /xxx.txt
    hdfs dfs -chmod [-R] 777 /xxx.txt
    
    
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。