hadoop之hdfs基本原理(二)

来源:互联网 发布:淘宝361官方旗舰店 编辑:程序博客网 时间:2024/06/03 14:41

一 HDFS基本概念

hdfs文件被分成块进行存储,默认64M,块是文件存储处理的逻辑单元

hdfs有两个节点,NameNode和DataNode

NameNode存放文件元数据:分别是文件与数据块的映射表,数据块与数据节点的映射表。配置副本策略和处理客户端请求

DataNode:实际存储数据、执行数据块的读写并汇报存储信息给NameNode;一般默认每个数据块有三个副本,保存在两个机架上面,保证hdfs的高可用

另外还有个Secondary NameNode:辅助NameNode,分担NameNode工作,定期合并fsimage和fsedits并推送给NameNode,紧急情况下可辅助恢复NameNode;其实就是NameNode的备胎,保证NameNode的高可用性

心跳检测:每隔多少秒钟,dataNode会向NameNode报自己的工作状况,是不是还处于active状态
hdfs读取文件
这里写图片描述
hdfs写入文件
这里写图片描述
hdfs和传统文件系统有什么区别:
1.数据冗余,硬件容错
2.流式数据访问,一次写入,多次读取,块没法修改
3.存储大文件,如果是大量的小文件对NameNode压力很大,所以不像数据库那样适合频繁的交互式引用;一次写入,多次读取,顺序读写;不支持多用户并发写相同文件

二 hdfs使用

hdfs提供了shell接口,可以直接执行一些类似的linux命令
在hadoop-1.2.1/conf目录下
创建文件夹
hadoop fs -mkdir input
,创建的文件夹默认在hdfs /user/root 目录下

查看一下:hadoop fs -ls /user/root

将一个文件上传到hdfs我们刚刚创建的input文件夹中中:

hadoop fs -put  hadoop-env.sh  /input

查看一下:

hadoop fs -ls  /user/root/input 

下载hdfs文件到本地:

hadoop fs -get  input/hadoop-env.sh hadoop-env2.sh

查看一下本地:

ls

查看文件系统的所有信息:

hadoop dfsadmin -report
原创粉丝点击