首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Geos、Shapely和Hadoop流

Geos、Shapely和Hadoop流
EN

Stack Overflow用户
提问于 2015-07-07 03:55:04
回答 2查看 346关注 0票数 1

我试图运行Hadoop流作业来处理地理空间数据。为此,我使用了需要修长利布戈斯函数。

但是,作业失败,因为集群上没有安装libgeos。

有没有一种方法可以将libgeos传送到集群并从目录(可能是通过.so-files)读取-archives文件?

运行命令的示例

代码语言:javascript
复制
hadoop jar /usr/lib/hadoop-mapreduce/hadoop-streaming.jar -D    stream.num.map.output.key.fields=2 -D mapred.text.key.partitioner.options=-k1,1 -archives hdfs://namenode:port/user/anaconda.zip#anaconda -files /some/other/stuff -input /path/to/input -output /user/geo_stuff -file /home/mr_files/mapper.py -mapper "mapper.py"

mapper.py一开始就像..。

代码语言:javascript
复制
#!./anaconda/anaconda/bin/python
import shapely
from cartopy.io import shapereader
from shapely.geometry import Point
...more stuff

这会产生以下错误

代码语言:javascript
复制
from shapely.geos import lgeos
File "./anaconda/anaconda/lib/python2.7/site-packages/shapely/geos.py", line 58, in <module>
_lgeos = load_dll('geos_c', fallbacks=['libgeos_c.so.1', 'libgeos_c.so'])

File "./anaconda/anaconda/lib/python2.7/site-packages/shapely/geos.py", line 54, in load_dll
libname, fallbacks or []))

OSError: Could not find library geos_c or load any of its variants ['libgeos_c.so.1', 'libgeos_c.so']
EN

回答 2

Stack Overflow用户

发布于 2015-07-07 23:43:42

如果要将文件从主节点复制到Hadoop集群上的所有核心节点,可以通过在主节点上运行此操作(Key.pem是用于ssh到主节点的秘密密钥,在运行此操作之前必须将其复制到主节点上):

代码语言:javascript
复制
#!/bin/bash
nodes=(`hadoop dfsadmin -report | grep Hostname | sed 's/Hostname: //'`)
for workerip in nodes
do
    scp -i Key.pem -o UserKnownHostsFile=/dev/null \
        -o StrictHostKeyChecking=no \
           /usr/local/lib/libgeos_c* $workerip:/usr/local/lib/
done
票数 0
EN

Stack Overflow用户

发布于 2015-07-08 21:25:02

如果在一个非标准位置上有一个用于GEOS的environment的libgeos_c.so共享库,您可以设置一个环境变量来使用该文件:

代码语言:javascript
复制
export GEOS_LIBRARY_PATH=/path/to/libgeos_c.so.1

但是,您需要确保满足依赖关系。例如见:

代码语言:javascript
复制
ldd /path/to/libgeos_c.so.1

请参阅libgeos.py的源代码,了解如何使用环境变量查找GEOS共享库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31259463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档