Hadoop周边生态软件和简要工作原理(二)
转自: 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周边生态软件和简要工作原理(二)的更多相关文章
- Hadoop周边生态软件和简要工作原理(一)
转自:http://www.it165.net/admin/html/201307/1531.html 基本都是在群里讨论的时候,别人问的入门问题,以后想到新的问题再补充进来.但是其实入门问题也很重要 ...
- Android 基于Netty的消息推送方案之概念和工作原理(二)
上一篇文章中我讲述了关于消息推送的方案以及一个基于Netty实现的一个简单的Hello World,为了更好的理解Hello World中的代码,今天我来讲解一下关于Netty中一些概念和工作原理的内 ...
- How Javascript works (Javascript工作原理) (二) 引擎,运行时,如何在 V8 引擎中书写最优代码的 5 条小技巧
个人总结: 一个Javascript引擎由一个标准解释程序,或者即时编译器来实现. 解释器(Interpreter): 解释一行,执行一行. 编译器(Compiler): 全部编译成机器码,统一执行. ...
- Hadoop MapReduce八大步骤以及Yarn工作原理详解
Hadoop是市面上使用最多的大数据分布式文件存储系统和分布式处理系统, 其中分为两大块分别是hdfs和MapReduce, hdfs是分布式文件存储系统, 借鉴了Google的GFS论文. MapR ...
- Keepalived集群软件高级使用(工作原理和状态通知)
1.介绍 Keeaplived主要有两种应用场景,一个是通过配置keepalived结合ipvs做到负载均衡(LVS+Keepalived),有此需求者可参考以往博文:http://lizhenlia ...
- Zookeeper工作原理二
ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护.名字服务.分布式同步.组服务等.ZooKeeper的目标就是封装好复杂易出错的关键服务 ...
- Hadoop 4、Hadoop MapReduce的工作原理
一.MapReduce的概念 MapReduce是hadoop的核心组件之一,hadoop要分布式包括两部分,一是分布式文件系统hdfs,一部是分布式计算框就是mapreduce,两者缺一不可,也就是 ...
- 分布式计算框架学习笔记--hadoop工作原理
(hadoop安装方法:http://blog.csdn.net/wangjia55/article/details/53160679这里不再累述) hadoop是针对大数据设计的一个计算架构.如果你 ...
- Hadoop MapReduce工作原理
在学习Hadoop,慢慢的从使用到原理,逐层的深入吧 第一部分:MapReduce工作原理 MapReduce 角色 •Client :作业提交发起者. •JobTracker: 初始化作业,分配 ...
随机推荐
- JDK中注解的底层实现
前提 用Java快三年了,注解算是一个常用的类型,特别是在一些框架里面会大量使用注解做组件标识.配置或者策略.但是一直没有深入去探究JDK中的注解到底是什么,底层是怎么实现了?于是参考了一些资料,做了 ...
- 安卓平台ARM Mali OpenCL例子-灰度转换(转)
手头一块RK3288的板子,在板子上测试了一张1080p的彩色图灰度转换的OpenCL例子.OpenCL没有任何优化.例子请移步这里. 该例子是编译成安卓平台下的可执行程序. 进入jni文件夹,进行如 ...
- js获取时间戳的三种方式
js获取时间戳的三种方式 CreateTime--2018年5月23日08:44:10 Author:Marydon // 方式一:推荐使用 var timestamp=new Date().ge ...
- 【bat】通过for循环复制一张图片100次
代码如下: @echo off set "F=1" cd C:\Users\Thinkpad\Desktop\img for /L %%F IN (1,1,100) DO COPY ...
- Spring 基于xml配置方式的事务
参考前面的声明式事务的例子:http://www.cnblogs.com/caoyc/p/5632198.html 我们做了相应的修改.在dao中和service中的各个类中,去掉所有注解标签.然后为 ...
- 【LeetCode】81. Search in Rotated Sorted Array II (2 solutions)
Search in Rotated Sorted Array II Follow up for "Search in Rotated Sorted Array":What if d ...
- freemarker,*.ftl文件在eclipse中正确的打开方式
解决方式一:下载eclipse相关的freemarker插件 解决方式二:本文重点介绍的,原生解决方式,方法特点无需下载插件,和eclipse编辑html和jsp文件一模一样 步骤: 1:window ...
- AFLW如何获取你想要的21点人脸关键点数据
目前人脸检测和人脸的关键点的数据库根据关键点个数:5,20,21,29,68等.https://blog.csdn.net/XZZPPP/article/details/74939823该网页详细列出 ...
- C#:Ini文件操作(待补充)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.R ...
- poj 3691 DNA repair(AC自己主动机+dp)
DNA repair Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 5877 Accepted: 2760 Descri ...