hadoop能解决哪些问题?
1、海量数据需要及时分析和处理
2、海量数据需要深入分析和挖掘
3、数据需要长期保存
问题:
1、磁盘IO成为一种瓶颈,而非CPU资源。
2、网络带宽是一种稀缺资源
3、硬件故障成为影响稳定的一大因素。
Hadoop生态系统介绍
Hbase
1、Nosql数据库,Key-Value存储
2、最大化利用内存
HDFS
1、hadoop distribute file system分布式文件系统
2、最大化利用磁盘
MapReduce
1、编程模型,主要用来日志分析
---------------------------------
HDFS设计原则
1、文件以块(block)方式存储
2、每个块带下去远比多数文件系统来的大(预设64M)
3、通过副本机制提高可高度和读取吞吐量
4、每个区块至少分到三台DateNode上
5、单一master(NameNode)来协调存储单一数据(metadate)
6、客户端对文件没有缓冲机制(No data caching)
-----------------------------------------
NameNode(NN)
1、NameNode主要功能提供名称查询服务,它是一个jetty服务器
2、NameNode保存metadate信息,包括文件owership和permissions、文件包含哪些快、Block保存在哪个DateNode(由DateNode启动时上报)
3、NameNode的metadate信息在启动后会加载到内存
4、metadate存储到磁盘文件名为"fsimage"
---------------------------------------------
DateNode(DN)
1、保存Block
2、启动DN线程的时候会向NN汇报block信息。
3、通过向NN发送心跳保持与其联系(3秒钟一次),如果NN10分钟没有收到DN的心跳,则认为其已经Lost,并copy其上的block到其他DN。
----------------------------------------------
Block的副本放置策略
1、第一个副本:放置在上传文件的DN;如果是集群外提交,则随机挑选一台磁盘不太满,CPU不太忙的节点。
2、第二个副本:放置在于第一个副本不同的机架的节点上。
3、第三个副本:放置在与第二个副本相同集群的几点。
4、更多副本:随机节点。
-----------------------------------------------
再说Block
1、设置一个Block64MB,如果上传文件小于该值,仍然会占用一个Block的命名空间(NameNode metadate),但是物理存储上不会占用64MB的空间。
2、Block大小和副本数由Client端上传文件到HDFS时设置,其中副本数可以变更,Block是不可以再上传后变更的。
-----------------------------------------------
数据损坏(corruption)处理
1、当DN读取block的时候,它会计算checksum
2、如果计算后的checksum,与block创建时值不一样,说明该block已经损坏。
3、client读取其他DN上的block;NN标记该块已经损坏,然后复制block达到预期设置的文件备份数。
4、DN在其文件创建后三周验证其checksum
-----------------------------------------------------
SecondaryNameNode(SNN)
1、它不是NN的热备份
2、它可以作为冷备份,将本地保存的fsimage导入,修改cluster所有DN的NameNode地址,修改所有client端NameNode地址或者修改SNN IP为原NNIP
3、它的工作是帮主NN合并edits log,减少NN启动时间。
-----------------------------------------------
HDFS文件权限
1、与Linux文件权限相识
2、r:read;w:write;x:execute,权限x对于文件忽略,对于文件表示是否允许访问其内容
3、如果Linux系统用户zhangshan使用hadoop命令创建一个文件,那么这个文件在HDFS中owner就是zhangsan
-----------------------------
安全模式
1、namenode启动时候,首先将影像文件(fsimage)载入内存,并执行编辑日志(edits)中的各项操作。
2、一旦在内存中成功建立文件系统元数据映射,则创建一个新的fsimage文件(这个操作不需要secondaryNameNode)和一个空的编辑日志。
3、NameNode开始监听RPC和HTTP请求。
4、此刻namenode运行在安全模式,即namenode的文件系统对于客服务端来说是只读的(显示目录,显示文件内容等,写、删除、重命名会失效)。
5、系统中数据块的位置并不是由namenode维护的,而是以块列表形式存储在datanode中。
6、在系统的正常操作期间,namenode会在内存中保留所有块位置的映射信息。
7、在安全模式下,各个datanode会向namenode发送块列表的最新情况。
8、进入和离开安全模式
查看namenode处于哪个状态
hadoop dfsadmin -safemode get
进入安全模式(hadoop启动的时候在安全模式)
hadoop dfsadmin -safemode enter
离开安全模式
hadoop dfsadmin -safemode leave
raplication表示默认拷贝几份文件。
------------------------------------
HDFS开发常用的命令
创建一个文件夹?hadoop fs -mkdir /user/hadoop/20120722
上传一个文件? hadoop fs -put(copyFormLocal) word.txt /user/hadoop/user2.txt
删除一个文件夹和文件? hadoop fs -rmr /user/hadoop/user2.txt
查看一个文件夹里面有哪些文件? hadoop fs -ls /user/hadoop
查看某个文件的内容? hadoop fs -text(cat、tail) /user/hadoop/user2.txt
相关推荐
Hadoop学习笔记,自己总结的一些Hadoop学习笔记,比较简单。
Hadoop 学习笔记.md
**Hadoop学习笔记详解** Hadoop是一个开源的分布式计算框架,由Apache基金会开发,主要用于处理和存储海量数据。它的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce,两者构成了大数据处理的基础...
《Hadoop学习笔记详解》 Hadoop,作为大数据处理领域中的核心框架,是Apache软件基金会下的一个开源项目,主要用于分布式存储和并行计算。本文将根据提供的Hadoop学习笔记,深入解析Hadoop的关键概念和实战技巧,...
1. HDFS(Hadoop Distributed File System):这是一个高度容错的系统,设计用来运行在廉价的硬件上。HDFS具有高吞吐量的特点,适合于有大量数据的应用程序。HDFS将数据存储为一系列的块,这些块默认大小为128MB,...
云计算,hadoop,学习笔记, dd
【HADOOP学习笔记】 Hadoop是Apache基金会开发的一个开源分布式计算框架,是云计算领域的重要组成部分,尤其在大数据处理方面有着广泛的应用。本学习笔记将深入探讨Hadoop的核心组件、架构以及如何搭建云计算平台。...
在本篇"Hadoop学习笔记(三)"中,我们将探讨如何使用Hadoop的MapReduce框架来解决一个常见的问题——从大量数据中找出最大值。这个问题与SQL中的`SELECT MAX(NUMBER) FROM TABLE`查询相似,但在这里我们通过编程...
在初学者的角度,理解Hadoop的组成部分以及其架构设计是学习Hadoop的基础。 首先,Hadoop的分布式文件系统(HDFS)是其核心组件之一,它具有高吞吐量的数据访问能力,非常适合大规模数据集的存储和处理。HDFS的设计...
"Hadoop学习笔记整理" 本篇笔记对Hadoop进行了系统的介绍和总结,从大数据的基本流程到Hadoop的发展史、特性、集群整体概述、配置文件、HDFS分布式文件系统等方面都进行了详细的讲解。 一、大数据分析的基本流程 ...
这是自己学习大数据时整理的笔记,希望能够不使用资源分,免费分享!
hadoop学习笔记,分天学习,原创,亲测,放心使用,没问题。
《深入理解Hadoop分布式系统》 ...Hadoop的学习是一个逐步深入的过程,涵盖分布式存储、计算模型、资源调度等多个方面,理解其工作原理和最佳实践,对于在大数据环境中构建高效稳定的系统至关重要。