因此,我在网上看到了一些教程,但是每个教程似乎都在做一些不同的事情。而且,它们似乎都没有指定您是要使事情在远程集群上运行还是在本地与远程集群进行交互等。
就是说,我的目标只是让我的本地计算机(一台Mac)能够使Pig与lzo压缩文件一起使用,而lzo压缩文件已存在于已经设置为可以与lzo文件一起使用的Hadoop群集中。我已经在本地安装了Hadoop,并且可以使用 hadoop fs -[command]
从集群中获取文件。
我还已经在本地安装了Pig,并在运行脚本或通过grunt运行东西时与hadoop集群通信。我可以很好地加载和播放非lzo文件。我的问题仅在于找到一种加载lzo文件的方式。也许我可以通过ElephantBird群集的实例来处理它们?我不知道,只在网上找到了很少的信息。
因此,任何简短的教程或答案都将非常棒,并有望为更多人提供帮助,而不仅仅是我自己。
最佳答案
我最近使它生效,并为我的同事编写了一个Wiki。这是一段摘录,详细介绍了如何使PIG与lzos一起使用。希望这对某人有帮助!
注意:这是在考虑Mac的情况下编写的。步骤与其他OS几乎相同,并且绝对可以为您提供在Windows或Linux上配置所需的知识,但是您需要进行一些推断(显然,将以Mac为中心的文件夹更改为您要使用的任何OS)重新使用,等等...)。
连接PIG以能够与LZO一起使用
到目前为止,这对我来说是最烦人且最耗时的部分-不是因为很困难,而是因为有50多种不同的在线教程,但没有一个对您有帮助。无论如何,我要做的就是:
在64位计算机上。
指向lzo native 库。您可以在$ HADOOP_HOME/conf/mapred-site.xml中执行以下操作:
<property>
<name>mapred.child.env</name>
<value>JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native/Mac_OS_X-x86_64-64/</value>
</property>
pig
来尝试grunt shell,并确保一切仍然有效。如果不是,您可能在mapred-site.xml中弄乱了某些内容,应该仔细检查它。 关于hadoop - 如何让Pig与lzo文件一起使用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7277621/