close
当前位置: 物联网在线 > IT技术 > 商业智能 >

什么是Apache Hadoo

对Hadoop生态系统组件与功能的看待。

Apache Hadoop已经是大数据行业增长背后的驱动力。你会经常听到它和Hive 和Pig这样的相关技术一起被提及。但它是什么做的,为什么你需要所有这些奇怪名字的朋友 ,如如Oozie, Zookeeper 和 Flume?

Hadoop能便宜地处理无论是什么样结构的大量数据的功能。这里的大量是指10 – 100GB字节及以上。这和原来发生的事有什么不同呢?

现有的企业数据仓库和关系型数据库擅长于处理结构化数据,可以储存大量的数据, 尽管是有代价的: 这要求的各种数据受结构的限制以便可以进行处理, 而且它的惯性影响让数据仓库不能适应大规模异构数据的灵活探究。数据仓库需要的工作量经常意味着企业中宝贵的数据源从来不被考虑到。这就是Hadoop带来很大差异的地方。

本文审查了Hadoop组件和生态系统并对其功能一一做了解释。

Hadoop的核心: MapReduce

谷歌为响应创建网络搜索引擎索引的问题而创造了MapReduce框架,该框架是当今绝大多数大数据处理背后的强大动力。除了在Hadoop里,你会发现MPP 和NoSQL数据库,如Vertica或MongoDB里面也有MapReduce。

MapReduce革新的重要性在于对超出一个数据集的查询,分割它,并且在多个节点上并行运行的能力。分布计算解决了在一个机器上不适合处理过于庞大的数据的问题。将这一技术与Linux服务器结合起来,你就拥有了大规模计算机阵列具有成本效益的替代选择。

在其核心,Hadoop是开源的MapReduce解决方案。 由雅虎赞助,它始于2006年,据它的创造者Doug Cutting称,它在2008年初达到“网络规模”的能力。

随着Hadoop项目的成熟,它收购了更多的组件以提高其实用性和功能性。 “Hadoop”的名字用来代表整个生态系统。Linux出现时有同样的情况: 该名字严格指向Linux内核,但是在它被广为接受为表示一个完整的操作系统。

Hadoop的低层:HDFS和 MapReduce

以上,我们讨论了MapReduce在多个服务器上分布计算的能力。为实现这一目的,每一个服务器都必须访问数据。这就是HDFS (Hadoop分布式文件系统)发挥作用的地方。

HDFS和MapReduce是稳健的。在一个Hadoop集群内的服务器可以失败,但并不会终止计算过程。HDFS确保数据在整个集群之间被带有冗余地复制。在一个计算完成后, 一个节点会把其结果写回HDFS。

HDFS存储的数据不受限制。数据可以是非结构化和缺乏结构的。相比之下, 关系型数据库要求数据是结构化的而且模式在数据存储之前就被定义了。有了HDFS, 让数据有意义成了开发商代码的职责。

在MapReduce层次上的Hadoop编程使用Java APIs一起工作,并手动加载数据文件到HDFS中。

提高可编程性: Pig 和 Hive

直接用Java APIs的工作会冗长而且容易出错。它也限制了Java程序员对Hadoop的使用。Hadoop提供了两种解决方案使Hadoop的编程更容易。

1.Pig是一种编程语言,它简化了使用Hadoop中的一些共同的任务: 加载数据, 在数据上表达转换和存储最后的结果。Pig的内置操作能够理解半结构化的数据, 如日志文件, 而其语言是可扩展使用Java添加对自定义数据类型和转换的支持。

2.Hive使得Hadoop可以作为数据仓库运行。它在HDFS中的数据上叠加了结构,然后允许使用一种熟悉的像SQL的语法对数据查询。正如Pig一样,Hive的核心能力是可扩展的。

在Hive 和 Pig之间做选择可能会令人混淆。Hive更适合于数据仓库的任务,主要为静态结构和频繁分析的需要。Hive与SQL的亲密关系使它成为Hadoop和其他商业智能BI)工具之间理想的整合点。

Pig让开发人员在勘探大数据集时有更多的灵活性,它允许开发简单的脚本转换数据流合并到较大的应用程序中。Pig在Hadoop层上比Hive更薄, 其主要优点是相比直接使用Hadoop的Java APIs大幅度削减了所需代码的数量。就这一点而言,Pig的目标受众仍以软件开发人员为主。

提高数据的访问:HBase, Sqoop 和 Flume

在核心上,Hadoop是一个种以批处理为目的的系统。数据被载入HDFS,处理之后再收回。这有点象复古的计算,而且交互和随机存取数据是经常必需的。

进入HBase,是运行于HDFS之上的纵列式数据库。模仿 了谷歌的BigTable,该项目的目标是为快速访问托管数以亿行的数据。MapReduce可以使用HBase作为既是数据源又是其计算的终点,而且Hive和 Pig可以与HBase结合使用。

为了保证对数据的随机存取,HBase也强加了一些限制: Hive在HBase上的性能比简单使用HDFS的要慢4 - 5倍, 而且在HBase中能存储的最大数据量大约是1个PB字节,相比之下HDFS的限制在30多个PB。

HBase并不适用于即时分析而更适合于大数据集作为更大应用程序一部分的整合。用例包括日志、计数和存储时序数据。

数据的进出


you might also like

  • 用大数据技术挖掘投资信息
  • 我是数据分析师(二):假老公又提数据分析要多表关联—为了爱情,我忍了
  • 自助分析工具将终结商业智能(BI)吗?
  • 是英雄还是狗熊?大数据那些事之SparkSQL
  • 德日物联网合作成果不乐观 政府带头恐沦为口号
  • Socionext 的新款嵌入式芯片采用 Imagination 的 PowerVR Series8XE GPU
  • BIGBANG成员胜利代言节奏大爆炸 4月25日中国公测
  • Fitbit发布Alta HR活动跟踪器,支持原始心率监测
  • Synopsys和Silicon Mobility日前宣布:推出Synopsys Virtualizer™开发工具包(VDK)
  • DynamIQ世界中的big.LITTLE

  • (责任编辑:ioter)