1

我已经按照 wiki.guide 那里的 wiki.guide http://wiki.openstreetmap.org/wiki/Nominatim/Installation在我的本地 centOS 6.6 机器上安装了 nominatim 我按照说明逐行执行,我设法导入了一张小地图(monaco-latest .osm.pbf),一切顺利。现在我尝试导入欧洲地图(15.8 gb),我遵循相同的程序,我启动命令

 ./utils/setup.php --osm-file european.latest.osm.pbf --all --osm2pgsql-cache 2048 2>&1 | tee setup.log

5 天前,如果我启动命令ps -aux | 更多我看到 nominatim/postgres 进程的以下输出:

500      25306  0.0  0.0 230024   528 ?        S    Oct14   0:00 /usr/bin/php -C
q ./utils/setup.php --osm-file /srv/mappe/europe-latest.osm.pbf --all --osm2pgsq l-cache 2048
postgres 25310  0.0  0.0 509284  2792 ?        Ss   Oct14   0:00 postgres: mapserver nominatim [local] idle
500      25336  2.6 51.3 3908808 2015768 ?     R    Oct14 182:24 /srv/Nominatim-2.3.1/osm2pgsql/osm2pgsql -lsc -O gazetteer --hstore -C 2048 -P 5432 -d nominatim /srv/mappe/europe-latest.osm.pbf
postgres 25338  0.7  3.6 352208 142580 ?       Ss   Oct14  49:17 postgres: mapserver nominatim [local] COPY
postgres 25339 39.3  3.5 325964 141056 ?       Rs   Oct14 2726:28 postgres: mapserver nominatim [local] idle in transaction
postgres 25340  0.2  3.5 326520 141116 ?       Ss   Oct14  16:17 postgres: mapserver nominatim [local] COPY
postgres 25341  0.0  0.0 325808  3156 ?        Ss   Oct14   0:00 postgres: mapserver nominatim [local] COPY

如果,我启动命令:

psql -d postgres -c "select * from pg_stat_activity where datname = 'nominatim'"

我看到了一些日志,但是如果我编写以下代码,这让我很担心:

su - postgres
\connect nominatim
\dt

我只看到9张桌子...

我该怎么办??进程还在运行??卡住了??

我正在尝试在具有 centOS 6.7 和 250gb 磁盘空间 4gb ram 的机器上安装欧洲地图

请帮我。非常感谢

嗨,阿图尔,非常感谢您的回复。现在,阅读您的帖子,我很确定该过程很忙,因为 setup.log 自 4 天以来都是相同的。一个重要的问题:即使我的机器 RAM 为 4GB,我可以将 osm2pgsql -cache 设置为 18000 吗? ? 我读过缓存应该是机器 RAM 的一半,而不是如果我有 4gb RAM 缓存应该是 2048。它正确吗?比现在我尝试在另一台机器上安装地图,具有 500 GB HD 和 16 GB RAM(是一个 centos 6.6 虚拟机)。当我启动地图导入时,我将标准输出和错误重定向到两个不同的文件:在 setup.log 中,我可以看到一些创建表和一些插入(文件大约 100 行),并且在文件底部我看到 IMPORT Than我阅读了 error.log 文件,看到如下输出:

NOTICE:  table "place" does not exist, skipping
NOTICE:  type "keyvalue" does not exist, skipping
NOTICE:  type "wordscore" does not exist, skipping
NOTICE:  type "stringlanguagetype" does not exist, skipping
NOTICE:  type "keyvaluetype" does not exist, skipping
NOTICE:  function get_connected_ways(pg_catalog.int4[]) does not exist, skipping
Allocating memory for dense node cache
Allocating dense node cache in one big chunk
Allocating memory for sparse node cache
Sharing dense sparse Node-cache: cache=2048MB, maxblocks=262144*8192, allocation method=11 Mid: pgsql, scale=10000000 cache=2048
Setting up table: planet_osm_nodes
NOTICE:  table "planet_osm_nodes" does not exist, skipping
Setting up table: planet_osm_ways
NOTICE:  table "planet_osm_ways" does not exist, skipping
Setting up table: planet_osm_rels
NOTICE:  table "planet_osm_rels" does not exist, skipping
Reading in file: /srv/mappe/europe-latest.osm.pbf
Processing: Node(10k 10.0k/s) Way(0k 0.00k/s) Relation(0 0.00/s)
Processing: Node(20k 20.0k/s) Way(0k 0.00k/s) Relation(0 0.00/s)
...

依此类推..是我第三次尝试安装这张该死的地图,也是第三次停止该过程:

Processing: Node(1561860k 141.1k/s) Way(6002k 0.04k/s) Relation(0 0.00/s)

正是在这一点上,进程停止了,两次我看到类似于“gazzetter error exectuing external command”的错误,另一次没有出现错误,进程刚刚停止。为什么会出现这种情况??为什么这个过程恰好在那个时候停止了?请帮助我搜索很多,但我什么也没找到。谢谢

4

1 回答 1

1

你应该检查setup.log是否增长的内容类似于:

  Done 930027 in 17491 @ 53.171745 per second - Rank 30 ETA (seconds): 1053255.375000

这意味着,导入任务在 17491 秒内处理了 930027 个元素,每秒提供大约 53.171745 个对象,因此估计时间为 1053255 秒。

你有 30 个等级,据我记得第 26 和第 30 是最大的。

如果您想加快速度,可以尝试使用Nominatim 安装指南 PG Tuning 部分中所写的 PG 性能设置。

我看到你给osm2pgsql进程的缓存非常低。尝试使用18000.

您还可以通过添加--threads n选项来并行化此操作。其中n是线程数量。默认值为CPU 数量 - 1

如果everythink 工作正常但速度很慢,则可能您在某处遇到瓶颈(磁盘IO 操作、内存不足或CPU 速度变慢)。

我上次在 i7/32GB RAM/7200 HDD 上进口欧洲花了大约 10 天,所以不要指望它会立即工作。

于 2015-10-19T21:04:41.983 回答