胜还是平?PigvsHive!!! -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【meiwen.anslib.com - 电脑资料】

    这篇文章讨论了pig和hive的特性,

胜还是平?PigvsHive!!!

开发者通常处于选择满足业务需求的技术体系。 在hadoop体系中,pig和hive很相似,并能给出几乎相同的结果,但是那种技术更适合特殊的业务场景了?这里列出了pig和hive的一些对比。

    PIG and Hive:

    流类型:

    Pig是过程式数据流语言。过程式语言通常按照一步一步的执行方式去编写,你能够控制和优化每一步。

    Hive更像sql,因此,它是声明式语言,你要指定需要做什么而不是怎么做。Hive依靠自己的优化器,因此hive中优化是比较难的。

    易用性:

    Pig拥有新而不同的语法,需要额外的时间去学习。

    Hive更像sql,开发者会更兴奋的去使用hive.

    一般场景:

    推荐程序开发者使用Pig。主要原因是它计算高效,当你的查询有大量的join和filter时,pig更合适。

    Hive更多的用于分析,它遵循Hadoop和DatawareHouse一些规则。一般更倾向使用Hive产生报表。如果你的查询join和filters比较少可以继续使用Hive,相反,如果查询拥有很多join,Hive的性能也许会降低。

    数据类型:

    Pig能高效处理结构化和非结构化数据。

    Hive能高效的处理结构化数据。

    中间层:

    Pig使用变量表示数据,当要存储中间结果,可以很容易的用变量存起来并在以后引用,

电脑资料

胜还是平?PigvsHive!!!》(http://meiwen.anslib.com)。

    Hive使用表表示数据,存储中间结果比较困难,需要创建一个表,并从其他的表插入进去。因此,呈现一个复杂的查询时,可能需要几百行的代码。

    调试方式:

    Pig可以使用本地模式调试。

    Hive使用本来模式调试比较复杂并且很费时。

    扩展性:

    Pig中UDF很容易。

    Hive中UDF相对麻烦。

    维护性:

    Pig比Hive差一点。

    Hive比较简单。

    持久性:

    Pig中可能不会保留变量的值,每一次你都需要重新执行pig代码重新获取变量值。

    Hive中即使退出当前会话外部表依然存在,因为外部表依然指向HDFS文件。

    开发时间:

    pig开发需要更多的时间,更多的依赖对pig的熟悉度。

    SQL语句,开发时间很少。

    兼容性:

    RDBMS与Pig兼容有点复杂,因为pig的语法完全不同。

    大部分在RDBMS中的sql可以在Hive中执行,只有少数需要修改。

    数据量:

    Pig处理大数据很高效。

    Hive有时会内存泄露和不靠谱的性能,然而,有一些参数可以进行调整和定位问题。

最新文章