Hadoop之HDFS基本应用

1.  HDFS基本命令

    1.  查看帮助

        hadoop fs -help        

    2.  创建目录

        hadoop fs -mkdir /test        

    3.  查看文件列表

        hadoop fs -ls /test

        hadoop fs -ls -R /test  查看子目录

        hadoop fs -lsr /test  上面的命令简写        

    4.  上传文件到HDFS

        hadoop fs -put /root/install.log /test

    5.  复制文件到HDFS

        hadoop fs -copyFromLocal msg2.txt /test

        hadoop fs -moveFromLocal /tmp/1.xml /test  剪切复制到hdfs上,本地的文件会被删除

    6.  下载文件到本地

        hadoop fs -get /test/stop-dfs.cmd /tmp  第一个为HDFS上的文件,第二个为本地目录

    7.  复制文件到本地

        hadoop fs -copyToLocal /test/stop-dfs.cmd /tmp

    8.  查看文件内容

        只有文本才能正常看,其它文件显示乱码

        hadoop fs -cat /test/stop-dfs.cmd 

        hadoop fs -text /test/stop-dfs.cmd

        hadoop fs -tail /test/stop-dfs.cmd

    9.  删除HDFS文件

        hadoop fs -rm /test/stop-dfs.cmd

        hadoop fs -rm /test  删除空目录

        hadoop fs -rmr  删除目录,包含子目录 

    10.  将hdfs下的文件先合并,再下载

        hadoop fs -getmerge /test/msg*.txt /tmp/5.txt

    11.  hdfs内的文件复制

        hadoop fs -cp /test/msg1.txt /test/msg3.txt

    12.  hdfs内的文件移动

        hadoop fs -mv /test/msg1.txt /

    13.  统计hdfs的文件信息

        hadoop fs -count /test

                   1            4             488796 /test

        1  表示目录

        4  表示目录下的文件数

        488796  表示总字节数 

    14.  统计hdfs的文件详细信息

        hadoop fs -du /test

    15.  查看HDFS集群的信息

        hdfs dfsadmin -report

2.  远程操作hdfs

    hadoop fs -put /tmp/root hdfs://172.16.1.229:9000/test  上传本地的/tmp/root目录到远程的hdfs的/test目录下

3.  Java API操作hdfs

    略

4.  HDFS的高级特性

    1.  回收站

        默认回收站是关闭的

        1.  开启回收站

            在core-site.xml文件,添加以下内容           

      <property>
        <name>fs.trash.interval</name>
        <value>1440</value>
      </property>           

        2.  查看回收站

            hadoop fs -lsr /user/hadoop/.Trash/Current            

        3.  从回收站恢复数据文件

            hadoop fs -cp /user/hadoop/.Trash/Current/test/1.xml /test

        4.  清空回收站

            hadoop fs -expunge

    2.  快照

        1.  应用场景

            防止用户的误操作

            备份

            测试

            灾难恢复

        2.  操作

            1.  开启快照功能

                hdfs dfsadmin -allowSnapshot /test                                    

            2.  创建快照

                hdfs dfs -createSnapshot /test bk_input_20220706_01

            3.  删除快照

                                

            4.  对比快照

                hdfs snapshotDiff /test bk_input_20220706_01 bk_input_20220706_02     

                M .
                + ./2.xml

            5.  重命名快照

                hdfs dfs -renameSnapshot /test bk_input_20220706_02 bk_input_20220706_03 

            6.  查看哪些目录开启快照

                hdfs lsSnapshottableDir

            7.  查看某个目录下有几个快照

                hadoop fs -ls -r /test/.snapshot

                也可以通过web UI查看快照的使用情况                              

    3.  配额管理

        1.  名称配额

            1.  设置某个目录的名称配额为3

                hdfs dfsadmin -setQuota 3 /yangjianbo                

            2.  当上传的文件超出配额会有下面的报错

                The NameSpace quota (directories and files) of directory /yangjianbo is exceeded: quota=3 file count=4 

            3.  清除配额

                hdfs dfsadmin -clrQuota /yangjianbo               

        2.  空间配额

            1.  设置某个目录的空间配额

                hdfs dfsadmin -setSpaceQuota 1M /yangjianbo

            2.  当上传的文件超过1M以后会有下面的报错

                The DiskSpace quota of /yangjianbo is exceeded: quota = 52428800 B = 50 MB but diskspace consumed = 268462894 B = 256.03 MB

                对目录的配额不能小于数据块的大小

            3.  清除配额

                hdfs dfsadmin -clrSpaceQuota /yangjianbo                     

    4.  安全模式

        HDFS的一种保护机制

        1.  查看安全模式

 

            [hadoop@master hadoop]$ hdfs dfsadmin -safemode get
            Safe mode is OFF

 

        2.  开启安全模式            

            [hadoop@master hadoop]$ hdfs dfsadmin -safemode enter
            Safe mode is ON

        3.  开启安全模式后,HDFS进入只读状态

            mkdir: Cannot create directory /test/1.txt. Name node is in safe mode.

        4.  关闭安全模式            

            [hadoop@master hadoop]$ hdfs dfsadmin -safemode leave
            Safe mode is OFF                                       

    5.  权限管理

        与linux文件系统权限管理类似  

5.  HDFS联盟

    1.  联盟的作用

        让HDFS支持多个命名空间,并由不同的namenode维护

    2.  联盟的架构

    3.  联盟的部署

        1.  配置两台namenode

        2.  配置ViewFS的路由规则

6.  HDFS的底层通信方式RPC

    客户端通过RPC调用namenode                                 

4.  在Hadoop集群中运行程序

    1.  MapRedue示例程序

        hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar pi 10 10  

         

posted @ 2022-06-24 16:09  奋斗史  阅读(330)  评论(0)    收藏  举报