2014-10-29 66 views
0

区别使用情况的map-reduce,蜂巢,猪差异,地图,减少之间

猪:它是一种数据流语言,它可以基本上用于转化半结构的任何处理数据,非结构化数据以便可用于使用开窗功能的蜂巢进阶分析等。

蜂巢:处理结构数据并提供sql类型查询语言。

我知道在后端猪和蜂房都使用map -reduces。

我知道映射简化可以为程序员,蜂巢或猪的SQL家伙

我只是想知道很好的工具是有任何具体的使用情况下,我们去了蜂巢,猪和映射简化

基本上我们决定我们必须在这里使用猪这里的蜂房,或者我们必须使用map -reduce。

+1

Duplicate http://stackoverflow.com/questions/17950248/pig-vs-hive-vs-native-map-reduce/17964271#17964271 – alexeipab 2014-10-30 20:25:49

回答

0

Map-Reduce:比猪或蜂巢有更好的性能,但需要更多的开发时间。

PIg:与map-reduce相比,开发时间短但性能差。

Hive:SQL类型语言,具有一些很好的功能,如分区和分区以提高性能读取。另外,配置单元在读取时强制执行模式。

+0

map-reduce如何比猪或蜂房有更好的性能比如你必须加入数据,所以写图减少效率高,因为你没有太多的选择。假设你有两个大表加入,这些表不能完全符合内存,那么你如何加入map -reduce – user3484461 2014-10-30 04:07:28

+0

并不完全正确,map-reduce的性能比Pig或Hive更高。但是我们可以说map-reduce比Pig和Hive更低。所以它允许更多的灵活性,但需要更多的代码和时间来编写它。 – 2015-03-02 20:55:15

0

Pig用于格式化非结构化/半结构化数据格式。假设您的数据中有一个时间戳,而不是每个Hive时间戳格式。您可以使用pigUDF转换它并格式化数据。这只是一个例子来解释。你可以使用Pig做更多的事情。

Hive基本上用于结构化数据。这可能不适合非结构化数据。这需要更多时间来执行,因为它转换为Mapreduce作业。我建议您使用比配置单元快得多的impala。

+0

我已经在我的问题中提到过这个信息,基本上我正在寻找特定的用例 – user3484461 2014-10-30 04:08:44

0

Pig是一种数据流语言。这意味着你不能使用if语句或循环。 如果你需要做很多重复,最好学习mapreduce。

你可以通过将pig嵌入python脚本来解决这个问题,但这需要更长的时间,因为它必须在每次迭代循环中加载所有jar文件。

基本上可以归结为您花了多少时间进行原型设计与您有多少生产工作。 如果您是数据科学家或分析师,那么您的大部分工作都是需要大量原型设计的新项目。这意味着你关心快速获得结果。那么你会喜欢猪或蜂巢。 如果你在一个开发团队中,你想根据不需要测试的商定方法构建健壮的代码,那么你更喜欢mapreduce。

有像Cloudera这样的公司提供Pig,Hive和其他Hadoop工具包,因此您不必在两者之间进行选择。

0

Map Reduce是hadoop的内部组件,其他Pig和hive都是hadoop eco系统,它意味着在hadoop上运行。 mapreduce,pig和hive目的都是以不同方式处理大量数据。

Mapreduce:apache实现它。强烈建议处理整个数据,这是时间消耗和所需的程序技能,如java(高度推荐),pyghon,ruby和其他编程语言。总数据汇总和使用映射器和减速器功能进行排序。 Hadoop默认使用它。

配置单元:Facebook实施它。大多数分析师特别是bigdata analysts使用这个工具来分析数据,特别是结构数据。后端此配置单元工具使用mapreduce进行处理。内部Hive使用称为HQL的特殊语言,它是SQL语言的子集。 SQL中谁是好人,他们可以和Hive一起使用。强烈建议面向Datawarehouse的项目。处理非结构化特别是无模式数据非常困难。

猪: 猪是一种脚本语言,由雅虎实施。主要的difference between pig and Hive是猪可以处理任何类型的数据,无论是结构化数据还是非结构化数据。这意味着它非常值得推荐,用于流式数据,如卫星生成的数据,实时事件,无模式数据等。猪首先加载数据后,程序员编写一个程序取决于数据,使其结构化。谁是编程语言方面的专家,他们会选择这个Hadoop生态系统。