赞
踩
使用Java语言实现,开源
允许用户使用简单的编程模型实现跨机器集群对海量数据进行分布式计算处理
Hadoop Hdfs(分布式文件存储系统):解决海量数据存储
Hadoop YARN(集群资源管理和任务调度框架):解决资源任务调度
Hadoop MapReduce(分布式计算框架):解决海量数据计算
HDFS集群:
- 主角色:NameNode
- 从角色:DataNode
- 主角色辅助角色:SecondaryNameNode
YARN集群:
- 主角色:ResourceManager
- 从角色:NodeManager
- 文件系统是一种存储和组织数据的方法,实现了数据的存储、分级组织、访问和获取等操作,使得用户对文件访问和查找变得容易。
- 文件系统使用属性目录的抽象逻辑概念代替了硬盘等物理设备使用数据块的概念,用户不必担心数据底层存在硬盘在哪里,只需要记住这个文件的所属目录和文件名即可。
- 文件系统通常使用硬盘和光盘这样的存储设备,并维护文件在设备中的物理位置。
- 数据
指:存储的内容本身,比如文件、视频、图片等,这些数据底层最终是存储在磁盘等存储介质上的,一般用户无需关心,只需要基于目录树进行增删改查即可,实际针对数据的操作有文件系统完成。- 元数据
元数据(metadata):又称为解释性数据,记录数据的数据。
文件系统元数据一般指:文件大小、最后修改时间、底层存储位置、属性、所属用户、权限等信息。例如下方图片(windows中文件系统元数据):
适合场景:
- 大文件
- 数据流式访问
- 一次写入多次读取
- 低成本部署,廉价PC
- 高容错
不适合场景:
- 小文件
- 数据交互式访问
- 频繁任意修改
- 低延迟处理
- HDFS集群是标准的master/slave主从架构集群。
- 一般一个HDFS集群是有一个NameNode和一定数目的DataNode组成。
- NameNode是HDFS主节点,DataNode是HDFS从节点,两种角色各司其职,共同协调完成分布式的文件存储服务。
- 官方架构图中是一主五从模式,其中五个从角色位于两个机架上(Rack)的不同服务器上。
- HDFS的文件在物理上是分块存储(block)的,默认大小是128M,不足128M则本身为一块。
- 块的大小可以通过配置参数来规定,参数位于hdfs-default.xml中:dfs.blocksize。
- 文件的所有block都会有副本。副本系数可以在文件创建的时候指定,也可以在之后通过命令改变。
- 副本数由参数dfs.replication控制,默认值为3,也就是会额外复制2份,连同本身总共3个副本。
HDFS中,NameNode管理的元数据具有两种类型:
- 文件自身属性信息
文件名称、权限、修改时间、文件大小、复制因子、数据块大小
- 文件块位置映射信息
记录文件块和DataNode之间的映射信息,即哪个块位于哪个节点上。
hadoop fs -mkdir [-p] < path> …
path为待创建的目录
-p会沿着路径创建父目录
hadoop fs -ls [-h] [-R] < path> …
path为指定目录路径
-h为显示文件size更加人性化
-R递归查看指定目录及其子目录
hadoop fs -put [-f] [-p] < localsrc> < dst>
-f为覆盖目标文件
-p为保留访问和修改时间、所有权和权限
localsrc为本地文件系统路径文件
dst为HDFS文件系统路径
hadoop fs -cat < src>
读取指定文件的全部内容,显示在控制台。
注意:对于大文件内容读取,慎用。
hadoop fs -get [-f] [-p] < src> < localdst>
-f为覆盖目标文件
-p为保留访问和修改时间,所有权和权限。
hadoop fs -cp [-f] < src> < localdst>
-f为覆盖目标文件
hadoop fs -appendToFile < localdst> < dst>
将所有给定本地文件的内容追加到给定dst文件
dst文件如果不存在,将创建该文件
hadoop fs -mv < src> < dst>
移动文件到指定文件夹下
也可重命名文件
- NameNode仅存储HDFS的元数据:文件系统中所有文件的目录树,并跟踪整个集群中的文件,不存才实际数据。
- NameNode知道HDFS中任何给定文件的块列表及其位置。使用此信息NameNode知道如何从块中构建文件。
- NameNode不持久化存储每个文件中各个块所在的DataNode的位置信息,这些信息会在系统启动时从DataNode重建。
- NameNode是Hadoop集群中的单点故障。
- NameNode所在机器通常会配置大量内存(RAM)
- DataNode负责最终数据块block的存储。
- DataNode启动时,会将自己注册到NameNode并汇报自己持有的块列表。
- 当某个DataNode关闭时,不会影响数据的可用性。NameNode会将安排由其他DataNode管理的块进行副本复制。
- DataNode所在的机器通常配置有大量的硬盘空间,因为实际数据存储在DataNode中。
若没有配置机架感知,则随机机器
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。