hadoop 的HDFS 分布式存储系统

       学了一个星期了hadoop了,该进行对学习的一些东西进行总结一下,当时复习了。第一步当然是先把hadoop开发环境搭建起来并运行

  1. HDFS和maoReduce是hadoop的核心组成吧,也是hadoop的基础,我也是一直在学习这方面的知识,通过一些文档和视频教程进行学习。一句话描述下hadoop的HDFS:就是把大文件或大数据存放在很多节点的数据块中。文件、节点、数据块 HDFS就是围绕着这三个词进行设计。

           HDFS分布式文件系统是一种通过网络在多台主机上分享文件的文件系统,可让多机器上的多用户进行分享文件和存储空间。适用于一次写入多次查询的情况,不支持并发写的情况,对于小数据不适合。

         HDFS的shell操作也就是一些常用的类似linux的命令的学习,对HDFS的基本操作,比如文件的创建、修改、删除、修改权限等,文件夹的创建、删除、重命名等。对
    HDFS 的操作命令类似于linux 的shell 对文件的操作,如ls、mkdir、rm 等。

    -help [cmd] //显示命令的帮助信息
    -ls(r) <path> //显示当前目录下所有文件
    -du(s) <path> //显示目录中所有文件大小
    -count[-q] <path> //显示目录中文件数量
    -mv <src> <dst> //移动多个文件到目标目录
    -cp <src> <dst> //复制多个文件到目标目录
    -rm(r)  //删除文件(夹)
    -put <localsrc> <dst> //本地文件复制到hdfs
    -copyFromLocal //同put
    -moveFromLocal //从本地文件移动到hdfs
    -get [-ignoreCrc] <src> <localdst> //复制文件到本地,可以忽略crc校验
    -getmerge <src> <localdst>  //将源目录中的所有文件排序合并到一个文件中
    -cat <src> //在终端显示文件内容
    -text <src> //在终端显示文件内容
    -copyToLocal [-ignoreCrc] <src> <localdst> //复制到本地
    -moveToLocal <src> <localdst>
    -mkdir <path> //创建文件夹
    -touchz <path> //创建一个空文件
    #hadoop fs -ls /  查看HDFS根目录
    #hadoop fs -mkdir /test 在根目录创建一个目录test
    #hadoop fs -mkdir /test1 在根目录创建一个目录test1
    #echo -e 'hadoop second lesson' >test.txt
    #hadoop fs -put ./test.txt /test 
    或#hadoop fs -copyFromLocal ./test.txt /test
    #cd ..
    #hadoop fs -get /test/test.txt .
    或#hadoop fs -getToLocal /test/test.txt .
    #hadoop fs -cp /test/test.txt /test1
    #hadoop fs -rm /test1/test.txt
    #hadoop fs -mv /test/test.txt /test1
    #hadoop fs -rmr /test1  

    这些命令说实话我还真是无法全部消化,只能记下来,下次用的时候在查了。

  2. 下面介绍下namenode,datenade,block,SecondaryNameNode

    nameNode作用就是管理文件的目录结构,管理数据节点。名字节点维护两套数据,一套是文件目录与数据块之间的关系,另一套是数据块与节点之间的关系

    datenode的作用就是HDFS 中真正存储数据的。

    DataNode 在
    blocl就是HDFS存储数据的时候是按照block 为单位读写数据的。block 是hdfs 读写数据的基本单位。默认是64M

    SNN 只有一个职责,就是合并NameNode 中的edits 到fsimage 中。

  3. HDFS 的java 访问接口:使用FileSystem api进行读写数据

  4. HDFS的RPC机制:RPC 是远程过程调用(Remote Procedure Call),即远程调用其他虚拟机中运行的javaobject。RPC 是一种客户端/服务器模式,那么在使用时包括服务端代码和客户端代码,还有我们调用的远程过程对象。

 

 

你可能感兴趣的:(hadoop,大数据,hdfs,文件系统,分布式存储)