【问题标题】:.pig script vs. java embeded pig: Which one is the fastest?.pig 脚本 vs. java 嵌入式 pig:哪个最快?
【发布时间】:2012-11-27 18:02:49
【问题描述】:

我的项目有一个 ASCII 输入文件,我使用 pig 脚本进行 mapreducing。在此脚本中,我使用子字符串获取指定的字符间隔。我想问我是否使用java来获取字符间隔,然后将jar文件嵌入到另一个减少我的数据的猪脚本中,我的程序运行得更快吗?

【问题讨论】:

    标签: java hadoop mapreduce apache-pig


    【解决方案1】:

    这完全取决于您如何在 map 方法中实现字符间隔拆分。如果您知道数据,则可以优化子字符串。检查这个线程:

    charAt() or substring? Which is faster?

    此外,一般来说,将 jars 添加到 hadoop 集群会增加文件传输和设置内部内容(类加载器、解包等)的一些开销,但在这种情况下,jar 大小应该可以忽略不计。因此,简而言之,添加您的 java 代码来执行映射器不应增加显着的开销,但如果 pig 生成的代码不是最佳的并且您的 java 代码对于您的字符串是最佳的,则可以改善映射器阶段。

    【讨论】:

    • 我不需要对 Substring 进行任何优化,所以我认为如果我在 java 中做同样的工作,速度将几乎相同。我说的对吗?
    • 我不确定是否有办法轻松检查 pig 生成的指令,但请记住,如果 pig 生成的指令不是最佳的,由于字节码优化,java 在某些情况下可能会执行得更好,但由于对象生成开销和垃圾收集也可能会变慢。我认为差异不会很大,但我不会相信我的话,因为我对猪的内部结构并不像对 jvm 内部结构那样熟悉。我会为一个小地图输入文件对这两种方法进行基准测试,看看它是否有什么不同。
    猜你喜欢
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    相关资源
    最近更新 更多