1、讲解Hadoop三种操作方式

        1)、通过Web Console: 50070、50090

        2)、命令行

(1)操作命令  hdfs dfs *****
                -mkdir  创建目录
                    举例:hdfs dfs -mkdir /aaa
                          hdfs dfs -mkdir -p /bbb/ccc
                          -p 表示如果父目录不存在 先创建父 目录  
                -ls      查看某个目录
                -ls -R   查看某个目录,包含子目录 以及子目录下的文件
                         简写: -lsr
                -put             上传数据  hdfs dfs -put data.txt /input
                -copyFromLocal   上传数据  hdfs dfs -copyFromLocal data.txt /input
                本质上都是cp  复制
                -moveFromLocal   上传数据(相当于 ctrl+x 剪切)
                -copyToLocal     下载数据
                -get             下载数据
                -rm    删除文件
                -rmr   删除目录(包含子目录)
                hdfs dfs -rmr /tools
                -getmerge: 把某个目录下的文件先合并,再下载(目的是为了提高效率)
                            [root@niit110 ~]# vi student01.txt
                            [root@niit110 ~]# vi student02.txt
                            [root@niit110 ~]# hdfs dfs -mkdir /students
                            [root@niit110 ~]# hdfs dfs -put student0*.txt /students
                            [root@niit110 ~]# hdfs dfs -ls /students
                            [root@niit110 ~]# hdfs dfs -getmerge /students ~/allstudent.txt          
                -cp:  hdfs dfs -cp /input/data.txt /input/data2.txt
                -mv:  hdfs dfs -cp /input/data.txt /students
                -count: hdfs dfs -count /students
                         hdfs dfs -count /students
                           1            2                 29       /students            
                          目录个数,  文件个数,   文件总计大小      输入路径
                -du 每个文件的大小
                    [root@niit110 ~]# hdfs dfs -du /students
                    19  /students/student01.txt
                    10  /students/student02.txt
                -text、-cat  查看文件的内容
                       hdfs dfs -cat /students/student01.txt
                balancer: 平衡操作

        (2)管理命令  hdfs dfsadmin *****

-report: 输出HDFS的报告(相当于Web Console Summary)
                -safemode: 安全模式
                    [root@niit110 ~]# hdfs dfsadmin -safemode
                    Usage: hdfs dfsadmin [-safemode enter | leave | get | wait]
                    [root@niit110 ~]# hdfs dfsadmin -safemode get
                    Safe mode is OFF
                    [root@niit110 ~]# hdfs dfsadmin -safemode enter
                    Safe mode is ON
                    [root@niit110 ~]# hdfs dfs -mkdir /aaaa
                    mkdir: Cannot create directory /aaaa. Name node is in safe mode.
                    [root@niit110 ~]# hdfs dfsadmin -safemode leave
                    Safe mode is OFF

    2、HDFS的高级特性

        (1)回收站    作用:防止误操作导致数据丢失

            对比一下window中的回收站

            HDFS的回收站:默认禁用

   

参数: core-site.xml
            单位:分钟
                <property>
                   <name>fs.trash.interval</name>
                   <value>1440</value>
                </property>
            a、没有回收站的情况
                日志:
                19/03/12 00:41:10 INFO fs.TrashPolicyDefault:                         Namenode trash configuration: Deletion interval                 = 0 minutes, Emptier interval = 0 minutes.
                Deleted /students/emp.csv
            b、有回收站的情况
                rmr: DEPRECATED: Please use 'rm -r' instead.
                19/03/11 22:46:07 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 1440 minutes,                    Emptier interval = 0 minutes.
                Moved: 'hdfs://niit110:9000/tools' to trash at: hdfs://niit110:9000/user/root/.Trash/Current

c、HDFS回收站的本质:ctrl +x 移动到一个隐藏目录

查看回收站
                   hdfs dfs -lsr /user/root/.Trash/Current
            从回收站中恢复
                   hdfs dfs -cp /user/root/.Trash/Current/tools/hadoop-2.7.3.tar.gz /tools            
            [-expunge] 清空回收站

        (2)快照

                即snapshot(是一种备份),其本质:cp命令

快照的命令分为如下两种:
                (a)管理命令
                    [-allowSnapshot <snapshotDir>]
                    [-disallowSnapshot <snapshotDir>]
               (b) 操作命令
                    [-createSnapshot <snapshotDir> [<snapshotName>]]
                    [-deleteSnapshot <snapshotDir> <snapshotName>]
                    [-renameSnapshot <snapshotDir> <oldName> <newName>]
                (c)  默认禁用
                (d) 针对目录开启快照
                    hdfs dfsadmin -allowSnapshot /students
               (e)  创建一个备份
                    执行:hdfs dfs -createSnapshot /students backup_student_0411_01
                    会显示如下日志提示信息:
                    日志:Created snapshot /students/.snapshot/backup_student_0411_01
                    例子2:
                    hdfs dfs -put student03.txt /students
                    hdfs dfs -createSnapshot /students backup_student_0411_02
                (f ) 对比快照
                    hdfs snapshotDiff /students backup_student_0411_01 backup_student_0411_02
                    M       .
                    +       ./student03.txt
                    hdfs lsSnapshottableDir
                    我们可以通过网页查看
                (g)  恢复快照
                    hdfs dfs -cp /input/.snapshot/backup_input_01/data.txt /input
        (3)配额(quota)
            (1)名称配额: 限制某个目录下,文件的个数
                    [-setQuota <quota> <dirname>...<dirname>]
                    [-clrQuota <dirname>...<dirname>]    
                    hdfs dfs -mkdir /folder1
                    hdfs dfsadmin -setQuota 3 /folder1
                    实际是:N-1
             (2)空间配额: 限制某个目录下,文件的大小
                    [-setSpaceQuota <quota> [-storageType <storagetype>] <dirname>...<dirname>]
                    [-clrSpaceQuota [-storageType <storagetype>] <dirname>...<dirname>]      
                    hdfs dfs -mkdir /folder2
                    设置空间配额:1M
                    hdfs dfsadmin -setSpaceQuota 1M /folder2
                    错误:
                    The DiskSpace quota of /folder2 is exceeded: quota = 1048576 B = 1 MB but diskspace consumed =                                    134217728 B = 128 MB

注意:设置的值一定不能小于128M

        (4)安全模式 safe mode

            注意:HDFS在正常运行状态下,安全模式一定是off状态

                      安全模式是HDFS的一种自我保护功能,其作用是:检查数据块的副本数

                      HDFS在安全模式下,一定是只读的状态

    3、HDFS的底层原理

        (1)文件上传原理

                

java怎么删除hdfs上的文件夹 hdfs怎么删除目录_java怎么删除hdfs上的文件夹

        (2)文件下载原理

                 

java怎么删除hdfs上的文件夹 hdfs怎么删除目录_hdfs高级特性_02

        (3)RPC  HTTP

                 是一种运行在传输层上的协议,HDFS实现了RPC远程过程调用协议