数据太大?你该了解Hadoop分布式文件系统

大数据时代来了。当所有人都争吵着这件事情的时候,当所有企业都看好大数据的发展前景的时候,却都很少关注这些数据从哪儿来,我们有没有足够优秀的技术能力处理这些数据。

联网设备增加 数据量随之上升

网络的发展无疑为我们迎接大数据时代、智能计算时代铺好了路。根据研究公司的预测,全球联网设备正在增加,在部分国家,人均联网设备早已超过2台;如此大量的联网设备和不断提高的网络速度都在让社会的数据量快速增长,智慧城市、平安城市的实现也是以视频监控等视频数据为基础,成为大数据时代的重要组成部分。

机器人、AI、机器学习的研究让数据成为未来辅助我们生活的必要因素,无人车、机器人快递等形式的出现, 一方面体现了数据价值,另一方面也是在不断收集数据,反哺数据分析和应用。

数据体量太大 谁来处理?

数据产生后,意味着数据的采集工作已经完成,那么数据的输入与有效输出问题怎么破解?

自大数据时代到来之后,分布式存储、大文件的读写都成为热点话题,如何应对越来越多的大文件存储、分析与检索,成为企业需要攻克的难题。

而Hadoop的原型要从2002年开始说起。Hadoop的雏形始于2002年的Apache的Nutch,Nutch是一个开源Java 实现的搜索引擎。而后根据谷歌发表的学术沦为谷歌文件系统(GFS),实现了分布式文件存储系统名为NDFS。而后又根据Google发表的一篇技术学术论文MapReduce,在Nutch搜索引擎实现了用于大规模数据集(大于1TB)的并行分析运算。最后,雅虎雇用了Doug Cutting,Doug Cutting将NDFS和MapReduce升级命名为Hadoop,HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)就此形成。

应该说Hadoop是针对大数据而存在的,HDFS能够提供高吞吐量的数据访问,适合有着超大规模数据集的应用程序。我们可以在Hadoop的设计中看到三大特点:适用于存储超大文件、适合运行在普通廉价的服务器上,同时,最搞笑的访问模式是一次写入、多次读取。

当然,HDFS也存在一些弊端,比如说不适用于有低延迟要求的应用场景。因为Hadoop是针对大数据传输的存在,是为高数据吞吐量应用而设计,这导致其必然要以高延迟作为代价。同时HDFS分布式存储不适用于小文件传输,在大量小文件传输过程中,namenode的内存就吃不消了。

Hadoop概念科普

在了解了Hadoop的身世和现在适合的应用场景之后,笔者要跟大家科普一下Hadoop的基础架构和主要概念。

NameNode:namenode负责管理文件目录、文件和block的对应关系以及block和datanode的对应关系。这是由唯一一台主机专门保存,当然这台主机如果出错,NameNode就失效了,需要启动备用主机运行NameNode。

DataNode:负责存储,当然大部分容错机制都是在datanode上实现的。分布在廉价的计算机上,用于存储Block块文件。

MapReduce:通俗说MapReduce是一套从海量·源数据提取分析元素最后返回结果集的编程模型,将文件分布式存储到硬盘是第一步,而从海量数据中提取分析我们需要的内容就是MapReduce做的事了。

Block:也叫作数据块,默认大小为64MB。每一个block会在多个datanode上存储多份副本,默认是3份。

Rack:机柜,一个block的三个副本通常会保存到两个或者两个以上的机柜中。

本文转自d1net(转载)

时间: 2024-10-29 22:38:21

数据太大?你该了解Hadoop分布式文件系统的相关文章

解决持久化数据太大,单个节点的硬盘无法存储的问题;解决运算量太大,单个节点的内存、CPU无法处理的问题

需要学习的技术很多,要自学新知识也不是一件容易的事,选择一个自己比较感兴趣的会是一个比较好的开端,于是,打算学一学分布式系统. 带着问题,有目的的学习,先了解整体架构,在深入感兴趣的细节,这是我的计划. 首先得有问题,如果每日重复相同的工作,也不主动去学习,很难发现新的问题.不怕自己无知,就怕不知道自己无知,只有不断的学习,才会发现更多未知的知识领域! 带着问题出发 回到顶部 分布式要解决什么问题呢?解决持久化数据太大,单个节点的硬盘无法存储的问题:解决运算量太大,单个节点的内存.CPU无法处理

《Hadoop实战手册》一第1章 Hadoop分布式文件系统——导入和导出数据

第1章 Hadoop分布式文件系统--导入和导出数据 Hadoop实战手册 本章我们将介绍: 使用Hadoop shell命令导入和导出数据到HDFS 使用distcp实现集群间数据复制 使用Sqoop从MySQL数据库导入数据到HDFS 使用Sqoop从HDFS导出数据到MySQL 配置Sqoop以支持SQL Server 从HDFS导出数据到MongoDB 从MongoDB导入数据到HDFS 使用Pig从HDFS导出数据到MongoDB 在Greenplum外部表中使用HDFS 利用Flum

Hadoop分布式文件系统:架构和设计要点

Hadoop分布式文件系统:架构和设计要点 原文:http://hadoop.apache.org/core/docs/current/hdfs_design.html一.前提和设计目标 1.硬件错误是常态,而非异常情况,HDFS可能是有成百上千的server组成,任何一个组件都有可能一直失效,因此错误检测和快速.自动的恢复是HDFS的核心架构目标. 2.跑在HDFS上的应用与一般的应用不同,它们主要是以流式读为主,做批量处理:比之关注数据访问的低延迟问题,更关键的在于数据访问的高吞吐量. 3.

Hadoop分布式文件系统HDFS的工作原理详述

Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统.HDFS是一个高度容错性的系统,适合部署在廉价的机器上.它能提供高吞吐量的数据访问,非常适合大规模数据集上的应用.要理解HDFS的内部工作原理,首先要理解什么是分布式文件系统. 1.分布式文件系统 多台计算机联网协同工作(有时也称为一个集群)就像单台系统一样解决某种问题,这样的系统我们称之为分布式系统. 分布式文件系统是分布式系统的一个子集,它们解决的问题就是数据存储.换句话说,它们是横跨在多台计算机上的存

Java访问Hadoop分布式文件系统HDFS的配置说明_java

配置文件 m103替换为hdfs服务地址. 要利用Java客户端来存取HDFS上的文件,不得不说的是配置文件hadoop-0.20.2/conf/core-site.xml了,最初我就是在这里吃了大亏,所以我死活连不上HDFS,文件无法创建.读取. <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <co

【官方文档】Hadoop分布式文件系统:架构和设计

http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_design.html   引言 前提和设计目标 硬件错误 流式数据访问 大规模数据集 简单的一致性模型 "移动计算比移动数据更划算" 异构软硬件平台间的可移植性 Namenode 和 Datanode 文件系统的名字空间 (namespace) 数据复制 副本存放: 最最开始的一步 副本选择 安全模式 文件系统元数据的持久化 通讯协议 健壮性 磁盘数据错误,心跳检测和重新复制 集群均衡 数据完整

Hadoop分布式文件系统:结构与设计

1. 介绍 Hadoop 分布式文件系统 (HDFS)是一个设计为用在普通硬件设备上的分布式文件系统.它与现有的分布式文件系统有很多近似的地方,但又和这些文件系统有很明显的不同.HDFS 是高容错的,设计为部署在廉价硬件上的.HDFS对应用程序的数据提供高吞吐量,而且适用于那些大数据集应用程序.HDFS开放了一些POSIX的必须接口,容许流式访问文件系统的数据.HDFS最初是为了Apache 的Nutch网络搜索引擎项目的下层构件而设计的.是Hadoop项目的一部分,而这又是Apache的 Lu

数据太大爆内存怎么办?七条解决思路 | 机器学习开发手册

Jason Brownlee  在研究.应用机器学习算法的经历中,相信大伙儿经常遇到数据集太大.内存不够用的情况. 这引出一系列问题: 怎么加载十几.几十 GB 的数据文件? 运行数据集的时候算法崩溃了,怎么办? 怎么处理内存不足导致的错误? 本文将讨论一些常用的解决办法,供大家参考. 处理大型 ML 数据文件的七种思路 1. 分配更多内存 有的机器学习工具/库有默认内存设置,比如 Weka.这便是一个限制因素. 你需要检查一下:是否能重新设置该工具/库,分配更多内存. 对于 Weka,你可以在

数据太大爆内存怎么办?七条解决思路

在研究.应用机器学习算法的经历中,相信大伙儿经常遇到数据集太大.内存不够用的情况. 这引出一系列问题: 怎么加载十几.几十 GB 的数据文件? 运行数据集的时候算法崩溃了,怎么办? 怎么处理内存不足导致的错误? 本文将讨论一些常用的解决办法,供大家参考. 处理大型 ML 数据文件的七种思路 1. 分配更多内存 有的机器学习工具/库有默认内存设置,比如 Weka.这便是一个限制因素. 你需要检查一下:是否能重新设置该工具/库,分配更多内存. 对于 Weka,你可以在打开应用时,把内存当作一个参数进