转自: http://www.it165.net/admin/html/201307/1532.html

Sqoop:

sqoop在hadoop生态系统中也是应用率比较高的软件,主要是用来做ETL工具,由yadoo研发并提交给Apache。Hadoop整个生态圈里面,大部分的应用都是Yadoo研发的,贡献非常大。Yahoo里面出来两拨人,分别组建了Cloudera和Hortonworks。

所谓ETL,就是数据的抽取(extract)加载(load)转换(transform)。将一种格式或表现形式的数据,通过代码,改变形态,变成另一种格式或表现形式的数据。哪怕是把矩阵里的排列顺序改变,也算是ETL。

Sqoop最主要的特点是可以在很多数据库和数据格式之间转换,通过设置参数,可以把oracle,mysql里面的结构化数据,变成非结构化的保存到HDFS里面,也可以把HDFS里面的数据提取出来保存到数据库或者是纯文本,很灵活。中间的转换过程用Hive还是自己的mapreduce,还是用pig,mahout,都不重要。他提供的是到各种系统之间的接口,以命令行参数方式执行。

其实sqoop的实现并不复杂,自己花不了多少时间也可以把sqoop重新实现一下,只要了解了他的工作原理,无非就是做好各种数据库和Hadoop之间的接口即可。我们目前没有用sqoop,而是自己用python实现了一套类似的东西。

Oozie:

很棒的东西,著名的工作流系统。可以把各种数据流串起来,想象一下街边的烤串。就像烤板筋,一块板筋就是一个数据任务,一块肥肉也是一个数据任务,板筋和肥肉要交错进行,才能得到最终的可口食物,那么oozie担负的就是竹签子的任务。把数据任务串好,经过一段时间的等待,烤板筋就可以吃了。中间可能还会有各种依赖,比如撒撒盐,撒撒辣椒,也是在整个工作流里面去完成的。

一个真正的BI决策很有可能要经过极其复杂的数据流,数据之间的相互依赖也很高。A任务跑完,才可以开始B,C任务,而B,C任务又依赖D任务的数据,然后E任务依赖B,C的数据,得出的结果F又要跟A任务进行比对分析,才最终得到结果G。这就是一个简单的数据流了,中间如何控制整个数据的流程和产出,就需要oozie来完成。

Mahout:

Mahout可以说是大数据算法智慧的结晶,他里面包含了很多机器学习和人工智能的算法。有基于map/reduce计算的,也有不基于map/reduce计算的。其算法数量之多,几乎可以涵盖各个主要领域。

不过mahout的算法库过于通用,无法适应所有需求,在我们的实际使用过程中,我们很少直接用mahout去做计算,更多的时候是拿mahout作为算法参考的代码库,然后根据自己的需求做二次重构。比如在互联网里使用频率最高的推荐和分类聚类算法,都需要自己去重新根据不同的需求去实现,但无论怎样,即使作为算法参考,mahout仍然是非常牛逼的东西。只是最近更新的很慢,从2012年发布了0.7,就没再更新过了。

Pig:

pig的工作原理类似Hive,早于hive出现,也是由yahoo进行开发的。在hive出现以前,pig在hadoop生态圈里一直是独领风骚。后来Hive出现以后就逐渐势微了。毕竟是一个全新的语言,比起用sql的hive来说,业务几乎可以无成本迁移。而pig毕竟还是需要一定的学习成本的,但是pig在数据处理上比hive更加灵活,应该来说算是编译map/reduce应用的先驱者。

不过我还是一直不太会写pig-latin。最近有一个开源项目,把pig做成了可视化的东西,非常不错,叫lipstick,值得一试。

Bookkeeper:

是从zookeeper里面分离出来的子项目,比较新,还没怎么看过。但是看介绍,应该是跟NN的HA有很大的关系。Hadoop的单点一直是比较令人头疼的地方,各种分布式文件系统大约都存在这种问题。MooseFS什么的,也都需要靠heartbeat,DRBD等去阶段master的单点问题。HDFS也不例外,于是早先就有人提出用zookeeper来解决NN的温备,热备。但是非常复杂,既要防止脑裂,也无法做到近乎实时的热切换。因为如果把zk的检查时间设置很短,就会导致压力增高,而zk的时间设置长了,就无法做到实时热备。我记得好像要设置在10-20秒左右才可以。bookkeeper应该就是为了解决过于复杂的解决方案而分离出来的子项目。

bigtop:

之前的文章里介绍过了。

Hadoop周边生态软件和简要工作原理(二)的更多相关文章

  1. Hadoop周边生态软件和简要工作原理(一)

    转自:http://www.it165.net/admin/html/201307/1531.html 基本都是在群里讨论的时候,别人问的入门问题,以后想到新的问题再补充进来.但是其实入门问题也很重要 ...

  2. Android 基于Netty的消息推送方案之概念和工作原理(二)

    上一篇文章中我讲述了关于消息推送的方案以及一个基于Netty实现的一个简单的Hello World,为了更好的理解Hello World中的代码,今天我来讲解一下关于Netty中一些概念和工作原理的内 ...

  3. How Javascript works (Javascript工作原理) (二) 引擎,运行时,如何在 V8 引擎中书写最优代码的 5 条小技巧

    个人总结: 一个Javascript引擎由一个标准解释程序,或者即时编译器来实现. 解释器(Interpreter): 解释一行,执行一行. 编译器(Compiler): 全部编译成机器码,统一执行. ...

  4. Hadoop MapReduce八大步骤以及Yarn工作原理详解

    Hadoop是市面上使用最多的大数据分布式文件存储系统和分布式处理系统, 其中分为两大块分别是hdfs和MapReduce, hdfs是分布式文件存储系统, 借鉴了Google的GFS论文. MapR ...

  5. Keepalived集群软件高级使用(工作原理和状态通知)

    1.介绍 Keeaplived主要有两种应用场景,一个是通过配置keepalived结合ipvs做到负载均衡(LVS+Keepalived),有此需求者可参考以往博文:http://lizhenlia ...

  6. Zookeeper工作原理二

    ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护.名字服务.分布式同步.组服务等.ZooKeeper的目标就是封装好复杂易出错的关键服务 ...

  7. Hadoop 4、Hadoop MapReduce的工作原理

    一.MapReduce的概念 MapReduce是hadoop的核心组件之一,hadoop要分布式包括两部分,一是分布式文件系统hdfs,一部是分布式计算框就是mapreduce,两者缺一不可,也就是 ...

  8. 分布式计算框架学习笔记--hadoop工作原理

    (hadoop安装方法:http://blog.csdn.net/wangjia55/article/details/53160679这里不再累述) hadoop是针对大数据设计的一个计算架构.如果你 ...

  9. Hadoop MapReduce工作原理

    在学习Hadoop,慢慢的从使用到原理,逐层的深入吧 第一部分:MapReduce工作原理   MapReduce 角色 •Client :作业提交发起者. •JobTracker: 初始化作业,分配 ...

随机推荐

  1. AUC(Area Under roc Curve)学习笔记

    AUC是一种用来度量分类模型好坏的一个标准. ROC分析是从医疗分析领域引入了一种新的分类模型performance评判方法. ROC的全名叫做Receiver Operating Character ...

  2. Poj-1274-The Perfect Stall-匈牙利算法

    The Perfect Stall Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 19174   Accepted: 869 ...

  3. css实现图片水平垂直居中

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 使用万网+阿里云服务器(Apache)配置二级域名

    1. 在万网域名解析中添加二级域名解析配置    在下面的主机记录(RR)的栏位添加二级域名名称后点确定按钮即可.     注:需要等一段时间才能生效,请留意万网域名解析列表的生效状态栏位. 2. 在 ...

  5. 学习C#——性能计数器

    写在前面: 作为Web应用开发前线的一枚小兵,每看到“性能”一词总有种要亮瞎眼的感觉,说到“性能”那就不能不提“数据”,在程序猿.攻城师中不是流行这样一句话吗?“无图无真相”,谁要说谁开发的应用性能有 ...

  6. C与C++中非常少犯的错误,犯了后却非常难找出的错误

    1.continue,break类的错误(HDU1877): #include<iostream> using namespace std; int main() { int a,b,m, ...

  7. C#中将图片转化成base64字符串

    厂址:http://www.cnblogs.com/yunfeifei/p/4165351.html 1.在C#中将图片转化成base64字符串: using System; using System ...

  8. Decoration3:增删改的实现

    下面我们完成数据的增加.删除.修改,这里的主要知识就是前端Angularjs,遇到的问题 1.路由组件采用ui.router,链接的写法有两种: <a href="#/coach/cr ...

  9. Android四大组件全然解析(一)---Activity

    本文參考\android\android\frameworks\base\core\java\android\app\Activity.java文件里的类凝视.以及android/frameworks ...

  10. 【LeetCode】Permutations II 解题报告

    [题目] Given a collection of numbers that might contain duplicates, return all possible unique permuta ...