-
通过Shell命令对HDFS进行操作:与Linux操作文件类似
HDFS实战
常用HDFS Shell命令:
类Linux系统:ls , cat , mkdir , rm , chmod , chown等
HDFS文件交互:copyFromLocal, copyToLocal , get , put
mk.txt 上传到 hdfs系统
1.在 /home 目录下 新建mk.txt :
touch(或vi) mk.txt
2.看一下hdfs根目录下有什么:
hdfs dfs -ls /
3.创建test目录 :
hdfs dfs -mkdir /test
看一下
hdfs dfs -ls /
4.mk.txt 上传到 test 下 (copyFromLocal)
hdfs dfs -copyFromLocal /hmoe/mk.txt /test/
看一下
hdfs dfs -ls /test
5.查看mk.txt的内容
hdfs dfs -cat /test/mk.txt
6.mk.txt 上传到本地目录下改名为 mk2.txt(copyToLocal)
hdfs dfs -copyToLocal /test/mk.txt /home/mk2.txt
看一下本地
ls
7.更改test的权限: 读4 写2 执行1
hdfs dfs -chmod 777 /test/mk.txt
hdfs dfs -ls /test
8.帮助文档
hdfs dfs -help
查看全部 -
HDFS的读流程
查看全部 -
HDFS读流程
通过客户端Client读取数据Data的流程,DataNode3存放数据块1与2的备份:
(1)Client向NameNode发起读取请求;
(2)NameNode查找自身存储的关于Data的存储信息,并反馈给Client存储Data各个节点的位置;
(3)Client根据反馈信息,从DataNode1读取数据块1,从DataNode2读取数据块2;
(4)假设从DataNode2读取数据块2时发生异常,则会从DataNode3取数据块2
查看全部 -
HDFS的写流程
查看全部 -
HDFS写流程
通过客户端Client写入数据Data的流程:
(1)Client向NameNode发起写入请求;
(2)NameNode查找自身存储的关于三个DataNode的信息,并反馈给Client;
(3)Client根据反馈信息,将Data分为两个数据块1和2;
(4)Client根据反馈信息将数据块1传给DataNode1,进行保存;
(5)备份x3,DataNode1将数据块1传给DataNode2,DataNode2再传给DataNode3;
(6)DataNode1、2、3存储完数据块1以后,将保存的节点信息反馈给NameNode进行保存,NameNode同时更新存储节点信息的列表;
(7)NameNode告知Client数据块1存储完成,开始存储数据块2,过程同数据块1一致
查看全部 -
1. hadoop数据块的大小一般设置为128M,如果数据块设置的太小,一般的文件也会被分割为多个数据块,在访问的时候需要查找多个数据块的地址,这样的效率很低,而且如果数据块设置太小的话,会消耗更多的NameNode的内存;而如果数据块设置过大的话,对于并行的支持不是太好,而且会涉及系统的其他问题,比如系统重启时,需要从新加载数据,数据块越大,耗费的时间越长。
2. NameNode容错机制,目前的hadoop2可以为之为HA(高可用)集群,集群里面有两个NameNode的节点,一台为主节点,一台为从节点,两者的数据时刻保持一致,当主节点出现问题时,从节点可以自动切换,用户基本感知不到,这样就避免了NameNode的单点问题。
查看全部 -
HDFS的缺点
(1)不适合大量小文件存储;
(2)不适合并发写入,不支持文件随机修改;
(3)不支持随机读等低延时的访问方式
查看全部 -
HDFS优点
HDFS的优点
(1)适合大文件存储,支持TB、PB级的数据存储,并有副本策略;
(2)可以构建在廉价的机器上,并有一定的容错和恢复机制;
注:Hadoop2的容错机制,Hadoop可以配置成HA(高可用集群),包含两个NameNode节点,其中一个处于“active”状态(主节点),另一个处于“standby”状态(备用节点),两者数据保持实时一致,当主节点出现问题时,就会自动切换到备用节点
(3)支持流式数据访问,一次写入,多次读取最高效
查看全部 -
HDFS系统的NameNode
查看全部 -
HDFS数据库按块存储
查看全部 -
HDFS 数据块
查看全部 -
HDFS的基本概念
(1)数据块
数据块是抽象块而非整个文件作为存储单元,默认大小为64MB,一般设置为128MB,备份x3 。比如说,设置数据块大小为100MB,数据为300MB,则会分3个数据块来存储
注:关于数据块大小的选择。若数据块选择的过小,较大的文件也有可能会被分割,由于NameNode要记录所有文件所在数据节点的信息,将会加大NameNode的内存压力;若数据块选择的过大,系统重启时需要重新加载数据,数据块越大恢复的时间越长
HDFS是由一个NameNode(主)和多个DataNode(从)组成的
(2)NameNode
管理文件系统的命名空间,存放文件元数据;维护者文件系统所有文件和目录,文件与数据块的映射;记录每个文件中各个块所在数据节点的信息。上述信息在DataNode启动时会自动发送给NameNode
(3)DataNode
负责存储并检索数据块;向NameNode更新所存储块的列表
查看全部 -
Hadoop核心
(1)HDFS(分布式文件系统):存储是大数据技术的基础;
(2)MapReduce(编程模型):分布式计算是大数据应用的解决方案
查看全部 -
Hadoop
Hadoop是一个开源的大数据框架;
Hadoop是一个分布式计算的解决方案;
Hadoop=HDFS(分布式文件系统)+ MapReduce(分布式计算)
查看全部 -
大数据方向
查看全部
举报