HDFS、MapReduce设计概念、基础架构、Python代码实现、常用命令(一)
2018-03-07 16:27
615 查看
一、HDFS
全称Hadoop DISTRIBUTED FILE SYSTEM,简称HDFS,是一个分布式文件系统。它是谷歌的GFS提出之后出现的另外一种文件系统。它有一定高度的容错性,而且提供了高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS 提供了一个高度容错性和高吞吐量的海量数据存储解决方案。在最初,HADOOP是作为Apache Nutch搜索引擎项目的基础架构而开发的,后来由于它独有的特性,让它成为HADOOP CORE项目的一部分。HDFS的设计思路
简单说一下它的设计思路,大家就可以理解为什么它可以提供高吞吐量的数据访问和适合大规模数据集的应用的特性。首先HDFS的设计之初就是针对超大文件的存储的,小文件不会提高访问和存储速度,反而会降低;其次它采用了最高效的访问模式,也就是经常所说的流式数据访问,特点就是一次写入多次读取;再有就是它运行在普通的硬件之上的,即使硬件故障,也就通过容错来保证数据的高可用。HDFS核心概念
Block:大文件的存储会被分割为多个block进行存储。默认为64MB,每一个blok会在多个datanode上存储多份副本,默认为3份。[这些设置都能够通过配置文件进行更改]Namenode:主要负责存储一些metadata信息,主要包括文件目录、block和文件对应关系,以及block和datanote的对应关系
Datanode:负责存储数据,上面我们所说的高度的容错性大部分在datanode上实现的[还有一部分容错性是体现在namenode和secondname,还有jobtracker的容错等]。
HDFS优点:
高吞吐量访问:HDFS的每个block分布在不同的rack上,在用户访问时,HDFS会计算使用最近和访问量最小的服务器给用户提供。由于block在不同的rack上都有备份,所以不再是单数据访问,所以速度和效率是非常快的。另外HDFS可以并行从服务器集群中读写,增加了文件读写的访问带宽。高容错性:上面简单的介绍了一下高度容错。系统故障是不可避免的,如何做到故障之后的数据恢复和容错处理是至关重要的。HDFS通过多方面保证数据的可靠性,多分复制并且分布到物理位置的不同服务器上,数据校验功能、后台的连续自检数据一致性功能,都为高容错提供了可能。
容量扩充:因为HDFS的block信息存放到namenode上,文件的block分布到datanode上,当扩充的时候,仅仅添加datanode数量,系统可以在不停止服务的情况下做扩充,不需要人工干预。
HDFS常见命令
HDFS上的数据,分布在不同的地方,我们有一些命令可以用于 增加/查看/删除 等数据操作。#显示/下的所有文件夹信息 hadoop fs -ls / #递归显示所有文件夹和子文件(夹) hadoop fs -lsr #创建/user/hadoop目录 hadoop fs -mkdir /user/hadoop #把a.txt放到集群/user/hadoop/文件夹下 hadoop fs -put a.txt /user/hadoop/ #把集群上的/user/hadoop/a.txt拉到本地/目录下 hadoop fs -get /user/hadoop/a.txt /
相关文章推荐
- 搭建rtmp直播流服务之3:java开发ffmpeg实现rtsp转rtmp并实现ffmpeg命令的接口化管理架构设计及代码实现
- 2本Hadoop技术内幕电子书百度网盘下载:深入理解MapReduce架构设计与实现原理、深入解析Hadoop Common和HDFS架构设计与实现原理
- 代码抄袭检测系统的设计和实现(1)--需求分析和基础架构
- ssh批量登录并执行命令的python实现代码
- python核心编程第六章题目:python代码实现:设计一个"石头,剪子,布"游戏
- ssh批量登录并执行命令的python实现代码
- web测试常用python代码——ssh远程登陆以及命令执行
- ssh批量登录并执行命令的python实现代码
- 6_C# 实现VMS客户端——代码架构设计
- Python 常用代码及命令
- python模块paramiko实现上传下载与远程执行命令的代码
- 笔记:深入解析MapReduce架构设计与实现原理 第3章 MapReduce编程模型
- 笔记:深入解析MapReduce架构设计与实现原理 第4章 RPC框架解析
- ssh批量登录并执行命令的python实现代码
- web测试常用python代码——ssh远程登陆以及命令执行
- 面向对象的设计与实现的一些基础但重要的概念
- 研磨设计模式解析及python代码实现——(三)适配器模式(Adapter)
- 架构,改善程序复用性的设计~第三讲 实现一种功能的代码只能出现在一处
- [读书笔记]深入解析MapReduce架构设计与实现原理——CH4 Java反射机制与动态代理
- 架构,改善程序复用性的设计~第三讲 实现一种功能的代码只能出现在一处(续)