Hadoop Streaming, C#, & Azure with External Libraries
本文关键字:Azure with External Libraries amp Streaming Hadoop | 更新日期: 2023-09-27 18:36:11
我正在使用Hadoop Streaming在Azure的Linux集群上运行C#中的mapreduce作业。但是,我需要使用 MathNet.Numerics 库。我使用 NuGet 包管理器抓取了 dll,然后将 dll 作为参考文件包含在 lib 文件夹中,并确保生成操作设置为:嵌入的资源。
每当我尝试运行以下命令时:
hadoop jar ./hadoop-streaming-2.6.0.jar -input wasb:///CSV/ -output
wasb:///Output/reducer1.txt -file ./Mapper.exe -mapper Mapper.exe
-file ./Reducer.exe -reducer Reducer.exe
我在输出文件中收到以下错误:
System.IO.FileNotFoundException: Could not load file or assembly
'MathNet.Numerics, Version=3.11.0.0, Culture=neutral, PublicKeyToken=null'
or one of its dependencies.
File name: 'MathNet.Numerics, Version=3.11.0.0, Culture=neutral, PublicKeyToken=null'
我还尝试复制到 MathNet.Numerics.dll 复制到集群,并在初始命令中包含带有标记的文件:
hadoop jar ./hadoop-streaming-2.6.0.jar -input wasb:///CSV/ -output
wasb:///Output/reducer1.txt -file ./Mapper.exe -mapper Mapper.exe
-file ./Reducer.exe -reducer Reducer.exe -file ./MathNet.Numerics.dll
但结果是一样的。
在 VS 2014+ 中的窗口上- 右键单击解决方案资源管理器中的"引用"。-选择:管理 NuGet 包单击浏览,然后输入您尝试安装的库,它应该获取您需要的所有内容,包括依赖项。
在带有 Mono 的 Linux 上:-https://docs.nuget.org/contribute/setting-up-the-nuget-development-environment- 向下滚动到 Linux 安装说明
我没有在 Mono 上使用过 NuGet,但我认为它应该以完全相同的方式工作。我至少会尝试一下,看看你是否只是在某处缺少依赖项,因为它应该会自动为你神奇地获取它们。