map reduce、hive、pig 之间的差异
pig:它是一种数据流语言,它可以处理任何基本上用于将半结构、非结构化数据转换为结构的数据,因此可以使用窗口函数等进行蜂窝高级分析。
配置单元:处理结构数据并提供sql类型的查询语言。
我知道在后台,猪和蜂箱都使用地图缩小。
我知道map reduce对程序员来说是个好工具,对sql guy 来说是个不错的工具
我只想知道我们使用蜂箱、清管器和地图减少的具体用例是什么
基本上,我们决定我们必须在这里使用pig,或者我们必须使用map-reduce。
Map Reduce:性能比pig或hive更好,但需要更多的开发时间。
PIg:与map reduce相比,开发时间更短,但性能较差。
Hve:SQL类型的语言,具有一些很好的功能,如分区和bucketing,可以提高读取性能。此外,配置单元在读取时强制执行架构。
Pig用于格式化非结构化/半结构化数据格式。假设您的数据中有一个时间戳,它不是按照Hive时间戳格式。您可以使用pigUDF进行转换并格式化数据。这只是一个解释的例子。你可以用Pig做更多的事情。
Hive基本上用于结构化数据。这可能不适用于非结构化数据。在转换为Mapreduce作业时,这需要更多的时间来执行。我建议你用黑斑羚,它比蜂箱快得多。
Pig是一种数据流语言。这意味着您不能使用if语句或循环。如果你需要做大量的重复,最好学习mapreduce。
您可以通过将pig嵌入到python脚本中来解决这个问题,但这将需要更长的时间,因为它必须在循环的每次迭代中加载所有jar文件。
基本上,它可以归结为你花在原型设计上的时间与你有多少生产工作。如果你是一名数据科学家或分析师,你的大部分工作都是需要大量原型设计的新项目。这意味着你关心快速取得结果。那你更喜欢猪还是蜂巢。如果你在一个开发团队中,你想基于商定的方法构建健壮的代码,而不需要测试,那么你更喜欢mapreduce。
像Cloudera这样的公司提供Pig、Hive和其他Hadoop工具包,因此您不必在两者之间进行选择。