Hadoop体系不可错过的五大助手
2013-08-13 16:42
302 查看
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函数可呼叫,开发人员就不必再重复开发一次。
通过这些相关项目的延伸,开发人员就算不懂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函数可呼叫,开发人员就不必再重复开发一次。
相关文章推荐
- Hadoop体系不可错过的五大助手
- Hadoop体系不可错过的五大助手
- Github推荐:MySQL DBA不可错过的五大开源管理工具!
- 机器学习进阶路上不可错过的 28 个视频
- .Net 高效开发之不可错过的实用工具
- 作为iOS开发者,你不可错过的资源
- 不可错过的 GAN 资源:教程、视频、代码实现、89 篇论文下载
- jQuery+ROW_NUMBER实现超级简单分页(不可错过)
- BSD和云 – 不可错过的BSD聚会
- 干货分享:不可错过的网站权重提高方法
- 精彩推荐JAVA MAP(Java爱好者不可错过)
- 【安卓】eclipse中不可错过的几个秘密、!
- 开发者不可错过的 10 个人工智能开源项目
- Linux管理员不可不知的五大命令+工具
- .NET开发不可错过的25款必备工具
- 经验之谈:女人不可错过的12种好男人
- .NET开发不可错过的25款必备工具
- 不可错过的资源下载。。学无止境呀。。
- Hadoop Metrics体系分析之三:构建自己的Metrics
- .NET开发不可错过的25款必备工具