在HDInsight Azure

时间:2016-02-18 19:00:24

标签: c# apache-pig hdinsight

我正在使用HDInsight .NET SDK来使用C#sdk和pig。我在指定c#应用程序路径时遇到错误。

这是我在猪脚本中定义C#应用程序的方法

DEFINE pigudf `PigUDF.exe` SHIP('wasb://book@storage.blob.core.windows.net/PIG/app/PigUDF.exe');

收到错误“发货规格无效”'wasb://bookstore@storage160203122480.blob.core.windows.net/PIG/app/PigUDF.exe'不存在,但PigUDF.exe确实存在路径。

如果我从HDInsight群集控制台运行相同的查询,同时在群集上本地存储了pig脚本文件和c#app,它就会成功运行..即下面适用于hdinsight群集控制台

DEFINE pigudf `PigUDF.exe` SHIP('C:/PigUDF.exe');

其中pigudf.exe本地存储在群集上。

我甚至尝试通过HDInsight工具为visual studio运行它,但我得到了相同的错误。

我们将不胜感激。

感谢,

萨利姆

2 个答案:

答案 0 :(得分:0)

尝试使用http://而不是wasb://。 wasb协议用于访问Windows Azure blob存储。

DEFINE pigudf `PigUDF.exe` SHIP('http://book@storage.blob.core.windows.net/PIG/app/PigUDF.exe');

答案 1 :(得分:0)

您可以将udf复制到本地,更新其权限,发送并最终将其删除

fs -copyToLocal wasb://<container>@account/udf.exe
sh cacls udf.exe /E /G <group>:F
define myUdf `udf.exe`ship('udf.exe')
-- run your computation...
sh del udf.exe