Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在hadoop reducer中加载本机库?_Hadoop_Mapreduce_Native - Fatal编程技术网

在hadoop reducer中加载本机库?

在hadoop reducer中加载本机库?,hadoop,mapreduce,native,Hadoop,Mapreduce,Native,我需要为reduce方法加载一个本机库,并将其添加到分布式缓存中,但当我在映射方法中调用System.loadLibrary(mylib.so)时,我收到一个错误,映射任务失败: Error: no mylib.so in java.library.path 即使我将其添加到分布式缓存中。我漏了一步吗?在我的作业配置中,我调用: DistributedCache.addCacheFile(uri, job.getConfiguration()); 其中uri是hadoop文件系统上mylib

我需要为reduce方法加载一个本机库,并将其添加到分布式缓存中,但当我在映射方法中调用System.loadLibrary(mylib.so)时,我收到一个错误,映射任务失败:

Error: no mylib.so in java.library.path
即使我将其添加到分布式缓存中。我漏了一步吗?在我的作业配置中,我调用:

DistributedCache.addCacheFile(uri, job.getConfiguration());
其中uri是hadoop文件系统上mylib.so的路径


这个本机库依赖于许多其他库,它们都存在于hadoop fs上的my/hadoop/fs/mystuff/libs上。我将它们全部添加到分布式缓存中,甚至尝试使用System.loadLibrary()调用在reduce任务中加载它们。但我一直得到相同的java.library.path错误。我还尝试将这些库作为命令行参数添加到-files标志中,但仍然出现上述错误。

虽然不确定发生这种情况的原因,但请查看Cloudera的博客条目。

您是否尝试独立编写代码,而不是在map reduce中编写?据我所知,System.loadLibrary期望库名不带“.so”或“.dll”后缀…

以上链接似乎已断开。新链接: