hadoop-HDFS的简单操作

【1】是什么?

http://hadoop.apache.org/docs/r1.0.4/cn/mapred_tutorial.html

    Hadoop DISTRIBUTED FILE SYSTEM,简称HDFS,是一个分布式文件系统。有一定高度的容错性,而且提供了高吞吐量的数据访问,非常适合大规模数据集
上的应用。HDFS是海量数据存储解决方案

    HDFS的设计之初就是针对超大文件的存储的,小文件不会提高访问和存储速度,反而会降低;其次它采用了最高效的访问模式,也就是经常所说的流式数据访
问,特点就是一次写入多次读取;再有就是它运行在普通的硬件之上的,即使硬件故障,也就通过容错来保证数据的高可用。

    分布式文件管理系统很多,hdfs只是其中一种。适用于一次写入多次查询的情况,不支持并发写情况,小文件不合适。


HDFS的相关概念:
  (1)Block:大文件的存储会被分割为多个block进行存储。默认为64MB,每一个blok会在多个datanode上存储多份副本,默认为3份。[其默认配置可更改]
  (2)Namenode:主要负责存储一些metadata信息,主要包括文件目录、block和文件对应关系,以及block和datanote的对应关系
  (3)Datanode:负责存储数据,上面我们所说的高度的容错性大部分在datanode上实现的

HDFS框架图:

hadoop-HDFS的简单操作_第1张图片
2016-10-22_171649.png
主从结构:
       主节点,只有一个  : namenode
       从节点,有很多个  :datanodes

namenode负责:
      · 接收用户请求操作
      · 维护文件信息系统的目录结构
      · 管理文件与block之间的关系,block与datanade之间的关系
        注意:namenode归根结底要放在磁盘上的以保证数据的持久性,但是为了提高效率,一般在hadoop运行时时放在内存中的
 datanode负责:
      · 存储文件
      ·文件被分成block存储字磁盘上
      ·为保证数据安全,文件会有多个副本

【2】为什么?

HDFS的四大优点让其成为数据存储的主流选择
  (1)高吞吐量:
          HDFS的每个block分布在不同的rack上,在用户访问时,HDFS会计算使用最近和访问量最小的服务器给用户提供。由于block在不同的rack上都有备份
,所以不再是单数据访问,所以速度和效率是非常快的。另外HDFS可以并行从服务器集群中读写,增加了文件读写的访问带宽。
  (2)高容错性:
          上面简单的介绍了一下高度容错。系统故障是不可避免的,如何做到故障之后的数据恢复和容错处理是至关重要的。HDFS通过多方面保证数据的可靠
性,多分复制并且分布到物理位置的不同服务器上,数据校验功能、后台的连续自检数据一致性功能,都为高容错提供了可能。
  (3)容量扩充:
          因为HDFS的block信息存放到namenode上,文件的block分布到datanode上,当扩充的时候,仅仅添加datanode数量,系统可以在不停止服务的情况
下做扩充,不需要人工干预。
  (4)低成本:
        可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点。

【3】怎么做?

-help [cmd] //显示命令的帮助信息
-ls(r)    //显示当前目录下所有文件
-du(s)    //显示目录中所有文件大小
-count[-q]    //显示目录中文件数量
-mv   //移动多个文件到目标目录
-cp   //复制多个文件到目标目录
-rm(r)      //删除文件(夹)
-put     //本地文件复制到hdfs
-copyFromLocal  //同put
-moveFromLocal  //从本地文件移动到hdfs
-get [-ignoreCrc]    //复制文件到本地,可以忽略crc校验
-getmerge        //将源目录中的所有文件排序合并到一个文件中
-cat   //在终端显示文件内容
-text  //在终端显示文件内容
-copyToLocal [-ignoreCrc]    //复制到本地
-moveToLocal  
-mkdir    //创建文件夹
-touchz   //创建一个空文件

【4】实际案例?

(4-1):查看文件
命令: hadoop fs -ls [文件路径]
实例 1:hadoop fs -ls / (普通查看)
实例 2:hadoop fs -lsr / (递归查看)

hadoop-HDFS的简单操作_第2张图片
查看文件.png

(4-2):创建目录、文件
命令: hadoop fs -mkdir [文件路径]
实例 1:hadoop fs -mkdir /d1 (创建目录d1)

hadoop-HDFS的简单操作_第3张图片
创建目录.png

(4-3):上传文件
命令: hadoop fs -put [linux源文件路径] [hadoop目的地文件路径]
实例 1:hadoop fs -put /root/Desktop/Demo.py /d1 (将linux桌面的Demo.py文件上传至d1目录)
注意:这里当目的地的路径目录如果不存在,则会将文件重命名至路径,具体看实例

hadoop-HDFS的简单操作_第4张图片
上传.png

(4-4):下载文件
命令: hadoop fs -get [hadoop源文件路径路径] [linux下载目的地路径]
实例 1:hadoop fs -get /d1/Demo.py /root/Desktop/ (下载d1下的Demo.py文件到桌面)

hadoop-HDFS的简单操作_第5张图片
下载.png

(4-5):查看文件内容
命令: hadoop fs -text [文件路径]
实例 1:hadoop fs -text /d1/Demo.py (查看d1目录下Demo.py的内容)

hadoop-HDFS的简单操作_第6张图片
查看文件内容.png

(4-6):删除文件
命令: hadoop fs -rmr [文件路径]
实例 1:hadoop fs -rm /d1/Demo.py (删除文件)
实例 2:hadoop fs -rmr /d1 (递归删除文件夹)

hadoop-HDFS的简单操作_第7张图片
删除.png

(4-7):帮助
命令: hadoop
命令: hadoop fs
命令: hadoop fs -help
命令: hadoop fs -ls -help

(4-8) : 整理

1.对hdfs的操作方式:hadoop fs xxx
  hadoop fs -ls  /  查看hdfs的根目录下的内容的
  hadoop fs -lsr /  递归查看hdfs的根目录下的内容的
  hadoop fs -mkdir /d1  在hdfs上创建文件夹d1
  hadoop fs -put   把数据从linux上传到hdfs的特定路径中
  hadoop fs -get   把数据从hdfs下载到linux的特定路径下
  hadoop fs -text   查看hdfs中的文件
  hadoop fs -rm     删除hdfs中文件
  hadoop fs -rmr    删除hdfs中的文件夹

  hadoop fs -ls hdfs://hadoop0:9000/
等同于
  hadoop fs -ls /

【注意:****】.HDFS的datanode在存储数据时,如果原始文件大小>64MB,按照64MB大小切分;如果<64MB,只有一个block,占用磁盘空间是源文件实际大小。

【命令集】

hadoop-HDFS的简单操作_第8张图片
2017-01-02_163927.png
hadoop-HDFS的简单操作_第9张图片
2017-01-02_163945.png

你可能感兴趣的:(hadoop-HDFS的简单操作)