HDFS的体系结构和操作

HDFS fs 常用命令

1.对hdfs操作的命令格式是hadoop fs
  1.1 -ls <path> 表示对hdfs下一级目录的查看

    hadoop fs -ls hdfs://chaoren:9000/ ----对HDFS的根目录进行查看(Linux下:ls /)
    path:这个可以使用more core-site.xml进行查看,发现里面配置有这个path的值为hdfs://chaoren:9000。

  1.2 -lsr <path> 表示对hdfs目录的递归查看

    hadoop fs -lsr hdfs://chaoren:9000/
    hadoop fs -lsr /
    这两个命令的作用是一样的,都是查询HDFS根目录下的

  1.3 -mkdir <path> 创建目录

    hadoop fs -mkdir /d1 ---创建文件夹d1
    hadoop fs -ls / ---验证文件夹是否创建成功


  1.4 -put <src> <des> 从linux上传文件到hdfs

    hadoop fs -put ./core-site.xml hdfs://chaoren:9000/d1

  1.5 -get <src> <des> 从hdfs下载文件到linux

    hadoop fs -get /d1/core-site.xml .

  1.6 -text <path> 查看文件内容

    hadoop fs -text /d1/core-site.xml

  1.7 -rm <path> 表示删除文件

    hadoop fs -rm /d1/core-site.xml

  1.8 -rmr <path> 表示递归删除文件

    hadoop fs -rmr /d1


2.hdfs在对数据存储进行block划分时,如果文件大小超过block,那么按照block大小进行划分;不如block size的,划分为一个块,是实际数据大小。

Namenode:
1、是整个文件系统的管理节点。它维护着整个文件系统的文件目录树,文件/目录的元信息和每个文件对应的数据块列表。接收用户的操作请求。

2、文件包括:(源码中hdfs-site.xml的dfs.name.dir属性)
(1)fsimage:元数据镜像文件。存储某一时段namenode内存元数据信息。
(2)edits:操作日志文件。
(3)fstime:保存最近一次checkpoint的时间。
以上这些文件都是保存在Linux的文件系统中。

Datanode:
提供真实文件数据的存储服务。

文件块(block):最基本的存储单位HDFS默认block大小是64MB
不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间,只占用实际大小!
Replication:源码中hdfs-site.xml的dfs.replication属性。多副本,默认是三个。

SecondaryNameNode:
1、HA的一个解决方案。但不支持热配。配置即可。
2、执行过程:从namenode上下载元数据信息(fsimage,edits),然后把二者合并,生成新的fsimage,在本地保存,并将其推送到namenode,同时重置namenode的edits。
3、默认安装在namenode节点上,但这样不安全。

*****PermissionDenyException 权限不足**********
错误:dfs.permissions的默认值是true。但是自己在用时,将其改为了false。改为了false,就不会报权限不足的错误了。

posted @ 2017-03-29 12:11  ahu-lichang  阅读(312)  评论(0编辑  收藏  举报