《R与Hadoop大数据分析实战》一1.7 Hadoop的子项目

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和活动目录提供基于角色的用户识别、授权和审计的功能。

时间: 2024-11-08 18:55:19

《R与Hadoop大数据分析实战》一1.7 Hadoop的子项目的相关文章

《R与Hadoop大数据分析实战》一2.5 在R环境中编写Hadoop MapReduce程序的方式

2.5 在R环境中编写Hadoop MapReduce程序的方式 我们知道对将R工具用于分析的统计学家.网络分析师以及产品经理来说,用MapReduce进行Hadoop大数据处理是一件非常重要的事,因为补充MapReduce的编程知识对于用Hadoop将分析整合到MapReduce来说是必要的.并且,我们知道R是一个一直以来普及程度逐步提升的工具:为了整合R,有许多程序包和函数库一直在改进.因此为了研发基于R和Hadoop计算能力运行的MapReduce算法程序,我们需要R和Hadoop的中间软

《R与Hadoop大数据分析实战》一导读

前 言 组织获得的数据量每一天都在成倍增加.现在组织可以存储大量信息在低成本平台上,例如Hadoop. 如今这些组织面临的难题是如何处理这些数据以及如何从这些数据中获取关键的见解.于是R应运而生.R是一个令人惊讶的工具,它是一个在数据中能够运行先进统计模型的单元,它将原始模型翻译成丰富多彩的图形和可视化视图,而且它有很多和数据科学相关的功能. 然而,R的一个主要缺点是它的可扩展性较差.R的核心技术引擎可以加工和处理非常有限的数据量.正因为在大数据处理中Hadoop十分流行,所以为了可扩展性,下一

《R与Hadoop大数据分析实战》一第2章 编写Hadoop MapReduce程序

第2章 编写Hadoop MapReduce程序 在第1章中,我们学习了如何搭建R和Hadoop开发环境.既然我们对大数据分析感兴趣,接下来就学习如何使用Hadoop MapReduce进行大数据处理.在本章中,我们要讨论MapReduce的基础概念,为何它是不可或缺的,以及如何在Apache Hadoop上进行MapReduce编程等内容.本章节将会涉及如下内容:MapReduce基础概念Hadoop MapReduce技术Hadoop MapReduce原理编写Hadoop MapReduc

《R与Hadoop大数据分析实战》一1.1 安装R

1.1 安装R 可以通过访问R的官方网站下载相应的版本.这里提供了对应三种不同操作系统的下载步骤,包括在Windows.Linux和Mac上安装R.下载最新版本的R,其中包括所有最新的补丁和错误解决方案.对于Windows操作系统,请执行以下步骤: 访问www.r-project.org. 点击CRAN,选择CRAN镜像(CRAN mirror),并选择你的Windows操作系统(捆绑到Linux:Hadoop通常在Linux环境下运行). 从镜像中下载最新的R版本. 执行下载的.exe程序,安

《R与Hadoop大数据分析实战》一2.1 MapReduce基础概念

2.1 MapReduce基础概念 如果没有使用过集群或信息传递接口(Message Passing Interface,MPI),那么理解MapReduce基础概念将不会是一件容易的事.更多的实际应用是数据不存放在一个硬盘中而是存放于分布式文件系统中(Distributed File System,DFS),或存放于由Hadoop技术实现的分布式软件中.MapReduce同时也是一个编程模型,它以一种分布式方法进行工作.其中包括信息传递接口(MPI)和同步并行计算模型(Bulk Synchro

《R与Hadoop大数据分析实战》一1.4 Hadoop的安装

1.4 Hadoop的安装 现在假定你已经了解了R语言,知道它是什么,如何安装它,它的主要特点是什么,以及为什么要使用它.现在,我们需要知道R的局限性(这样能更好地引入对Hadoop的介绍).在处理数据前,R需要将数据加载到随机存取存储器(RAM).因此,数据应该小于现有机器内存.对于数据比机器内存还要大的,我们将其看做大数据(由于大数据还有许多其他定义,这只适用于我们现在所说的例子). 为了避免这类大数据问题,我们需要扩展硬件配置,但这只是一个临时解决方案.为了解决这一问题,我们需要使用一个H

《R与Hadoop大数据分析实战》一2.4 编写Hadoop MapReduce示例程序

2.4 编写Hadoop MapReduce示例程序 现在要通过一个很简单且普通的单词统计(word count)来学习MapReduce.该例子的目标是统计每个单词在文章中出现的次数.这些文章作为MapReduce的输入文件. 在该例中,已经准备了一些文本文件,我们希望计算所有单词在这些文件中出现的频率.我们通过Hadoop MapReduce来进行设计. 本节中,将使用旧版API接口学习Hadoop MapReduce编程.假设读者已经配置了Hadoop的环境变量(请参考第1章的内容).同时

《R与Hadoop大数据分析实战》一1.3 R语言的功能特征

1.3 R语言的功能特征 目前R程序包已经超过3000个,其数量仍在与日俱增.没有任何一本书可以清楚介绍所有这些程序包.本书仅侧重于介绍R的主要特征以及最常用和主流的程序包. 1.3.1 使用R程序包 R程序包都是一些具有函数特性的自含单元,可以看做是若干个函数的集合,类似于Java中的.jar文件.现有关于R程序包的海量书籍所涵盖的应用范围非常广泛,从统计操作和机器学习到丰富的图形可视化和绘制.每个程序包都包括一个或多个R函数.一个R程序包是可供他人重复使用和共享的实体.R用户可以安装拥有他们

《R与Hadoop大数据分析实战》一2.3 Hadoop MapReduce原理

2.3 Hadoop MapReduce原理 为了更好地理解MapReduce的工作原理,我们将会: 学习MapReduce对象. MapReduce中实现Map阶段的执行单元数目. MapReduce中实现Reduce阶段的执行单元数目. 理解MapReduce的数据流. 深入理解Hadoop MapReduce. 2.3.1 MapReduce对象 由Hadoop的MapReduce技术可以引申出如下3个主要对象: Mapper:它主要用于实现MapReduce的Map阶段的操作.该对象在M