HDFS的操作及高级特性笔记

    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

            单位:分钟

                

                   fs.trash.interval

                   1440

                

            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 ]

                    [-disallowSnapshot ]

               (b) 操作命令

                    [-createSnapshot []]

                    [-deleteSnapshot ]

                    [-renameSnapshot ]

                (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 ...]

                    [-clrQuota ...]    

                    hdfs dfs -mkdir /folder1

                    hdfs dfsadmin -setQuota 3 /folder1

                    实际是:N-1

             (2)空间配额: 限制某个目录下,文件的大小

                    [-setSpaceQuota [-storageType ] ...]

                    [-clrSpaceQuota [-storageType ] ...]      

                    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)文件上传原理

                HDFS的操作及高级特性笔记_第1张图片

        (2)文件下载原理

                 HDFS的操作及高级特性笔记_第2张图片

        (3)RPC  HTTP

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

 

 

 

你可能感兴趣的:(大数据,hdfs操作,hdfs高级特性)