Hadoop一些备受关注的特性与版本演进 Append : 支持文件追加功能,如果想使用Hbase,需要这个特性 RAID: 在保证数据可靠性的前提下,通过引入校验码减少数据块数目。 Symlink: 支持HDFS文件链接。 Security : 安全性。 NameNode HA: (高可用),尽管存在secondary namenode,并通过数据复制保证数据不会丢失,但当namenode出现故障,secondarynamenode无法实现 自动切换。HA可以实现此功能 HDFS Federation 和YARN : 第二代的mapreduce系统 HDFS 1.提供分布式存储机制,提供可线性增长的海量存储能力. (利用分布式的机器硬盘形成一个总的存储空间.在任何一个节点,无论namenode或者datanode,只要发出操作命令,就可以对整个集群hdfs进行统一操作。 比如A,B,C三个机器,无论A是namenode或者datanode,A节点不仅限于A节点上面的数据,还可以可以操作整个三台机器组成的集群。 ) 2.自动数据冗余,无需使用Raid,无需另外备份。(利用服务器因子实现) 3.为进一步分析计算提供数据基础。 HDFS设计基础与目标 1.硬件错误时常态。因此需要冗余。 2.流式数据访问,因此数据批量读取而非随机读写,Hadoop擅长做的是数据分析而不是事务处理。 3.大规模数据集。 4.简单一致性模型,为了降低系统复杂度,对文件采用一次性写多次读的逻辑设计,即是文件已经写入,关闭, 就不再修改 5.程序采用数据就近原则分配节点执行。 读取数据流程 1.客户端要访问HDFS中的一个文件 2.首先从namenode获得组成这个文件的数据块位置列表 3.根据列表知道存储数据块的datanode 4.访问datanode获取数据 5.namenode并不参与数据实际传输 写入过程流程 1.客户端请求namenode创建新文件 2.客户端将数据写入DFSOutputStream 3.简历pepeline依次将目标数据写入各个datanode,建立多个副本。 HDFS体系结构 NAMENODE:存放元数据,比如命名空间, 1.管理文件系统的命名空间。 2.记录每个文件数据块在各个Datanode的位置和副本信息 3.协调客户端对文件的访问 4.记录命名空间内的改动或空间本身属性的改动 5.Namenode使用事务日志记录HDFS元数据的变化。使用影像文件存储文件系统的命名空间,包括文件映射,文件属性等。 SecondaryNameNode DataNode:存放具体的数据 事务日志 影像文件 HDFS的文件系统映像和编辑日志 文件系统客户端执行写操作时(例如创建或移动文件),这些操作首先被记录到编辑日志中。NAMENODE在内存中维护文件系统的 元数据;当编辑日志被修改时,相关元数据信息也同步更新。内存中的元数据可支持客户端的读请求。 在每次执行写操作之后,且在向客户端发送成功代码之前,编辑日志都需要更新和同步。当NAMENODE向多个目录写数据时, 只有在所有写操作均执行完毕之后放可返回成功代码,以确保任何操作都不会因为机器故障而丢失。 faimage文件时文件系统元数据的一个永久性检查点,并非一个写操作都会更新这个文件,因为fsimage是一个大型文件, (甚至高达几个GB),如果频繁地执行写操作,会使系统极为缓慢。这个特性根本不会降低系统的恢复能力,因为如果 namenode发生故障,可以先把fsimage载入到内存中重新构造最近的元数据,再执行编辑日志中的各项操作。 如前所述,edits文件会无限增长,尽管这种情况对于namenode的运行没有影响,但由于需要恢复(非常长)编辑日志中的 各项操作,namenode的重启操作会比较慢。对此的解决方式是辅助namenode,为主namenode内存中的文件系统元 数据创建检查点,创建检查点的步骤如下: 1.辅助namenode请求主namenode停止使用edits文件,暂时将新的写操作记录到一个新文件中。 2.辅助namenode从主namenode获取fsimage和edits文件(HTTP GET) 3.辅助namenode将fsimage文件载入到内存,逐一执行edits文件中的操作,创建新的fsimage。 4.辅助namenode将新的fsimage文件发送回主namenode(http post) 5.主namenode从辅助namenode接受的fsimage文件替换旧的fsimage文件,用步骤1所产生的edits文件代替旧的edits文件。 同时更新fstime文件来记录检查点执行的时间。 最终,主namenode拥有最新的fsimage文件和一个更新的edits文件。创建检查点的触发条件受两个配置参数控制。 通常情况下,辅助namenode每隔一小时(fs.checkpoint.period属性设置,以秒为单位)来创建检查点;此外, 当编辑日志达到64MB时,也会创建检查点。系统每隔五分钟检查一次编辑日志的大小。 1.辅助namenode的目录结构 2.创建检查点的过程不仅为namenode创建检查点数据,还使namenode最终也有一份检查点数据(存储在previous.checkpoint子目录中)。 3.这份数据可用作namenode元数据的备份。(尽管非最新)。 4.辅助namenode的previous.checkpoint目录,辅助接点的current目录和主namenode的current目录的布局相同。这种设计方案的好处 5.是,在主namenode发生故障时,可以从辅助namenode恢复数据。 6.一种方法时将相关存储目录复制到新的namenode中; 7.另外一张方法是使用-importCheckpoint选项重启辅助namenode守护进程,从而将辅助namenode用作新的主namenode。 8.借助这个选项,dfs.name.dir属性定义的目录中没有元数据时,辅助namenode就从fs.checkpoint.dir目录载入最新的检查点数据。 9.因此无需担心操作会覆盖现有的元数据。 HDFS文件操作 1.命令行方式 2.API方式 1.1列出HDFS下的文件 注意,hadoop没有当前目录的概念,没有cd命令 [anker@anker hadoop-1.1.2]$ ./bin/hadoop fs -ls Found 2 items drwxr-xr-x - anker supergroup 0 2014-04-25 22:46 /user/anker/in drwxr-xr-x - anker supergroup 0 2014-04-25 22:51 /user/anker/out 1.2上传文件到HDFS [anker@anker ~]$ echo "hello hadoop hdfs" > test3.txt [anker@anker ~]$ cat test.txt [anker@anker hadoop-1.1.2]$ bin/hadoop fs -put ../test3.txt ./in [anker@anker hadoop-1.1.2]$ bin/hadoop fs -cat ./in/test3.txt hello hadoop hdfs 1.3 数据写在了那儿(从OS看) [anker@anker current]$ pwd /home/anker/hadoop-1.1.2/tmp/dfs/data/current 以blk开头,没有结尾为数据文件。blk的大小缺省是64M,大于64M时会自动分割,变成 多个blk文件。 meta文件为元数据文件,比如数据块跟文件的对应,以及校验和 [anker@anker current]$ ls blk_3157498903036687291 blk_7575711193623193077_1249.meta blk_3157498903036687291_1250.meta blk_8019284162881630727 blk_-4941071068077027141 blk_8019284162881630727_1265.meta blk_-4941071068077027141_1257.meta blk_-8411529019236825895 blk_-6003480761789770138 blk_-8411529019236825895_1259.meta blk_-6003480761789770138_1260.meta blk_8558884646323201157 blk_-7444048057069378050 blk_8558884646323201157_1264.meta blk_-7444048057069378050_1262.meta dncp_block_verification.log.curr blk_7575711193623193077 VERSION 1.4 将HDFS文件复制到本地 将in目录下的文件复制到上层目录中 [anker@anker hadoop-1.1.2]$ bin/hadoop fs -get ./in/test3.txt ../ 1.5删除HDFS下的文档(无论哪个节点,实际上各个节点文件都删除掉了) [anker@anker hadoop-1.1.2]$ bin/hadoop fs -rmr ./in/test3.txt Deleted hdfs://anker.centos1:9000/user/anker/in/test3.txt 1.6 查看HDFS下某个文件的内容 [anker@anker hadoop-1.1.2]$ bin/hadoop fs -ls ./in Found 2 items -rw-r--r-- 2 anker supergroup 12 2014-04-25 22:46 /user/anker/in/test1.txt -rw-r--r-- 2 anker supergroup 13 2014-04-25 22:46 /user/anker/in/test2.txt 1.7查看HDFS基本统计信息 [anker@anker hadoop-1.1.2]$ bin/hadoop dfsadmin -report Configured Capacity: 6945988608 (6.47 GB) Present Capacity: 5998563328 (5.59 GB) DFS Remaining: 5997989888 (5.59 GB) DFS Used: 573440 (560 KB) DFS Used%: 0.01% Under replicated blocks: 1 Blocks with corrupt replicas: 0 Missing blocks: 0 ------------------------------------------------- Datanodes available: 2 (2 total, 0 dead) Name: 192.168.1.203:50010 Decommission Status : Normal Configured Capacity: 3464716288 (3.23 GB) DFS Used: 286720 (280 KB) Non DFS Used: 473300992 (451.38 MB) DFS Remaining: 2991128576(2.79 GB) DFS Used%: 0.01% DFS Remaining%: 86.33% Last contact: Sun Apr 27 21:20:55 CST 2014 Name: 192.168.1.202:50010 Decommission Status : Normal Configured Capacity: 3481272320 (3.24 GB) DFS Used: 286720 (280 KB) Non DFS Used: 474124288 (452.16 MB) DFS Remaining: 3006861312(2.8 GB) DFS Used%: 0.01% DFS Remaining%: 86.37% Last contact: Sun Apr 27 21:20:58 CST 2014 1.8 如何添加节点 1.在新节点安装好hadoop 2.把namenode的有关配置文件复制到该节点 3.修改masters和slaves文件,增加该节点 4.设置ssh免密码进入该节点 5.单独启动该节点的datanode和tasktracker(hadoop-daemon.sh start datanode/tasktracker) 6.运行start-balancer.sh进行数据负载均衡 7.是否要重启集群?
相关推荐
Hadoop学习之路(三)Hadoop-2.7.5在CentOS-6.7上的编译
1、 hadoop官方网站,首页会有最新动态。 2、 Nutch ->谷歌GFS论文->doug 根据GFS设计了NDFS、06年启动...3、 环境支持 操作系统 Linux 、WINDOWS-Cygwin、hadoop-for-windows JDK支持 下载jdk,解压jdk,配置环境变量
Hadoop学习总结,内容包括: 1. HDFS简洁 2. HDFS读写过程解析 3. MapReduce入门 4. MapReduce过程解析 5. Hadoop运行痕迹 6. MapReduce源码分析总结
hadoop学习笔记,hadoop简介,适用于hadoop入门,讲解hadoop安装,使用,基本原理,大数据,分布式等概念
踏入hadoop的世界,一个不一样的世界
hadoop- w3c 学习笔记
Hadoop 智传,马士兵等三个版本,15个G学习视频入门到精通
1.首先必须在将虚拟机上的Linux系统配置好。 2.删除自带的jdk。 3.就可以开是学习Hadoop了接下来对照文件操作。 声明本人是第一次发帖子,如有错误请大家多多指正。请大家多多关注。
-018.Hadoop在Win7下免Cygwin环境安装伪分布式与第三方增强软件介入.mp4 -019.Hadoop在Win7下免Cygwin环境安装NativeBug解决与dexpot多桌面应用.mp4 -020.Hadoop架构分析之单节点体系.mp4 021.Hadoop架构分析之集群...
hadoop权威指南第3版是一本非常专业的Hadoop参考学习用书,该书系统阐述了Hadoop发展现状和应用,知识体系完善,内容丰富全面,对Hadoop感兴趣的朋友可以学习学习。
1、对hadoop、zookeeper、hbase、hive、sqoop、flume、pig的理论体系有个系统...3、能够使用java语言、shell命令行两种方式操作hadoop、zookeeper、hbase、hive、sqoop等,进入公司可以直接上手工作,不需要二次培训
3、Hadoop命令手册 4、Hadoop权威指南 5、hadoop伪分布配置自写 6、在Windows上安装Hadoop教程 7、Transwarp 8、HDFS基础培训 9、MapReduce基础培训 10、Spark 等等。 另有整套hadoop视频教程和ppt。需要的朋友留下...
1.首先必须在将虚拟机上的Linux系统配置好。 2.删除自带的jdk。 3.就可以开是学习Hadoop了接下来对照文件操作。 声明本人是第一次发帖子,如有错误请大家多多指正。请大家多多关注。
本书是HADOOP权威指南第3版,是学习大数据HADOOP的参考资料
1.Deep Learning with Hadoop 2.Hadoop.in.Action 3.Hadoop.in.Action中文版 4.Hadoop基础教程
hadoop 实战 hadoop系统 hadoop学习资料 第三部分
Hadoop是大数据技术中最重要的框架之一,是学习大数据必备的第一课,在Hadoop平台之上,可以更容易地开发和运行其他处理大规模数据的框架。尚硅谷Hadoop视频教程再次重磅升级!以企业实际生产环境为背景,增加了更...
01_Hadoop_开篇_课程整体介绍.mp4 03_Hadoop_概论_大数据的特点.mp4 04_Hadoop_概论_大数据的应用场景.mp4 06_Hadoop_概论_未来工作内容.mp4 07_Hadoop_入门_课程介绍.mp4 11_Hadoop_入门_Hadoop优势.mp4 13_Hadoop_...
第一章:初识Hadoop 第2章 关于MapReduce 第3章 Hadoop分布式文件系统 第4章 Hadoop I/O 第5章:MapReduce 应用开发 第6章:MapReduce 的工作原理 第7章:MapReduce 的类型与格式