分布式文件系统:HDFS基础与应用
2017-03-07 09:39
183 查看
第一:HDFS概述
1. hdfs的优点
高容错性适合大数据处理
构建在廉价机器上
- hdfs的缺点
不适用低延迟高吞吐比如毫秒级
低延迟和高吞吐率
不适用存储小文件小文件
占用namenode大量内存
寻道时间超过存储时间
namenode的block块有限制
不能并发写入,随机修改
一次写入,多次读取,一个文件只能有一个写者
仅支持append
第二:HDFS基础架构与原理
1. 基础架构
namenodeactive namenode
主Master,只有一个,保存元数据信息
standby namenode
备份namenode。定期合并fsimage和edits
HA+Federation
HA解决高可用,Federation解决单namenode资源不够
datanode
实际存放的数据块。每个block默认为128M
client
文件切割,namenode交互,datanode交互,管理和访问HDFS
2.原理
文件被分成若干个block。每个block默认128M每个block默认复制三份block存放在datanode
第一个block存放在与client同节点上。第二个block存放在不同机架上。第三个block存放在第二个block同机架不同节点上
CRC校验文件,Datanode定期向Namenode发送heartbeat,主备namenode。fsimage保存内存,同时备份fsimage+edit
第三:HDFS程序设计方法
基于Shell文件命令操作
bin/hdfs dfs -mkdir /home
bin/hdfs dfs -ls /
bin/hdfs dfs -put localfile /home
管理命令
bin/hdfs dfsadmin
bin/hdfs fsck examplefile -files -locations -blocks
均衡器balance
bin/start-balancer.sh -threshold < percentage of disk capacity
设置目录配额
bin/hadoop dfsadmin -setSpaceQuota 1t /home/hadoop
增加或移除节点
增加节点
将已存在的datanode安装包(包括配置文件)拷贝到新datanode上
启动新datanode sbin/hadoop-deamon.sh start datanode
删除节点
将datanode加入黑名单,并更新黑名单
移除datanode bin/hadoop dfsadmin -refreshNodes
基于JavaApi
将本地文件拷贝到hdfs上
Configuration conf = new Configuration(); FileSystem fs = FileSystem.get(conf); Path srcPath = new Path(srcFile); Path dstPath = new Path(dstFile); fs.copyFromLocalFile(srcPath,dstPath);
创建hdfs文件
Configruation conf = new Configuration(); FileSystem fs = FileSystem.get(conf); Path path = new Path(fileName); FSFileDataOutputStream outputstream = hdfs.create(path); outputstream.write(buff,0,buff.length);
第四:HDFS优化小技巧
原始日志存储格式选择文本文件
不便于压缩,选择合适的压缩算法很重要
不建议将日志文件直接存储为文本格式
SequenceFile
二进制格式,便于压缩,压缩格式作为元信息存到文件中
建议采用该格式存储原始日志
小文件优化
合并成大文件
Sequence File
Hadoop Archive
存在key/value系统中
HBase
TFS
压缩与归档
第五:项目实践
相关文章推荐
- hadoop基础----hadoop理论(三)-----hadoop分布式文件系统HDFS详解
- Hadoop基础教程-第3章 HDFS:分布式文件系统(3.1 HDFS概述)
- HDFS--Hadoop分布式文件系统专项基础概述
- Hadoop基础教程-第3章 HDFS:分布式文件系统(3.2 HDFS文件读写)
- Hadoop基础教程-第4章 HDFS的Java API(4.6 Java API应用)(草稿)
- 共享存储之分布式文件系统应用及MogileFS基础应用 推荐
- Hadoop基础教程-第3章 HDFS:分布式文件系统(3.5 HDFS基本命令)(草稿)
- Hadoop基础教程-第3章 HDFS:分布式文件系统(3.4 HDFS集群模式)
- hadoop基础----hadoop理论(三)-----hadoop分布式文件系统HDFS详解
- Hadoop基础教程-第3章 HDFS:分布式文件系统(3.3 HDFS参数解读)
- 第三章 web应用和HTTP基础
- 数据库应用基础系列
- DataGrid基础应用
- Extraction应用构建平台应用基础(一)------应用流程篇
- Extraction应用构建平台应用基础(六)------启动人和执行人篇
- 将AspectJ集成到基于Eclipse + Lomboz + XmlBuddy的Web应用中去 - 基础篇
- Extraction应用构建平台应用基础(二)------流程和实例篇
- 服务器控件开发基础----应用设计期Attribute
- 【原创】EJB开发基础——J2EE的分布应用技术
- 微软70-536考试教材:.net framework2.0 应用开发基础书籍简介.属于MCTS自学教材