所谓“大数据”,是指数据量太大以至于目前手头的数据管理工具已经不便于管理数据。大数据处理技术代表了新一代的技术架构,这种架构通过高速获取数据并对其进行分析和挖掘,从海量形式各异(包含结构化、半结构化和非结构化数据)的数据源中更有效地抽取出富含价值的信息。




HDFS支持非结构化数据存储吗 hadoop处理非结构化数据_Hadoop


随着信息化时代的飞速发展,大数据也面临着存储、计算、管理、分析等的艰难挑战。这时,大数据处理的最佳工具——Hadoop就应运而生了。

Hadoop是由 Doug Cutting 所发起的开源分布式计算框架。它可以储存并处理海量结构与非结构信息,执行数据分析程序于分布式系统上,还可以简化分布式系统的管理与资源调度,具有线性化的扩充能力、高可用性与容错性。

Hadoop 由许多元素构成。其最底部是 Hadoop Distributed File System(HDFS),它存储 Hadoop 集群中所有存储节点上的文件。HDFS的上一层是MapReduce引擎,该引擎由 JobTrackers和TaskTrackers 组成。通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖了Hadoop分布式平台的所有技术核心。

l HDFS

对外部客户机而言,HDFS就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。但是 HDFS 的架构是基于一组特定的节点构建的,这是由它自身的特点决定的。这些节点包括 NameNode(仅一个),它在 HDFS 内部提供元数据服务;DataNode,它为 HDFS 提供存储块。由于仅存在一个 NameNode,因此这是 HDFS 1.x版本的一个缺点(单点失败)。在Hadoop 2.x版本可以存在两个NameNode,解决了单节点故障问题。

l NameNode

NameNode 是一个通常在 HDFS 实例中的单独机器上运行的软件。它负责管理文件系统名称空间和控制外部客户机的访问。NameNode 决定是否将文件映射到 DataNode 上的复制块上。对于最常见的 3 个复制块,第一个复制块存储在同一机架的不同节点上,最后一个复制块存储在不同机架的某个节点上。

l DataNode

DataNode 通常以机架的形式组织,机架通过一个交换机将所有系统连接起来。DataNode 响应来自 HDFS 客户机的读写请求,它们还响应来自 NameNode 的创建、删除和复制块的命令。

l 文件操作

如果客户机想将文件写到 HDFS 上,首先需要将该文件缓存到本地的临时存储。如果缓存的数据大于所需的 HDFS 块大小,创建文件的请求将发送给 NameNode。NameNode将以 DataNode标识和目标块响应客户机。同时也通知将要保存文件块副本的 DataNode。在最后的文件块发送之后,NameNode 将文件创建提交到它的持久化元数据存储。

l Linux 集群

Hadoop框架可在单一的Linux平台上使用(开发和调试时),官方提供MiniCluster作为单元测试使用,不过使用存放在机架上的商业服务器才能发挥它的力量。这些机架组成一个 Hadoop 集群。它通过集群拓扑知识决定如何在整个集群中分配作业和文件。Hadoop假定节点可能失败,因此采用本机方法处理单个计算机甚至所有机架的失败。

Hadoop可以以多重形式应用到企业中,如下图:


HDFS支持非结构化数据存储吗 hadoop处理非结构化数据_Hadoop_02


企业应用有:全球最大拍卖网站eBay、全球最大连锁零售商 Wal-Mart、全球最大信用卡公司 Visa等。