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

  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:

  之前的文章里介绍过了。

时间: 2024-09-29 08:42:39

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

服务器-常用的软件管家检查软件更新的工作原理是什么?

问题描述 常用的软件管家检查软件更新的工作原理是什么? 软件管家是如何检测本机软件是否有新版本的?扫描更新的具体过程是怎样的? 是通过扫描本地的注册表,还是读取每款软件的配置文件? 如果是配置文件的话是什么样的配置文件:看注册表的话,有些软件在注册表中没有版本信息. 软件管家提示的更新软件是保存在软件管家的服务器上?还是说保存在官方网站上,软件管家只是代替软件发送一个更新请求? 通过wireshark抓包,能看出来很大一部分软件检查更新时服务器都会返回一个XML文件,想问下这个xml文件是什么作

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

1.介绍    Keeaplived主要有两种应用场景,一个是通过配置keepalived结合ipvs做到负载均衡(LVS+Keepalived),有此需求者可参考以往博文:http://lizhenliang.blog.51cto.com/7876557/1343734.另一个是通过自身健康检查.资源接管功能做高可用(双机热备),实现故障转移.   以下内容主要针对Keepalived+MySQL双主实现双机热备为根据,主要讲解keepalived的状态转换通知功能,利用此功能可有效加强对My

Hadoop分布式文件系统HDFS的工作原理详述

Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统.HDFS是一个高度容错性的系统,适合部署在廉价的机器上.它能提供高吞吐量的数据访问,非常适合大规模数据集上的应用.要理解HDFS的内部工作原理,首先要理解什么是分布式文件系统. 1.分布式文件系统 多台计算机联网协同工作(有时也称为一个集群)就像单台系统一样解决某种问题,这样的系统我们称之为分布式系统. 分布式文件系统是分布式系统的一个子集,它们解决的问题就是数据存储.换句话说,它们是横跨在多台计算机上的存

《Hadoop MapReduce性能优化》一1.3 Hadoop MapReduce的工作原理

1.3 Hadoop MapReduce的工作原理 Hadoop MapReduce性能优化经过一个或者多个步骤,MapReduce编程模型可以用来处理许多大规模数据问题,还可以更高效地实现MapReduce编程模型来支持使用大量机器处理大量数据的问题.在大数据的背景下,可以处理的数据规模可以大到无法在单机存储. 在典型的Hadoop MapReduce框架下,数据拆分为数据块并分发到集群内的多个节点上.MapReduce框架通过把计算逻辑转移到数据所在的机器,而不是把数据转移到其能够得以处理的

360发布《用户隐私保护白皮书》公布旗下软件工作原理

10月11日下午消息,处于风口浪尖的安全厂商360今日发布<用户隐私保护白皮书>,详细阐述360旗下每款软件的工作原理.360同时呼吁其他http://www.aliyun.com/zixun/aggregation/11962.html">互联网软件厂商把自己的行为全部透明化及公开化. 360公布旗下软件工作技术及原理 360今日举行媒体发布会正式发布<用户隐私保护白皮书>.据360介绍,<白皮书>公布360旗下所有软件的工作原理和细节,用户能够了解到

360公布旗下软件工作原理呼吁软件同行透明化

10月11日下午消息,处于风口浪尖的安全厂商360今日发布<用户隐私保护白皮书>,详细阐述360旗下每款软件的工作原理.360同时呼吁其他互联网软件厂商把自己的行为全部透明化及公开化. 360公布旗下软件工作技术及原理 360今日举行媒体发布会正式发布<用户隐私保护白皮书>.据360介绍,<白皮书>公布360旗下所有软件的工作原理和细节,用户能够了解到360在工作过程中的各种操作行为.为什么要进行这类操作.这些操作可能涉及到各类电脑信息.以及360上传了哪些信息.为什么

让你提前认识软件开发(52):系统某模块工作原理详述

第3部分 软件研发工作总结 系统某模块工作原理详述   [文章摘要]         某模块在系统中占有非常重要的地位,该模块能够对符合条件的动态信箱进行清理.本模块直接清理的信箱包括:过期动态信箱.冷冻信箱和空动态信箱:删除非动态信箱由本模块发送消息到其它模块完成.         本文对该模块的工作原理的详细介绍,为相关模块的开发和测试提供了有益的参考,同时也有利于现场人员对本模块进行维护.   [关键词]         系统  模块  数据库  流程   1. 本模块删除的信箱类型   

彻底理解引用在 Android 和 Java 中的工作原理

本文讲的是彻底理解引用在 Android 和 Java 中的工作原理, 几周前,我很荣幸地参加了在波兰举行的 Mobiconf ,移动开发者参加的最好的研讨会之一.我的朋友兼同事 Jorge Barroso 做了个名为"最好(良好)的做法"的演说 ,这让我在听后很有感触: 对于一个 Android 开发者,如果你不使用 WeakReferences,这是有问题的. 举个恰当的例子,几个月前,我发布了我的最后一本书 "Android High Performance"

Hadoop学习-生态体系(ecosystem)概览

0. 大背景 全球No.1搜索引擎公司谷歌(Google)面临每天海量搜索引擎数据的问题,经过长时间的实践积累, 谷歌形成了自己的大数据框架,但是并没有开源,而是发表了一篇论文,阐述了自己的思想,在论文中 提到了MapReduce的方法.这篇论文,被Doug Cutting也就是后来的Hadoop之父所关注,引起了他极大的兴趣. 因为,这个时候,他正在致力于一个项目,该项目需要多任务并行处理大量的数据,他和伙伴努力了多次,结果都不理想. 于是,Doug和他的团队决定基于Google的MapRed