udf的默认文件夹

cl25kdpy  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(351)

刚开始使用hdinsight。
我想在pig-grunt模式下注册一个udf,但是要么它不起作用,要么我不知道把jar文件放在哪里以便pig加载它。
现在我所做的是将jar文件放在lib文件夹(c:\apps\dist\pig-0.9.3-snapshot\lib)和pig根文件夹(c:\apps\dist\pig-0.9.3-snapshot)中,但对我来说什么都不管用,只要继续得到这个:

REGISTER elephant-bird-pig-3.0.0.jar;

答案是:
2013-10-27 09:28:53466[main]error org.apache.pig.tools.grunt.grunt-错误101:本地文件'elephant-bird-pig-3.0.0.jar'不存在。日志文件中的详细信息:c:\apps\dist\hadoop-1.1.0-snapshot\logs\pig\u 1382864851131.log
请让我知道在哪里和如何注册这个自定义项。
谢谢您

cgyqldqp

cgyqldqp1#

你不应该把它们放在bin文件夹很长时间,因为如果节点被重新映像,你可能会丢失文件。最好将它们放入windowsazure存储中。
将udf的额外.jar复制到windows azure存储blob。。。黄蜂。
例如,您可以创建一个“pigextras”文件夹。您的源位置将有所不同,而您的目标位置将是您的容器和帐户。
通过hadoop命令行上载:
hadoop fs -copyFromLocal C:\files\MyUDF.jar wasb://container@account.blob.core.windows.net/PigExtras/MyUDF.jar hadoop fs -copyFromLocal c:\apps\dist\pig-0.11.0.1.3.1.0-06\piggybank.jar wasb://container@account.blob.core.windows.net/PigExtras/piggybank.jar 您也可以通过其他方式上传,例如:
通过.net代码,如http://www.windowsazure.com/en-us/develop/net/how-to-guides/blob-storage/#upload-斑点
通过命令行工具,如azcopy。去拿吧https://github.com/downloads/windowsazure/azure-sdk-downloads/azcopy.zip azcopy公司
在pig拉丁语脚本中引用.jar位置。我相信可以使用通配符来加载某个文件夹中的所有jar,但如果其中有很多jar,则效率可能会很低。 REGISTER wasb:///PigExtras/*.jar; myset = load 'wasb://container@account.blob.core.windows.net/data/file.txt' using MyUDF(); dump myset

相关问题