gpt4 book ai didi

postgresql - Nominatim 欧洲 map 索引/导入

转载 作者:行者123 更新时间:2023-11-29 13:26:20 24 4
gpt4 key购买 nike

我已经按照那里的 wiki.guide http://wiki.openstreetmap.org/wiki/Nominatim/Installation 在我本地的 centOS 6.6 机器上安装了 nominatim。我按照一行一行的说明进行操作,并设法导入了一张小 map (monaco-latest.osm.pbf),一切顺利。现在我尝试导入欧洲 map (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 的机器上安装欧洲 map

请帮帮我。非常感谢

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

依此类推.. 这是我第三次尝试安装这个该死的 map ,也是第三次进程停止在:

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

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

最佳答案

你应该检查 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 installation guide PG Tuning section 中的 PG 性能设置。 .

我看到您提供给 osm2pgsql 进程的缓存非常低。尝试使用 18000

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

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

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

关于postgresql - Nominatim 欧洲 map 索引/导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33213064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com