为什么选择hadoop分布式存储方案作为存储

Hadoop数据存储 - CSDN博客
Hadoop数据存储
Hadoop数据存储
Hadoop能高效处理数据的基础是有其数据存储模型做支撑,典型的是Hadoop的分布式文件系统HDFS和HBase。
一、HDFS文件系统
1.0、 HDFS简介
HDFS是Hadoop的分布式文件系统的实现,它设计的目的是存储海量的数据,并为分布式在网络中的大量客户端提供数据访问。想成功的使用HDFS,就要其实现方式及工作原理。
1.1、HDFS架构
HDFS的设计思想基于Google File System。它的出现具有以下优势:
1、可以存储相比于nfs能存储的文件的量更大;
2、为在大量机器和文件系统之间传输数据而设计;
3、具有可靠的数据存储能力,并通过数据副本的方式处理集群中某台机器宕机或数据丢失的情况;
4、HDFS与Hadoop的MapReduce模型易于集成,因此,允许数据从本地读取和处理 。
但是HDFS为获得可扩展性和高性能而进行的设计也是有代价的,它的不足之处有: 1、HDFS 并非一个通用的应用程序,而是局限于某些特定的场景;
2、HDFS 优化了高速流数据读取性能,代价则是在随机读取性能上的削弱,因此要避免数据的随机读取,访问 HDFS 文件最好采取顺序读取的方式;
3、HDFS 只支持在文件上做少数的操作,但不包括任何更新操作;
4、HDFS 不提供数据的本地缓存机制。
HDFS被实现为一种块结构的文件系统。如图所示,在Hadoop中,单个文件被拆分为固定大小的块存储在Hadoop集群上。对于每个块保存在哪个DataNode上是随机的,其结果是,访问某个文件需要访问多个DataNode,也就是HDFS能存储的文件大小可以远超出单机的磁盘容量。
此图展示了HDFS的整体架构,HDFS 采用 master/slave 主从结构,NameNode节点存储了整个集群的文件系统的元数据信息,它管理着文件系统的的命名空间和客户端访问文件的过程,NameNode节点确保HDFS中的元数据在各个节点间保持一致。
1.2、SecondaryNameNode
HDFS的实现基于master/slave 主从架构。一方面极大的简化了HDFS的整体架构,但另一方面,这也变成了HDFS的一个弱点,即NameNode失效就意味着HDFS的失效。为缓解这个问题,Hadoop实现了SecondaryNameNode,但SecondaryNameNode不是一个“热备的NameNode”。它不能在NameNode失效后取代其功能,它为主NameNode提供检查点机制。除保存HDFS NameNode 的状态外,它还在磁盘上维护用于持久化存储当前文件系统状态的两个数据结构;这两个数据结构分别是一个镜像文件和一个编辑日志。镜像文件代表 HDFS 元数据在某个时间点的状态,在一个名为FsImage的文件中;而编辑日志是一个事务日志(与数据库体系结构中的日志相比),纪录了自镜像文件创建之后文件系统元数据的每一次更改,该日志保存在NameNode本地文件系统上的EditLog文件中。当主NameNode失效后,有部分元数据(以及对应的内容数据)会丢失,因为保存在编辑日志中的最新状态是不可用的,所有当主NameNode失效后是不能从SecondaryNameNode完全恢复主NameNode失效前的状态。
1.3、机架感知策略
机架是存储在单一位置的节点的实体集合.,一个大型的HDFS 实例在计算机集群上运行时,通常需要跨越多个机架,同一个机架上的机器节点之间的网络带宽比不同机架上的机器节点之间的网络带宽大,NameNode节点通过Hadoop的机架感知过程决定了每一个DataNode 所属的机架的ID,机架感知策略的一个优化方案就是减轻机架之间的写操作负载,为了最小化整体的带宽消耗和数据读取延迟,HDFS尝试让有读请求的客户端从最近的地方读取复制块。每一个DataNode节点会周期性的发送心跳信息给NameNode节点(如上图),如果DataNode节点失效, NameNode 将会通过不正常的心跳信息检测到。 NameNode如果规定时间内没有收到 DataNodes的心跳信息,就认为该DataNode节点已经失效,并不再发送任何的I/O请求给它们,和现在已有大部分的文件系统类似,HDFS 也支持传统分层的文件组织方式。
1.4、HDFS Federation 及高可用
为克服单个NameNode内存的限制,HDFS Federation是为了缓解HDFS的单点故障问题而提出的NameNode水平扩展方案,HDFS Federation 基于多个独立的NameNodes/Namespace。● HDFS Federation的优势:
1、命名空间的可扩展性: HDFS 集群的存储空间可以横向扩展,但Namespace不可以;
2、性能: 文件操作的性能局限于单个Namenode的吞吐量;3、隔离性: 单个 NameNode 节点不提供多个环境配置之间的隔离性。
HDFS Federation是基于独立的NameNode节点集合设计的,因此各NameNode节点之间不需相互协调.
该图展示了HDFS Federation的实现结构,namespace 作为数据块池,可以对数据块集合操作,每一个数据块池都各自独立,这就允许命名空间在为一个新的数据块分配ID时,不需要与其它命名空间进行协调。单个 NameNode节点的失效不会对集群中为其它NameNode服务的Datanode节点产生影响,当某个NameNode/namespace被删除,那对应的DataNode节点上的数据块池也会被删除,HDFS Federation 配置是后向兼容的,允许已经存在的单个NameNode节点不做任何改变继续工作。
如图所示展示了新的HDFS高可用架构,其中包含2台独立的配置为NameNodes的机器,其中一台必须时刻处于激活状态,活动状态的NameNode节点负责集群中所有的客户端操作,为了保证这两台机器的状态同步,需要两个节点对共同的存储设备享有同样的目录访问权利 。
1.5、HDFS的fs shell操作命令
HDFS作为一个分布式文件系统和Linux的文件系统一样,也具有类似的命令行接口,所有的命令都由 bin/hadoop 脚本引发,若不指定参数运行 Hadoop 脚本会打印所有命令的描述。
通用语法:
–config confidir 覆盖默认配置目录,
默认使用的配置是 $HADOOPHOME/conf 。
查看帮助信息命令:$HADOOPHOME/bin/hadoop fs –help
HDFS资源URI格式:scheme://authority/path
scheme:协议名,file或hdfs
authority:namenode主机名
path:路径
示例:hdfs://master:9000/user/chunk/input.txt
前提是已经在core-site.xml里配置了fs.default.name=hdfs://master:9000,则仅使用/user/chunk/input.txt即可。
hdfs默认工作目录为/user/USER,USER是当前的登录用户名。
具体的 HDFS fs shell 常用命令:
命令格式:hadoop&fs&-cat&URI&
将路径指定文件的内容输出到stdout。
例如:hadoop&fs&-cat&hdfs://master:port/file1
hadoop&fs&-cat&file:///data/port-00000
成功返回0,失败返回-1。
2、ls命令格式:hadoop&fs&-ls&&args&如果是文件,则按照如下格式返回文件信息:文件名&&副本数&&文件大小&修改日期&修改时间&权限&用户ID&组ID&如果是目录,则返回它直接子文件的一个列表,就像在Unix中一样。目录返回列表的信息:目录名&&dir&&修改日期&修改时间&权限&用户ID&组ID&
3、chgrp命令格式:hadoop&fs&-chgrp&&GROUP&URI&&
改变文件所属的组。使用-R将使改变在目录结构下递归进行。命令的使用者必须是文件的所有者或者超级用户。
4、chmod命令格式:hadoop&fs&-chmod&&&MODE…&|&OCTALMODE&&URI&改变文件的权限。使用-R将使改变在目录结构下递归进行。命令的使用者必须是文件的所有者或者超级用户。
5、chown命令格式:hadoop&fs&-chown&&]&URI&改变文件的拥有者。使用-R将使改变在目录结构下递归进行。命令的使用者必须是超级用户。
6、copyFromLocal命令格式:hadoop&fs&-copyFromLocal&&localsrc&&URI除了限定源路径是一个本地文件外,和put命令相似。7、copyToLocal命令格式:hadoop&fs&-copyToLocal&&&URI&&localdst&除了限定目标路径是一个本地文件外,和get命令类似。8、cp命令格式:hadoop&fs&-cp&URI&&&dest&将文件从源路径复制到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。
例如:hadoop&fs&-cp&/user/hadoop/file1&/user/hadoop/file2 hadoop&fs&-cp&/user/hadoop/file1&/user/hadoop/file2&/user/hadoop/dir返回值:成功返回0,失败返回-1。
9、du命令格式:hadoop&fs&-du&URI&显示目录中所有文件的大小,或者当只指定一个文件时,显示此文件的大小。
返回值:成功返回0,失败返回-1。
10、expunge命令格式:hadoop&fs&-expunge清空回收站。
11、get命令格式:hadoop&fs&-get&&&&src&&&localdst&&复制文件到本地文件系统。可用-ignorecrc选项复制CRC校验失败的文件。使用-crc选项复制文件以及CRC信息。
12、put使用方法:hadoop&fs&-put&&localsrc&&…&&dst&从本地文件系统中复制单个或多个源路径到目标文件系统。也支持从标准输入中读取输入写入目标文件系统。
13、getmerge(合并多个文件下载到本地)命令格式:hadoop&fs&-getmerge&&src&&&localdst&&接受一个源目录和一个目标文件作为输入,并且将源目录中所有的文件连接成本地目标文件。addnl是可选的,用于指定在每个文件结尾添加一个换行符。
14、mkdir命令格式:hadoop&fs&-mkdir&&paths&&接受路径指定的uri作为参数,创建这些目录。其行为类似于Unix的mkdir&-p,它会创建路径中的各级父目录。
15、mv命令格式:hadoop&fs&-mv&URI&&&dest&将文件从源路径移动到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。不允许在不同的文件系统间移动文件。
16、rm命令格式:hadoop&fs&-rm&URI&删除指定的文件。只删除非空目录和文件。请参考rmr命令了解递归删除。
rmr命令格式:hadoop&fs&-rmr&URI&delete的递归版本。17、touchz命令格式:hadoop&fs&-touchz&URI&&创建一个0字节的空文件。
为了克服诸多局限,Hadoop以HBase的形式引入了一个更加灵活的数据存储和访问模型。HBase是一个分布式的、版 本化的、面向列的、多维度 的存储系统,在设计上具备高性能和高可用性。
2.1、HBase架构
HBase是Google BigTable架构的开源实现。与传统的关系型数据库管理系统类似,Hbase中也是以表的形式组织数据。HBase 支持非常松散的结构定义,但不支持任何表连接joins、查询语言或 SQL操作,HBase主要是在大稀疏表上做Create, Read, Update, and Delete (CRUD) 操作。大多数基于HBase的实现都在使用高度非结构化数据,与HDFS相似,HBase 也是以 master-slave 结构实现。HBase 利用 HDFS 来持久化数据存储,这意味着 HBase 具有 HDFS 提供的很多优势,包括校验,数据复制,和容错。
HBase数据管理由分布式的域服务器(region Server)实现,域服务器由HBase主控服务器 (HMaster)进行管理,该图是HBase的架构图。
<img src="http://img.blog.csdn.net/49823" alt="" title="">
region server的实现主要包含以下组件:
memstore 是 HBase内存中数据的缓存实现,它通过直接从内存提供尽可能多的数据来提升HBase的整体性能;HFile是HBase专用的HDFS文件格式,域服务器中的HFile的实现主要负责从HDFS读取 HFile,以及将HFile写入HDFS。 o 为了保存任意长度的表, HBase 将表格划分成域(regions), 每个域中包含已排序(根据主键)的,范 围连续的行。regions 的切分方式不取决于key space, 而是取决于数据量,当向表中插入一条新纪录时, HBase 决定(基于键值)该记录应该分配到哪个 region server 并在该域插入那条记录,如果 region的大小超出了预先定义的值,那么它会自动分裂,当一条记录(或一个记录集合) 被读取/更新, HBase 会决定哪个regions 应该存储该记录,并指引 客户端去访问合适的那个region。
下图展示了HBase 利用特殊的表设计来解决region server中特殊的key-table pair的存储问题。
<img src="http://img.blog.csdn.net/17257" alt="" title="">
2.2、HBase结构设计
设计 HBase 的表结构时, 应该考虑如下几个方面:
o Get 或 Scan操作是基于行键(row key)的;o 列族名会显式地与每个列名保存在一起;o 在高而窄和扁而宽的设计之间进行选择时,推荐使用前者;o 设计的主要优势之一是在多台域服务器之间分布式地执行请求;
以下是一些特殊的行键设计模式:
o键“盐化(salting)”—这意味着为顺序键添加一个随机值前缀,允许将顺序键“分桶”到多个域中; o键字段的交换/提升(例如“反转域名”) ; o键的完全随机化 。
2.3、HBase的shell常用命令
这个不多说,都懂。
2、对表的管理
查看都有哪些表存在;
语法:create &table&, NAME =& &family&, VERSIONS =& &VERSIONS&
例如:创建表t1,有两个family name:f1,f2,且版本数均为3
create 't1',NAME =& 'f1', VERSIONS =& 2,NAME =& 'f2', VERSIONS =& 2
两步走,首先disable,再drop掉;
4)查看表的结构
语法:describe &table&
5)修改表结构
修改表结构必须先disable,修改后再enable回来就OK了;
语法:alter 't1', NAME =& 'f1', NAME =& 'f2', METHOD =& 'delete'
3、权限管理
1)查看权限
语法:userpermission &table&
2)分配权限
语法 : grant &user& &permissions& &table& &column family& &column qualifier& 参数后使用逗号分隔
权限用五个字母表示: "RWXCA”,READ('R'), WRITE('W'), EXEC('X'), CREATE('C'), ADMIN('A')
例如,给用户‘test'分配对表t1有读写的权限,grant 'test','RW','t1'
3)回收权限
语法:revoke &user& &table& &column family& &column qualifier&
例如,收回test用户在表t1上的权限,hbase(main)& revoke 'test','t1'
4、表数据的增删改查
1)添加数据
语法:put &table&,&rowkey&,&family:column&,&value&,&timestamp&
例如:给表t1的添加一行记录:rowkey是rowkey001,family name:f1,column name:col1,value:value01,timestamp:系统默认
put 't1','rowkey001','f1:col1','value01'
2)查询数据a)查询某行记录
语法:get &table&,&rowkey&,
例如:查询表t1,rowkey001中的f1下的col1的值
get 't1','rowkey001', 'f1:col1'
get 't1','rowkey001', COLUMN=&'f1:col1'
查询表t1,rowke002中的f1下的所有列值
get 't1','rowkey001'
语法:scan &table&, COLUMNS =& , LIMIT =& num
例如:扫描表t1的前5条数据
hbase(main)& scan 't1',LIMIT=&5
c)查询表中的数据行数
语法:count &table&, INTERVAL =& intervalNum, CACHE =& cacheNum
INTERVAL设置多少行显示一次及对应的rowkey,默认1000;CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度
例如,查询表t1中的行数,每100条显示一次,缓存区为500
count 't1', INTERVAL =& 100, CACHE =& 500
3)删除数据a )删除行中的某个列值
语法:delete &table&, &rowkey&,& &family:column& , &timestamp&,必须指定列名
例如:删除表t1,rowkey001中的f1:col1的数据
delete 't1','rowkey001','f1:col1'
注:将删除改行f1:col1列所有版本的数据b )删除行
语法:deleteall &table&, &rowkey&,& &family:column& , &timestamp&,可以不指定列名,删除整行数据
例如:删除表t1,rowk001的数据
deleteall 't1','rowkey001'
c)删除表中的所有数据
语法: truncate &table&
其具体过程是:disable table -& drop table -& create table
例如:删除表t1的所有数据
truncate 't1'
三、HDFS 和 HBase 的结合
HDFS 采用顺序读取方式访问数据,并具有海量数据的存储能力,然而Hbase则以数据的快速随机访问能力见长,HBase 并不适用于非常大的数据量。HDFS 通过MapFiles文件类型提供了快速访问特殊文件类型的机制,然而并不能随着key的数 量增长得到比较好的扩展。结合HDFS和Hbase各种的优势可以解决这些类型的问题,解决的方法是创建一个包含大量数据条目的SequenceFile,HDFS 和 HBase 都将数据视为二进制流, 这意味着借助于这些存储机制实现的大部分应用程序必须使用某种形式的二进制封装,一种这样的封装机制是 Apache Avro。
四、选择合适的Hadoop数据组织方式
在Hadoop中,所有应用程序设计的重要一环是选择合适的数据存储方式,我们来讨论一些情境:数据只被 MapReduce模型访问时:
o如果数据只被MapReduce模型实现的应用程序访问, HDFS 是最佳方案;
o至于文件格式, SequenceFiles 是采用MapReduce 模型处理的最佳选项;
o 应用程序的实际分区模式取决于数据的使用模式;o 通用的方法是评估数据计算请求的数量设计合适的分区模式。
当新数据产生时:
o如果数据的计算结果需要更新时,那么应该考虑一种新的数据存储设计方案;
oHadoop唯一支持更新存储机制的组件是Hbase;
o所以,如果MapReduce 计算结果需要更新数据,HBase就是你数据存储的最好方案。
当数据量超级大时:
o当数据量超级大时,HBase 并不是最好的选择;
o这种情况下, 典型的解决方案是 HBase/HDFS 结合使用;
oHDFS 存储实际的数据, HBase 负责存储数据的索引文件。
实时访问数据时:
如果要对数据进行实时访问, 根据数据量的大小, Hadoop 提供了几种解决方案;如果数据的 key space 相对较小而且数据不经常改变, SequenceFiles 是一个非常不错的选择。对于较大 key spaces 和有数据更新需求的情况, HBase 或者 HBase/HDFS 联合使用是很合适的解决方案,选择合适的数据存储方案时,安全性也是必须要考虑的方面。不管是 HDFS 还是 HBase 都需要应用级或特定的企业级解决方案来确保数据的安全性。
例如,下面这些方法可能会被经常用到:
o 数据加密;
o 定制防火墙 ;
o 定制服务层 。
注:版权归作者所有,转载请标明来源。
参考资料:《Hadoop高级编程》
网易云课堂大数据微专业
《Hadoop核心技术》
《Hadoop权威指南》
HBase shell操作参考链接:
本文已收录于以下专栏:
相关文章推荐
当今信息化时代充斥着大量的数据。海量数据存储是一个必然的趋势。然而数据如何的存储和查询,尤其是当今非结构化数据的快速增长,对其数据的存储,处理,查询。使得如今的 关系数据库存储带来了巨大的挑战。分布存...
对于一般文件,都有满足随机读写的api。而hadoop中的读api很简单用FSDataInputStream类就可以满足一般要求,而hadoop中的写操作却是和普通java操作不一样。
一、使用hadoop shell命令导入和导出数据到HDFS
→1、创建新目录:hadoop fs -mkdir /data/logs/
→2、从本地复制到HDFS...
Hadoop中HDFS的存储机制
HDFS(Hadoop Distributed File System)是Hadoop分布式计算中的数据存储系统,是基于流数据模式访问和处理超大文件的需求而开发的。...
Hadoop是一个分布式计算基础设施,它包含一系列相关的子项目,这些项目都隶属于Apache软件基金会(ASF)。ASF为这些开源社区项目提供支持。Hadoop里最著名的是MapReduce和分布式文...
HDFS中的数据都是分块存储的,默认块大小为64M,这个值可以从hdfs配置文件中更改dfs.blocksize。这样分快处理的好处是可以增加读取数据的吞吐量,因为可以同时从读取文件的不同分块。
Hadoop平台架构--存储篇
By&#160;whoami
&#160;发表于
1.&#160;简介2.&#160;走向分布式3.&#160;存储规划4.&#160;HDFS目录规划
4.1.&#160;linux...
Hadoop平台架构--存储篇
Jan 25, ;|&#160;hadoop
刚刚开始使用Hadoop集群的时候,目录没有有个规范,大家都根据自己的喜好
创建各种不同的目录,权...
&#160;* LeaseManager does the lease housekeeping for writing on files. &#160;&#160;
&#160;* This class also provide...
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)比特客户端
您的位置:
详解大数据
详解大数据
详解大数据
详解大数据
如何更好使用外部存储以适合Hadoop?
  使用驱动大规模数据的分析并不一定意味着构建的集群,一台好的旧阵列可能是一个更好的选择。
  Hadoop的最初的架构设计是以横向扩展的方式使用相对便宜的商品及其本地。Hadoop的最初目标是对数据进行符合成本效益的开发利用,这在以前是行不通的。我们都听说过大规模数据量、大规模数据类型、大规模数据速度等用于描述这些以前难以处理的数据集的词语。考虑到定义如此广泛的目标,大多数公司指出他们打算开发利用的某类大规模数据。
  大规模数据每天不断膨胀,存储厂商凭借其相对昂贵的和网络附加存储(network attached storage,)系统,开始参加大规模数据的派对。它们不能把所有这些数据留给往机箱里塞商品的服务器厂商。尽管采用Hadoop仍处于早期阶段,但是竞争和混乱的营销鼓噪甚嚣尘上。
  高级别Hadoop和HDFS 在Hadoop的横向扩展设计中,集群的每个物理节点都托管了本地计算和数据共享;旨在支持经常需要穿越大规模数据集的应用程序,例如搜索。
  Hadoop的很多价值在于:它对横向扩展的集群中的分布式数据块有效地执行并行算法(parallel algorithm)的方式。
  Hadoop由基于MapRduce的一个计算引擎和一个名为Hadoop 分布式文件系统(Hadoop Distributed File System,HDFS)的数据服务组成。Hadoop利用数据的高度“局部性”(locality),使用HDFS把大规模数据集散布到很多节点上,把并行的计算任务托付到每一个数据节点(即MapReduce的“映射”(map)部分),随后进行各种各样的重排和整理合并的步骤而得出结果。(即“规约”(reduce)部分)
  通常,每个HDFS数据节点将派使用DAS。然后HDFS将向所有的数据节点复制数据,通常在不同的数据节点上生成两到三份的拷贝。复制的数据被放在不同的服务器节点上,而第二份复制的数据则放在不同的节点“机架”上,以避免机架级别的损失。
  显然,复制比占用了更多的原始容量,但是它也具备一些优势,例如避免重建窗口。
  为什么使用级存储?
  因此,如果HDFS以一种源于MapReduce式的处理方法轻易地处理了数据集的最大部分,使用相对便宜的本地磁盘并提供内置的“架构感知”复制,为什么要考虑使用企业级存储?举例来说,在HDFS元数据服务器节点中仍然有潜在的漏洞。尽管每一个版本的Hadoop在HDFS可靠性方面都做了改善,但是把HDFS元数据服务器用于更可靠的基于RAID的存储仍有争议。
  备份、保护或者审计本机HDFS并非易事。当然,NAS和SAN内置了极好的数据保护和。
  把外部共享存储用于大批数据有很多IT方面的原因。首先,尽管Hadoop可以横向扩展处理多个PB的数据,但是大多数大规模数据集很可能只有10TB到50TB的幅度。几个TB大小的传统的数据集几乎等于零处理,但恰好在横向扩展的SAN和NAS解决的成本效益范围之内。那些共享数据集对公司现有业务流程而言通常是不可或缺的,相对于HDFS,在企业级存储上可以地被控制、管理和集成。
  尽管有用于Hadoop生态系统的具备安全意识的部件(例如Sentry和Accumulo),数据安全和数据保护是考虑使用外部存储的其它主要原因。备份、保护或者审计本机HDFS并非易事。当然,NAS和SAN内置了极好的数据保护和快照。
  使用外部企业级存储的时候,一款高可用的Hadoop应用程序(由于Hadoop逐步形成实时查询和流分析功能而变得越来越普遍)可能永远无法知道磁盘故障已经出现。
  用外部存储构建Hadoop,你不仅可以把存储管理分开,也可以利用独立的“增长的载体”(vectors of growth)。毋须增加其它多余的资源就可以容易地增加存储或者计算。由于与Hadoop的“总量”(gross)复制相比企业级RAID解决方案将使用较少的磁盘占用空间,因此也有成本支出方面的优势。
  把Hadoop横向扩展节点部署为虚拟机允许按需配置,并轻易地扩展或缩小集群。
  共享是外部存储的制胜之道,因为把大规模数据移进和移出Hadoop集群具有挑战性。使用外部存储的时候,多个应用程序和用户可以通过不通的客户端访问相同的“主”数据集,甚至在其正在被Hadoop应用程序使用的时候进行更新和写数据。
  Hadoop 在虚拟化的Hadoop的场景中,外部存储也具有优势。我们预计这将成为在企业中部署Hadoop的常用方法。把Hadoop横向扩展节点部署为虚拟机允许按需配置,并轻易地扩展或缩小集群。
  多个虚拟Hadoop节点可以被托管到每个虚拟机管理程序,并可以轻易地为指定的应用程序分配更多或者更少的资源。虚拟机管理程序级别的高可用(high-availability ,H/A)/容错功能可以被用于生产级别的Hadoop应用程序。性能是一个担心,但是更多的资源可以被动态地应用到需要的地方,为某些Hadoop应用程序提供即便不是优越也是对应的性能。
  虚拟地存放大规模数据 考虑物理Hadoop架构的一个令人信服的理由是避免昂贵的SAN,尤其当数据集越来越大的时候。然而,在虚拟环境中,考虑外部存储可能更适合。一个原因是精简仅限于计算的虚拟Hadoop集群相当简单,但是,散发大规模数据集仍将是一项挑战。通过把数据托管到外部共享存储,精简虚拟Hadoop的托管就变得几乎无关紧要了,而DRS和HA之类的虚拟机管理程序的功能可以得到充分利用。
  由于单个大规模数据集可以轻易地在多个虚拟化的Hadoop集群中被“恰当地”分享,因此有机会以相同的存储为多个客户端提供服务。通过消除数据集的多个拷贝,减少数据迁移的总量,并确保更高的可用性和数据保护,作为一款企业级生产级别的应用程序的Hadoop变得更可管理,并轻易地获得支持。在较少但相对更贵、存储选项更贵的虚拟虚拟化Hadoop的TCO仍然会比坚持使用专门的商品服务器物理集群的要低。
  如何使用才是关键
  默认的DAS选项相比,外部存储更昂贵,但是这只是与存放数据有关的平衡账目的“其它”事情而已。关于使用外部存储的决定必须以TCO为基础,包括同时考虑数据集的传入来源和端到端的工作流。其它工作负载可能可以有效地共享一个单一的数据资源库,而现有的资产和技能也可以被利用。另外,高端存储的摄入、性能、容量或者可伸缩性可能有限制。
[ 责任编辑:杨瑗嘉 ]
去年,手机江湖里的竞争格局还是…
甲骨文的云战略已经完成第一阶段…
软件信息化周刊
比特软件信息化周刊提供以数据库、操作系统和管理软件为重点的全面软件信息化产业热点、应用方案推荐、实用技巧分享等。以最新的软件资讯,最新的软件技巧,最新的软件与服务业内动态来为IT用户找到软捷径。
商务办公周刊
比特商务周刊是一个及行业资讯、深度分析、企业导购等为一体的综合性周刊。其中,与中国计量科学研究院合力打造的比特实验室可以为商业用户提供最权威的采购指南。是企业用户不可缺少的智选周刊!
比特网络周刊向企业网管员以及网络技术和产品使用者提供关于网络产业动态、技术热点、组网、建网、网络管理、网络运维等最新技术和实用技巧,帮助网管答疑解惑,成为网管好帮手。
服务器周刊
比特服务器周刊作为比特网的重点频道之一,主要关注x86服务器,RISC架构服务器以及高性能计算机行业的产品及发展动态。通过最独到的编辑观点和业界动态分析,让您第一时间了解服务器行业的趋势。
比特存储周刊长期以来,为读者提供企业存储领域高质量的原创内容,及时、全面的资讯、技术、方案以及案例文章,力求成为业界领先的存储媒体。比特存储周刊始终致力于用户的企业信息化建设、存储业务、数据保护与容灾构建以及数据管理部署等方面服务。
比特安全周刊通过专业的信息安全内容建设,为企业级用户打造最具商业价值的信息沟通平台,并为安全厂商提供多层面、多维度的媒体宣传手段。与其他同类网站信息安全内容相比,比特安全周刊运作模式更加独立,对信息安全界的动态新闻更新更快。
新闻中心热点推荐
新闻中心以独特视角精选一周内最具影响力的行业重大事件或圈内精彩故事,为企业级用户打造重点突出,可读性强,商业价值高的信息共享平台;同时为互联网、IT业界及通信厂商提供一条精准快捷,渗透力强,覆盖面广的媒体传播途径。
云计算周刊
比特云计算周刊关注云计算产业热点技术应用与趋势发展,全方位报道云计算领域最新动态。为用户与企业架设起沟通交流平台。包括IaaS、PaaS、SaaS各种不同的服务类型以及相关的安全与管理内容介绍。
CIO俱乐部周刊
比特CIO俱乐部周刊以大量高端CIO沙龙或专题研讨会以及对明星CIO的深入采访为依托,汇聚中国500强CIO的集体智慧。旨为中国杰出的CIO提供一个良好的互融互通 、促进交流的平台,并持续提供丰富的资讯和服务,探讨信息化建设,推动中国信息化发展引领CIO未来职业发展。
IT专家新闻邮件长期以来,以定向、分众、整合的商业模式,为企业IT专业人士以及IT系统采购决策者提供高质量的原创内容,包括IT新闻、评论、专家答疑、技巧和白皮书。此外,IT专家网还为读者提供包括咨询、社区、论坛、线下会议、读者沙龙等多种服务。
X周刊是一份IT人的技术娱乐周刊,给用户实时传递I最新T资讯、IT段子、技术技巧、畅销书籍,同时用户还能参与我们推荐的互动游戏,给广大的IT技术人士忙碌工作之余带来轻松休闲一刻。
微信扫一扫
关注Chinabyte

我要回帖

更多关于 hadoop 数据存储 的文章

 

随机推荐