Hadoop学习(二)——HDFS简介
Hadoop提供了一个被称为HDFS的分布式文件系统的实现。HDFS是Hadoop系统的基础层,主要负责数据的存储、管理和容错处理,设计思想来源于Google的GFS(Google File System)文件系统。HDFS是一个运行在普通的硬件之上的分布式文件系统,它和现有的分布式文件系统有着很多的相似性,然而和其他分布式文件系统的区别也很明显:HDFS是高容错性的,可以部署在低成本的硬件之上;HDFS提供高吞吐量以应对应用程序数据访问,适合大数据集的应用程序;HDFS放开一些POSIX的需求去实现流式地访问文件数据;HDFS最初是为开源的Apache项目Nutch的基础结构而创建;HDFS是Hadoop项目的一部分。
HDFS的特点
- HDFS认为硬件出现错误是经常发生的事情。HDFS部署在由廉价机器组成的集群中,整个集群中可能会有非常多的机器结点,结点的故障也是不可避免的,这种情况下,HDFS必须保证某些结点故障时,整个集群的工作不会受到影响。
- HDFS支持超大规模的数据集。
- HDFS采用“一次写入多次读取”的文件访问模型。HDFS简化了传统的文件访问模型,它假定当一个文件被创建、写入并关闭后就不会被修改了。
- HDFS提供了类似于流式的数据访问模式。并不是标准的流式,而是将数据以较小的数据包的形式进行传输,提供数据方法的吞吐量。
- HDFS提供了很强的容错处理能力。HDFS将大文件分割成很多文件块分开存储,并采用了完全备份的策略,每个文件块的副本数量最少是3个。
- HDFS具有很强的系统扩展性。HDFS可以动态的向集群中添加或者从集群中撤出结点。
- HDFS具有良好的平台移植性。由于HDFS是用Java语言开发的,所以它可以运行在Linux、Windows的等操作系统上,具有很好的可移植性。
HDFS文件系统架构
HDFS系统架构采用主从架构,整个集群由一个NameNode、一个SecondNameNode和若干个DataNode组成。NameNode是一个中心服务器,负责管理整个文件系统的命名空间元数据和客户端对文件的访问。SecondNameNode是NameNode的备份结点,定期对NameNode上的系统信息文件进行备份。一般情况下,一个结点运行一个DataNode,主要负责存储用户数据,并在NameNode的控制下进行数据的读写和出错处理。在HDFS内部,一个文件会被分隔成一个或多个Block,这些Block存储在DataNode上。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
深入 HBase 架构解析(2)
前言 这是《深入HBase架构解析(1)》的续,不多废话,继续。。。。 HBase读的实现 通过前文的描述,我们知道在HBase写时,相同Cell(RowKey/ColumnFamily/Column相同)并不保证在一起,甚至删除一个Cell也只是写入一个新的Cell,它含有Delete标记,而不一定将一个Cell真正删除了,因而这就引起了一个问题,如何实现读的问题?要解决这个问题,我们先来分析一下相同的Cell可能存在的位置:首先对新写入的Cell,它会存在于MemStore中;然后对之前已经Flush到HDFS中的Cell,它会存在于某个或某些StoreFile(HFile)中;最后,对刚读取过的Cell,它可能存在于BlockCache中。既然相同的Cell可能存储在三个地方,在读取的时候只需要扫瞄这三个地方,然后将结果合并即可(Merge Read),在HBase中扫瞄的顺序依次是:BlockCache、MemStore、StoreFile(HFile)。其中StoreFile的扫瞄先会使用Bloom Filter过滤那些不可能符合条件的HFile,然后使用Block Inde...
- 下一篇
hive对有特殊值null的数据倾斜处理
对有特殊值的数据倾斜处理 SET mapred.reduce.tasks=20; SET hive.map.aggr=TRUE; SET hive.groupby.skewindata=TRUE; SET hive.optimize.skewjoin=TRUE; set hive.auto.convert.join=false; INSERT OVERWRITE TABLE HIS_RFD_SYMID_RESULT PARTITION(tid='wcj01') SELECT aa.MAC,aa.phoneNo,bb.member_type,bb.xx_mid FROM ( SELECT mr.MAC,phoneNo FROM MAC_RFD_RESULT_VALUES mr WHERE mr.tid = 'wcj01') aa LEFT OUTER JOIN ( SELECT mac,mobile,member_type,xx_mid FROM member m WHERE m.id >= 'wcj01' AND m.id <= 'wcj01}' AND m.mo...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7设置SWAP分区,小内存服务器的救世主
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Hadoop3单机部署,实现最简伪集群
- MySQL8.0.19开启GTID主从同步CentOS8