1.7 Hadoop的子项目
Mahout是一个很强大的数据挖掘库,其中包含大部分与数据挖掘有关的机器学习算法,可实现聚类、分类、回归分析及统计建模等,可用于智能应用,它也是一个不错的机器学习库。
Apache Mahout是一个商用软件,需要Apache软件分发的许可证。Apache Mahout的目标是建立一个充满活力、反应灵敏、多样化的社区,以方便对项目本身以及潜在使用案例的讨论。
使用Mahout的一些公司如下:
Amazon:这是一个提供个性化推荐的购物网站。
AOL:这是一个有购物建议的购物导航网站。
Drupal:这是提供开放资源的基于内容建议的一个使用Mahout的PHP内容管理系统。
iOffer:这是一个购物网站,它使用Mahout的频繁模式集挖掘(Frequent Pattern Set Mining)和协同过滤(collaborative filtering)来为用户推荐商品。
LucidWorks Big Data:一个著名的数据分析公司,使用Mahout来实现聚类、文件复制跟踪、段落提取及分类等。
Radoop:提供了一个拖曳式的数据分析界面,包括Mahout的聚类及分类算法。
Twitter:这是一个社交网站,它使用Mahout的Latent Dirichlet Allocation(LDA) 实现用户兴趣建模,并且在GitHub保持Mahout的一个分支。
Yahoo!:这是世界上最流行的网络服务供应商之一,Yahoo! Mail使用 Mahout的频繁模式集挖掘。
Hadoop的生态系统的参考链接为http://www.revelytix.com/?q=content/hadoop-ecosystem。
Apache HBase是Hadoop的一个分布式大数据存储系统。它允许随机、实时读写访问大数据。它创新性地被设计为面向列的数据存储模型,其灵感来自Google BigTable。
使用HBase的公司如下:
Yahoo!:这是世界上流行的为相邻文件复本检测提供服务的网站。
Twitter:这是进行版本控制存储和检索的一个社交网站。
Mahalo:这是一项类似内容推荐的知识共享的服务。
NING:这是进行实时分析和报告的社交网络服务一个提供商。
StumbleUpon:这是一个普遍的个性化推荐系统、实时数据存储和数据分析平台。
Veoh:这是为用户分析系统提供在线多媒体内容共享的一个平台。
对于Google Big Data的分布式存储系统的结构化数据,请参考链接http://research.google.com.archive/bigtable.html。
Hive是一个基于Hadoop的数据仓库,类似于Facebook开发的框架。它允许用户查询类SQL语言,例如高度抽象到Hadoop MapReduce中的HiveQL。这使得没有MapReduce经验的SQL程序员可以使用数据仓库,并且使它更容易集成商业智能和可视化工具用于实时查询处理。
Pig是一个使用类SQL语言,称为Pig Latin。该语言基于Hadoop开源平台分析大规模数据集。它提供了一个简单的操作和编程接口,用于大规模的、复杂的数据并行计算。具有易于开发、高易用性及可扩充性特点。Apache Pig是由Yahoo!开发的,Yahoo!和Twitter是Pig的主要用户。
对开发人员来说,直接使用的Java API可能是很乏味或容易出错,而且限制了Java程序员在使用Hadoop编程时的灵活性。因此,Hadoop提供了两个解决方案,Pig和Hive,它们使用了MapReduce对数据集进行管理和分析,使Hadoop编程更加容易。
Apache Sqoop提供了Hadoop数据处理平台、关系型数据库、数据仓库。同时提供了一种非关系型数据库快速转换大量数据的新方法。Apache Sqoop是一个交互式的工具,可用于将数据从关系型数据库导入Hadoop HDFS中,并将HDFS的数据导出到关系型数据库中。
它可与目前最流行的关系型数据库一起工作,例如MySQL、PostgreSQL、Oracle、Microsoft SQL Server和IBM DB2,以及企业级数据仓库。Sqoop的扩展API提供了数据库系统的连接方法。并且,这个Sqoop资源也与一些很流行的数据库连接方法并驾齐驱。为了进行这个操作,Sqoop首先用一些数据库视图创建和转化的逻辑向Hadoop MapReduce传输数据。
Apache Zookeeper也是Hadoop的子项目,它用于管理Hadoop、Hive、Pig、HBase、Solr以及一些其他工程。Zookeeper是一个开源的分布式应用协调服务,它是利用基于同步和配置的快速Paxos算法以及一些例如分布式应用维护的命名服务设计出来的。在程序设计中,Zookeeper设计是一个非常简单的数据模型结构,很像系统文件目录的树状结构。
Zookeeper被分为两个部分:服务端和客户端。对于一个使用Zookeeper服务的集群,只能一台服务器扮演主服务器,用来接受和协调所有请求。其他的服务器都是主服务器的只读副本。如果主服务器崩溃,任何一台其他服务器可以开始为响应请求提供服务。Zookeeper客户端依据Zookeeper服务连接到服务器上。客户端发送请求,接受回应,读取监视事件并通过TCP协议连接到服务器发送一个心跳。
对于分布式应用的高性能协调服务,Zookeeper是一个集中服务,用于提供维护配置信息、命名、分布式同步和组服务。所有这些类型的服务通过某种形式被分布式应用使用。每次部署这些应用,就会有很多修复漏洞的工作和不能改变的竞争环境。这些服务在应用部署后会导致管理工作复杂。
Apache Solr是一个基于Apache认证项目的开源企业级搜索平台。Apache Solr具有高度的可扩展性,支持分布式查询及索引响应引擎。因此,可以创建网页版的应用,可实现强大的文本查找、分片查找、即时索引、动态集群、数据库集成及富文档处理等。
Apache Soar是用Java编写的,它作为一台独立的服务器,通过类似于REST HTTP/XML和JSON的过程来提供查询结果。因此,Solr 服务器很容易与用其他的编程语言编写的应用集成。基于这些特性,Netflix、AOL、CNET和Zappos都在使用Apache Soar查询服务器。
Ambari是针对Hortonworks的工具。Apache Ambari是一个基于网络的工具,用于支持Apache Hadoop集群的支持、管理和监视。Ambari支持操作绝大多数Hadoop组件,如同集中管理一样包括HDFS、MapReduce、Hive、Pig、HBase、Zookeeper、Sqoop和HCatlog。
除此以外,Ambari能够在基于Kerberos远程认证协议的Hadoop集群上安装安全服务。同时,它还为管理集成式LDAP和活动目录提供基于角色的用户识别、授权和审计的功能。