`

Hadoop 学习之三

 
阅读更多
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上的编译

    Hadoop学习之路(三)Hadoop-2.7.5在CentOS-6.7上的编译

    HADOOP学习

    1、 hadoop官方网站,首页会有最新动态。 2、 Nutch ->谷歌GFS论文->doug 根据GFS设计了NDFS、06年启动...3、 环境支持 操作系统 Linux 、WINDOWS-Cygwin、hadoop-for-windows JDK支持 下载jdk,解压jdk,配置环境变量

    Hadoop学习总结.doc

    Hadoop学习总结,内容包括: 1. HDFS简洁 2. HDFS读写过程解析 3. MapReduce入门 4. MapReduce过程解析 5. Hadoop运行痕迹 6. MapReduce源码分析总结

    3.Hadoop学习笔记.pdf

    hadoop学习笔记,hadoop简介,适用于hadoop入门,讲解hadoop安装,使用,基本原理,大数据,分布式等概念

    hadoop学习笔记(三)

    踏入hadoop的世界,一个不一样的世界

    hadoop- w3c 学习笔记

    hadoop- w3c 学习笔记

    Hadoop三个版本学习视频

    Hadoop 智传,马士兵等三个版本,15个G学习视频入门到精通

    Hadoop学习之jdk安装

    1.首先必须在将虚拟机上的Linux系统配置好。 2.删除自带的jdk。 3.就可以开是学习Hadoop了接下来对照文件操作。 声明本人是第一次发帖子,如有错误请大家多多指正。请大家多多关注。

    徐老师大数据 Hadoop架构完全分析课程 Hadoop入门学习视频教程

    -018.Hadoop在Win7下免Cygwin环境安装伪分布式与第三方增强软件介入.mp4 -019.Hadoop在Win7下免Cygwin环境安装NativeBug解决与dexpot多桌面应用.mp4 -020.Hadoop架构分析之单节点体系.mp4 021.Hadoop架构分析之集群...

    hadoop权威指南第三版

    hadoop权威指南第3版是一本非常专业的Hadoop参考学习用书,该书系统阐述了Hadoop发展现状和应用,知识体系完善,内容丰富全面,对Hadoop感兴趣的朋友可以学习学习。

    hadoop学习路线

    1、对hadoop、zookeeper、hbase、hive、sqoop、flume、pig的理论体系有个系统...3、能够使用java语言、shell命令行两种方式操作hadoop、zookeeper、hbase、hive、sqoop等,进入公司可以直接上手工作,不需要二次培训

    hadoop技术学习资料

    3、Hadoop命令手册 4、Hadoop权威指南 5、hadoop伪分布配置自写 6、在Windows上安装Hadoop教程 7、Transwarp 8、HDFS基础培训 9、MapReduce基础培训 10、Spark 等等。 另有整套hadoop视频教程和ppt。需要的朋友留下...

    Hadoop学习笔记之jdk的安装

    1.首先必须在将虚拟机上的Linux系统配置好。 2.删除自带的jdk。 3.就可以开是学习Hadoop了接下来对照文件操作。 声明本人是第一次发帖子,如有错误请大家多多指正。请大家多多关注。

    HADOOP权威指南第3版

    本书是HADOOP权威指南第3版,是学习大数据HADOOP的参考资料

    Hadoop学习资料1

    1.Deep Learning with Hadoop 2.Hadoop.in.Action 3.Hadoop.in.Action中文版 4.Hadoop基础教程

    hadoop 实战 dev_03

    hadoop 实战 hadoop系统 hadoop学习资料 第三部分

    大数据技术之Hadoop3.x-视频教程网盘链接提取码下载 .txt

    Hadoop是大数据技术中最重要的框架之一,是学习大数据必备的第一课,在Hadoop平台之上,可以更容易地开发和运行其他处理大规模数据的框架。尚硅谷Hadoop视频教程再次重磅升级!以企业实际生产环境为背景,增加了更...

    大数据技术Hadoop3.x 2021年

    01_Hadoop_开篇_课程整体介绍.mp4 03_Hadoop_概论_大数据的特点.mp4 04_Hadoop_概论_大数据的应用场景.mp4 06_Hadoop_概论_未来工作内容.mp4 07_Hadoop_入门_课程介绍.mp4 11_Hadoop_入门_Hadoop优势.mp4 13_Hadoop_...

    Hadoop权威指南中文版

    第一章:初识Hadoop 第2章 关于MapReduce 第3章 Hadoop分布式文件系统 第4章 Hadoop I/O 第5章:MapReduce 应用开发 第6章:MapReduce 的工作原理 第7章:MapReduce 的类型与格式

Global site tag (gtag.js) - Google Analytics