繁体   English   中英

hive、pig、map-reduce 用例之间的区别

[英]Difference between hive,pig,map-reduce use cases

map-reduce、hive、pig 之间的区别

pig:它是一种数据流语言,它可以处理任何基本上用于将半结构化、非结构化数据转换为结构化的数据,以便可以使用窗口函数等用于 hive 高级分析。

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

我知道在后端, pig 和 hive 都使用 map -reduces 。

我知道 map-reduce 可以成为程序员的好工具,对于 sql 人员来说,hive 或 pig

我只想知道是否有任何特定的用例可以用于 hive、pig 和 map-reduce

基本上我们决定我们必须在这里使用 pig 在这里 hive 或者我们必须使用 map -reduce 。

Map-Reduce:比 pig 或 hive 具有更好的性能,但需要更多的开发时间。

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

Hve:SQL 类型语言,具有一些不错的功能,例如分区和分桶以提高读取性能。此外,hive 强制读取模式。

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

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

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

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

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

Cloudera 等公司提供了 Pig、Hive 和其他 Hadoop 工具包,因此您不必在两者之间进行选择。

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

Mapreduce : apache 实现了它。 强烈推荐处理整个数据,它的时间消耗和所需的程序技能,如 java(强烈推荐)、pyghon、ruby 和其他编程语言。 使用 mapper 和 reducer 函数聚合和排序总数据。 Hadoop 默认使用它。

Hive :Facebook 实现了它。 大多数分析师尤其是大数据分析师使用此工具来分析数据,尤其是结构数据。 后端这个hive工具使用mapreduce进行处理。 Hive 内部使用称为 HQL 的特殊语言,它是 SQL 语言的子集。 精通 SQL 的人可以使用 Hive。 强烈推荐给面向数据仓库的项目。 处理非结构化特别是无模式数据非常困难。

Pig: Pig 是一种脚本语言,由 Yahoo 实现。 Pig 和 Hive 之间的主要区别在于 Pig可以处理任何类型的数据,无论是结构化数据还是非结构化数据。 这意味着它非常适合流数据,如卫星生成的数据、实时事件、无模式数据等。 Pig 首先加载数据,然后程序员编写依赖于数据的程序以使其结构化。 谁是编程语言专家,他们将选择这个 Hadoop 生态系统。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM