Hadoop综述
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.2.2.2 HDFS Concepts-Namenodes and DatanodesNameNode- persistent state of the filesystem metadata
对于任何对文件元数据产生修改的操作, Namenode都使用一个称为Editlog的事务 日志记录下来。
将所有的文件和文件夹的元数据保存在一个文 件系统树中。在硬盘上保存成以下文件:
命名空间镜像(namespace image) 修改日志(edit log)
心跳信号传递信息(并不存储在硬盘):
一个文件包括哪些数据块,分布在哪些数据节点 上。系统启动的时候从Datanode收集而成的。
Datanode在Namenode的指挥下进行block的 创建、删除和复制。
3 Hadoop应用程序示例
1. 2. 3.
打包 dfs_operator.jar 复制到hadoop/bin文件夹下 执行脚本:
exec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@“
4.
运行hadoop jar dfs_operator.jar DFSOperator
4.1.1 Data Flow-File Read-基本过程
The client opens the file it wishes to read by calling open() on the FileSystem object Multiple DistributedFileSystem calls the namenode, using RPC, to determine the locations of the blocks for the first few blocks in the file
2.2.2 HDFS Concepts-Namenodes and Datanodes- NameNode
manages the filesystem namespace
元数据信息包括: 文件信息,根目录 hdfs://master:9000/ 每一个文件对应的文件块的信息 每一个文件块在DataNode的信息
客户端操作(打开、关闭、重命名文件和目录)
NameNode将对文件系统的改动追加保存到本地文件系统 上的一个日志文件(edits)
NameNode启动
从映像文件(fsimage)中读取HDFS的状态 接着应用日志文件中的edits操作 edits 新的HDFS状态写入(fsimage)中 使用一个空的 edits文件开始正常操作。
4
第三篇 Hbase简单介绍 简单介绍
一 :简介 二:数据模型 三:行、列、时间戳、API 时间戳、
5
第一篇HDFS 分布式文件系统 第一篇
1 The Design of HDFS Very large files
大数据集合为目标数 以千万计的文件 典型文件大小一般都在千兆至T字节
Streaming data access
Corresponding implementation: Master– NameNode Slaves–DataNodes Client –DFSClient
2.2.1 HDFS Concepts-Namenodes and Datanodes- Basic model
查看块信息hadoop fsck –files –blocks 部分运行结果
2.2.2.2 HDFS Concepts-Namenodes and DatanodesNameNode- persistent state of the filesystem metadata
块进行复制的形式放置,按照块的方式随 机选择存储节点。 a副本的默认数目是3
2.2.2.3 HDFS Concepts-Namenodes and Datanodes- NameNode- Namenode folders structure
在hdfs://master:9000/user/coole下新建input目录
2.5 HDFS Concepts-Namenodes and Datanodes-通信接口
对通信的对象进行序列化 自己的序列化系统。 org.apache.hadoop.io中定义可序列化 对象,实现了Writable接口
3 Hadoop应用程序示例
//在hdfs://master:9000/user/coole目录下创建文件并写入内容 public class DFSOperator { public static void main(String[] args) { Configuration conf = new Configuration(); try { FileSystem fs = FileSystem.get(conf); Path t = new Path("hdfs://master:9000/user/coole/dfs_operator.txt"); FSDataOutputStream os = fs.create(t,true); int i = 0; for (i = 0 ;i<5; i++) os.writeChars("test"); os.close(); } catch (IOException e) { e.printStackTrace(); } } }
Datanode上所有block组成列表
2.3 HDFS Concepts-Namenodes and Datanodes- The Command-Line
Interface
interacting with HDFS hadoop fs –mkdir input hdfs://master:9000/user/coole
例如,在HDFS中创建一个文件(打开、关闭、重命名文件和目录), Namenode就会在Editlog中插入一条记录来表示;同样,修改文件的 replication因子也将往 Ed的namespace,包括block到 文件的映射、文件的属性,都存储在称为 FsImage的文件中,这个文件也是放在 Namenode所在系统的文件系统上
2.2.4 HDFS Concepts-Namenodes and Datanodes-心跳机制
master启动,开一个ipc server slave启动每隔3秒向master发送 “心跳”
状态信息告诉master master通过心跳的返回值,向slave节点传达指令
周期性接收 “心跳”和Blockreport
write-one-read-many访问模型 文件创建、写,关闭之后不需要改变简化数据一致性 适合MapReduce框架,或者web crawler
Commodity hardware
错误检测和快速、自动的恢复是HDFS的核心架构目标
1 The Design of HDFS
Low-latency data access
流式读为主 比之关注数据访问的低延迟,更关键在于数据访问的高吞吐量
arbitrary file modifications
严格要求在任何时候只有一个writer。 文件尾
在异构的软硬件平台间的可移植性移动计算
Java编写
2 HDFS Concepts
blocks Namenodes and Datanodes The Command-Line Interface
elif [ "$COMMAND" = "jar" ] ; then CLASS=org.apache.hadoop.util.RunJar
Hadoop脚本
选项
参数一
参数二
4 Data Flow
File Read File Write
4.1 Data Flow-File Read
• • •
4.1.1 基本过程 4.1.2 网络距离 4.1.3 优点
4.1.1 Data Flow-File Read-详细过程
For each block, the namenode returns the addresses of the datanodes that have a copy of that block (according to their proximity to the client据与客户端距离排序) 读完一个块,再找下一个块,读取连续流
通信接口
2.1 HDFS Concepts-blocks
files in HDFS are broken into block-sized chunks(64 MB by default)
1. 2. 3.
减少元数据的量 有利于顺序读写(在磁盘上数据顺序存放) 副本的默认数目是3
a file can be larger than any single disk in the network. making the unit of abstraction a block rather than a file simplifies the storage subsystem.
Hadoop综述 综述
主要内容
第一篇HDFS 分布式文件系统 第二篇 MapReduce 第三篇 Hbase简单介绍
2
第一篇HDFS 第一篇
一: The Design of HDFS 二: HDFS Concepts 三:应用程序示例 四:Data Flow
3
第二篇 MapReduce
一 :MapReduce基础 基础 二:MapReduce数据流 数据流 三:MapReduce工作原理 工作原理
persistent state of the filesystem metadata. Namenode folders structure Namenode namespace映像文件及修改日志 客户端对文件的访问
2.2.2.1 HDFS Concepts-Namenodes and Datanodes- NameNode- manages the filesystem namespace
VERSION文件是java properties文件,保存了HDFS的版本 号。 layoutVersion是一个负整数,保存了HDFS的持续化在硬盘 上的数据结构的格式版本号。 namespaceID是文件系统的唯一标识符,是在文件系统初次 格式化时生成的。 cTime此处为0 storageType表示此文件夹中保存的是元数据节点的数据结 构。
2.2 HDFS Concepts-Namenodes and Datanodes
Basic model Namenode DataNode
心跳机制
2.2.1 HDFS Concepts-Namenodes and Datanodes- Basic model
Basic model:
Master / Slaves / Client
namespaceID=1232737062 cTime=0 storageType=NAME_NODE layoutVersion=-18
2.2.2.4 HDFS Concepts-Namenodes and DatanodesNameNode-Namenode-Namenode文件系统命名空间 映像文件及修改日志
文件存储的基本单元 保存Block的Meta-data 周期性地将所有Block信息发送给NameNode。 文件夹结构
blk_<id>保存的是HDFS的数据块,其中保 存了具体的二进制数据。 blk_<id>.meta保存的是数据块的属性信息 :版本信息,类型信息,和checksum 目录中数据块到达一定数量,创建子文件夹
写操作成功之前,修改日志都会同步(sync)到文件系统。 fsimage命名空间映像文件,是内存中的元数据在硬盘上的 checkpoint NameNode只有在启动阶段合并fsimage和edits,日志文件 会变大
2.2.3 HDFS Concepts-Namenodes and Datanodes- DataNodes