﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-The NoteBook of EricKong-随笔分类-Hadoop</title><link>http://www.blogjava.net/jjshcc/category/53705.html</link><description>桑巴葡语翻译工作室是广州市最专业葡萄牙语翻译机构-www.puyufanyi.com</description><language>zh-cn</language><lastBuildDate>Mon, 01 Jul 2013 14:33:02 GMT</lastBuildDate><pubDate>Mon, 01 Jul 2013 14:33:02 GMT</pubDate><ttl>60</ttl><item><title>Hadoop体系介绍</title><link>http://www.blogjava.net/jjshcc/archive/2013/07/01/401121.html</link><dc:creator>Eric_jiang</dc:creator><author>Eric_jiang</author><pubDate>Mon, 01 Jul 2013 14:02:00 GMT</pubDate><guid>http://www.blogjava.net/jjshcc/archive/2013/07/01/401121.html</guid><wfw:comment>http://www.blogjava.net/jjshcc/comments/401121.html</wfw:comment><comments>http://www.blogjava.net/jjshcc/archive/2013/07/01/401121.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jjshcc/comments/commentRss/401121.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jjshcc/services/trackbacks/401121.html</trackback:ping><description><![CDATA[
 
HDFS和MapReduce只是打造Hadoop平台最基本的核心套件，在Apache基金会的网站中还有其他的相关开源套件，共同组成了一个Hadoop体系（Hadoop Ecosystem）。<p>　　通过这些相关项目的延伸，开发人员就算不懂Java,也可以用特定Script语言来写Hadoop上的MapReduce程序，甚至可以用SQL语法来查询HDFS上的数据。这些周边项目可说是大幅强化Hadoop功能的软件军火库，想要善用Hadoop的开发人员不可错过。其中重要的周边项目包括HBase、Hive 、ZooKeeper、Pig和Mahout.</p><p>　　<strong>HBase 能容纳PB数据量的分布式数据库</strong>　　HBase是专门用于Hadoop文件系统上的数据库系统，采取Column-Oriented 数据库设计，不同于传统的关系数据库，例如没有数据表、Schema数据架构等功能，而是采用Key-Value形式的数据架构，每笔数据都有一个Key值对应到一个Value值，再通过多维度的对应关系来建立类似表格效果的数据架构。如此就能采取分布式储存方式，可以扩展到数千台服务器，应对PB级的数据处理。</p><p>　　<strong>Hive 可用SQL语法存取Hadoop数据</strong>　　Hive是部署在HDFS上的一套分布式数据存储系统，可让用户以惯用的SQL语法，来存取Hadoop文件中的大型数据集，例如可以使用Join、Group by、Order by等，而这个语法称为Hive QL.不过，Hive QL和SQL并非完全相同，例如Hive就不支持Store Procedure、Trigger等功能。&nbsp;&nbsp; Hive会将用户输入的Hive QL指令编译成Java程序，再来存取HDFS文件系统上的数据，所以，执行效率依指令复杂度和处理的数据量而异，可能有数秒钟，甚至是数分钟的延迟。和HBase相比，Hive容易使用且弹性高，但执行速度较慢。不少数据库系统，都是通过先连结到Hive,才能与Hadoop整合。例如微软就是通过Hive ODBC驱动程序，将SQL指令转换成Hive QL,让Excel可以存取Hadoop上的数据。</p><p>　　在同一个Hadoop集群中，Hive可以存取HBase上的数据，将HBase上的数据对应成Hive内的一个表格。</p><p>　　<strong>Pig 不懂Java开发也能写MapReduce</strong>　　Pig提供了一个Script语言Pig Latin,语法简单，类似可读性高的高等Basic语言，可用来写MapReduce程序。Pig会自动将这些脚本程序转换，成为能在Hadoop中执行的MapReduce Java程序。</p><p>　　因此，使用者即使不懂Java也能写出MapReduce.不过，一般来说，通过Pig脚本程序转换，会比直接用Java写MapReduce的效能降低了25%.</p><p>　　<strong>ZooKeeper 让Hadoop内部服务器能协同运作</strong>　　Zookeeper是监控和协调Hadoop分布式运作的集中式服务，可提供各个服务器的配置和运作状态信息，用于提供不同Hadoop系统角色之间的工作协调。</p><p>　　以HBase数据库为例，其中有两种服务器角色：Region服务器角色和Master服务器角色，系统会自动通过ZooKeeper监看Master服务器的状态，一旦Master的运作信息消失，代表当机或网络断线，HBase就会选出另一台Region服务器成为Mater角色来负责管理工作。</p><p>　　<strong>Mahout 立即可用的常用MapReduce程序库</strong>　　在Hadoop中，开发人员必须将数据处理作法拆解成可分散运算的Map和Reduce程序，因为思考逻辑和常见的程序开发逻辑不同，所以开发难度很高。Mahout则提供了一个常用的MapReduce函式库，常见的数值分析方法、集群分类和筛选方式，都已经有对应的MapReduce函数可呼叫，开发人员就不必再重复开发一次。</p><img src ="http://www.blogjava.net/jjshcc/aggbug/401121.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jjshcc/" target="_blank">Eric_jiang</a> 2013-07-01 22:02 <a href="http://www.blogjava.net/jjshcc/archive/2013/07/01/401121.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>