Hadoop体系的强大工具组合

运维 系统运维 Hadoop
HDFS和MapReduce只是打造Hadoop平台最基本的核心套件,在Apache基金会的网站中还有其他的相关开源套件,共同组成了一个Hadoop体系(Hadoop Ecosystem)。

HDFS和MapReduce只是打造Hadoop平台最基本的核心套件,在Apache基金会的网站中还有其他的相关开源套件,共同组成了一个Hadoop体系(Hadoop Ecosystem)。

 

透过这些相关方案的延伸,开发人员就算不懂Java,也可以用特定Script语言来撰写Hadoop上的MapReduce程序,甚至可以用SQL语法来查询HDFS上的资料。这些周边方案可说是大幅强化Hadoop功能的软体军火库,想要善用Hadoop的开发人员不可错过。其中重要的周边方案包括HBase、Hive 、ZooKeeper、Pig和Mahout。

 

HBase 能容纳PB资料量的分散式资料库

 

HBase是专门用於Hadoop档案系统上的资料库系统,採取Column-Oriented 资料库设计,不同於传统的关联式资料库,例如没有资料表、Schema资料架构等功能,而是採用Key-Value形式的资料架构,每笔资料都有一个Key值对应到一个Value值,再透过多维度的对应关係来建立类似表格效果的资料架构。如此就能採取分散式储存方式,可以扩充到数千臺服务器,以应付PB等级的资料处理。

 

Hive 可用SQL语法存取Hadoop资料

 

Hive是建置在HDFS上的一套分散式资料仓储系统,可让使用者以惯用的SQL语法,来存取Hadoop档案中的大型资料集,例如可以使用Join、Group by、Order by等,而这个语法称为Hive QL。不过,Hive QL和SQL并非完全相同,例如Hive就不支援Store Procedure、Trigger等功能。

 

Hive会将使用者输入的Hive QL指令编译成Java程序,再来存取HDFS档案系统上的资料,所以,执行效率依指令复杂度和处理的资料量而异,可能有数秒鐘,甚至是数分鐘的延迟。和HBase相比,Hive容易使用且弹性高,但执行速度较慢。不少资料库系统,都是透过先连结到Hive,才能与Hadoop整合。例如微软就是透过Hive ODBC驱动程序,将SQL指令转换成Hive QL,让Excel可以存取Hadoop上的资料。

 

在同一个Hadoop丛集中,Hive可以存取HBase上的资料,将HBase上的资料对应成Hive内的一个表格。

 

Pig 不懂Java开发也能写MapReduce

 

Pig提供了一个Script语言Pig Latin,语法简单,类似可读性高的高阶Basic语言,可用来撰写MapReduce程序。Pig会自动将这些脚本程序转换,成为能在Hadoop中执行的MapReduce Java程序。

 

因此,使用者即使不懂Java也能撰写出MapReduce。不过,一般来说,透过Pig脚本程序转换,会比直接用Java撰写MapReduce的效能降低了25%。

 

ZooKeeper 让Hadoop内部服务器能协同运作

 

Zookeeper是监控和协调Hadoop分散式运作的集中式服务,可提供各个服务器的配置和运作状态资讯,用於提供不同Hadoop系统角色之间的工作协调。

 

以HBase资料库为例,其中有两种服务器角色:Region服务器角色和Master服务器角色,系统会自动透过ZooKeeper监看Master服务器的状态,一旦Master的运作资讯消失,代表当机或网路断线,HBase就会选出另一臺Region服务器成为Mater角色来负责管理工作。

 

Mahout 即时可用的常用MapReduce函数库

 

在Hadoop中,开发人员必须将资料处理作法拆解成可分散运算的Map和Reduce程序,因为思考逻辑和常见的程序开发逻辑不同,所以开发难度狠高。Mahout则提供了一个常用的MapReduce函式库,常见的数值分析方法、丛集分类和筛选方式,都已经有对应的MapReduce函数可呼叫,开发人员就不必再重复开发一次。

责任编辑:黄丹 来源: 开源吧
相关推荐

2023-10-27 07:23:29

WarehouseFlatpak工具

2020-08-26 19:15:56

Python工具

2009-12-09 14:38:26

VS.NET 2003

2018-12-19 20:00:52

数字货币区块链比特币

2010-06-13 15:22:21

Linux网络测试

2023-04-14 08:48:57

AutoGPT工具人工智能

2013-01-23 09:54:06

微软虚拟化Windows Azu

2023-11-01 15:54:59

2019-05-20 10:39:23

工具代码开发

2017-08-28 16:22:10

2023-10-11 08:13:34

2009-02-04 19:41:12

网络拓扑管理Mocha BSM摩卡

2021-07-08 06:47:19

JVM监控工具

2023-04-25 14:23:06

2012-08-06 15:59:17

MongoDB

2015-06-15 12:46:09

PHPPHP代码分析解析

2017-09-18 15:14:50

2012-09-13 16:59:06

InformaticaHadoop大数据

2009-03-02 09:14:00

2020-06-28 09:56:48

.NET开发工具
点赞
收藏

51CTO技术栈公众号