JobPlus知识库 IT 大数据 文章
新时代新模式,Hadoop与大数据的关系你了解多少

相信了解过大数据的都听过这个预测:到2020年,电子数据存储量将在2009年的基础上增加44倍,达到35万亿GB。根据IDC数据显示,截止到2010年,这个数字已经达到了120万PB,或1.2ZB。如果把所有这些数据都存入DVD光盘,光盘高度将等同于从地球到月球的一个来回也就是大约 480,000英里。所以,如此巨大的数据就决定了未来各个领域对于其的关注度还将不断的增加,而关于大数据与hadoop二者之间的关系就更值得研究。

       Hadoop实际上不是一个文件系统,实际上,它是一个软件框架,支持数据密集型分布式应用程序,在与MapReduce在一起协同工作的时候,Hadoop可以成为一个针对数据密集型应用程序的非常有效的解决方案。

       Hadoop File System(HDFS:Hadoop文件系统)是一个发端于谷歌文件系统(GFS:Google File System)的开源文件系统。但是,GFS是谷歌专用的。Hadoop是用Java编写的,是一个分布式文件系统,是真正的元文件系统——换句话说,是一个可以作用于底层文件系统顶端的文件系统。它的设计旨在成为一个容错的文件系统,让数据的副本可以存储在文件系统内不同的地点上,因此从错误的数据副本或宕机的服务器中恢复数据就变得相当容易。不过,这些副本也可以用于改善性能。

       Hadoop的基本构建块就是所谓的“datanode”(数据节点)。这是一个一台服务器与一些存储和网络的组合。存储通常是服务器内部的或直接连接到服务器的存储(DAS)。每个datanode使用专门的面向HDFS的块协议来在网络(以太网)上提供数据。一定数量的datanode分布在多 个机架上,而每个datanode可以通过它所在机架被部分识别。Hadoop还有元数据服务器,即所谓的“Namenode”(命名节点)。 Namenode同时也是HDFS的管理节点。此外,HDFS还有二级Namenode,不过它不是故障复原元数据服务器,而是用于其他文件系统任务,比 如快照主Namenode的目录信息以帮助减少宕机时间——如果一个Namenode发生故障的话。由于只有一个Namenode,它可能会成为一个潜在 的瓶颈或HDFS的单故障点。

       HDFS的一个重要特点就是数据复制到多个datanode上以帮助提高弹性。HDFS缺省情况下会将三个数据副本存储在不同的datanode 上。两个副本是在同一个机架上,另一个在不同的机架上(因此,即使一个机架坏了,你还可以访问你的数据)。你可以在那些拥有所需数据的datanode上 ——缺省情况下拥有数据副本的三个datanode之一——运行制定好的任务(注意,这些datanode在存储数据和提供数据的同时也可以运行任务)。

       这就是许多人所指的:“将任务移到数据上,而不是将数据移到任务上”。这样做可以减少数据迁移,减少网络负担,因为数据不用迁移来迁移去以运行任 务。一旦任务开始运行,所有的数据访问都是本地进行的,因此不需要datanode条带化或使用多个数据服务器来满足并行数据访问。Hadoop的并行性 体现在应用程序的性能上,同一个应用程序的多个副本可以被同时运行并访问不同的数据集。此外,由于你有三个数据副本,你可以在同一时间运行三个人物来访问 同一个文件,因此性能也得到了改善。

       在后端,datanode可以和其他datanode通信,使用RPC(远程过程调用)来执行一系列任务:在遵守数据复制规定的前提下,实现datanode之间的容量均衡;互相之间比较文件,以便用正确的副本覆盖损坏的文件副本;检查数据副本的数量,如果必要,增加额外副本;需要注意的是HDFS不是一个POSIX(可移植操作系统接口)兼容文件系统,这主要是因为性能可以提高。

       如果你使用Java API(应用程序编程接口)、Thrift API、命令行界面或在HTTP上通过HDFS-UI界面浏览,在HDFS中访问数据还是相当简单的。除了这个,在操作系统上直接载入HDFS是不行的。唯一的解决方案是使用Linux FUSE客户端来加载文件系统。

       Hadoop的具体应用有很多,很多行业如今都将hadoop作为开展企业大数据布局的一个基础。所以无论是还为实行大数据建设的企业、还是在学习大数据开发的学员,都希望你们能总是hadoop的影响,毕竟hadoop在未来的影响力还将不断扩大。


如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

¥ 打赏支持
115人赞 举报
分享到
用户评价(0)

暂无评价,你也可以发布评价哦:)

扫码APP

扫描使用APP

扫码使用

扫描使用小程序