Номинатим европейская карта индексация / импорт

Я установил nominatim на моем локальном компьютере с ОС centOS 6.6, следуя там wiki.guide http://wiki.openstreetmap.org/wiki/Nominatim/Installation Я следую инструкциям строка за строкой, и мне удается импортировать небольшую карту (monaco-latest.osm.pbf) и все идет хорошо. Теперь я попытался импортировать европейскую карту (15,8 ГБ), я следую той же процедуре, я запускаю команду

 ./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 и 250 ГБ. Дисковое пространство 4 ГБ.

Пожалуйста, помогите мне. большое спасибо

Привет Артур и большое спасибо за ваш ответ. Теперь, читая ваш пост, я почти уверен, что процесс занят, потому что setup.log один и тот же уже 4 дня. Важный вопрос: могу ли я установить osm2pgsql -cache до 18000, даже если на моей машине 4 ГБ?? Я прочитал, что кэш-память должна составлять половину оперативной памяти компьютера, чем если у меня 4 ГБ кэш-памяти должно быть 2048. Это правильно?? Затем я попытался установить карту на другую машину, с 500 ГБ HD и 16 ГБ ОЗУ (это виртуальная машина Centos 6,6). Когда я запускаю импорт карты, я перенаправляю стандартный вывод и ошибку в два разных файла: в файле setup.log я вижу некоторую таблицу создания и некоторую вставку (файл около 100 строк), а в нижней части файла я вижу ИМПОРТ Чем Я читаю файл 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 при выполнении внешней команды", а в другой раз ошибка не появляется и процесс просто останавливается. Почему этот сценарий? Почему процесс остановился именно в этот момент? Пожалуйста, помогите мне много гуглить, но я ничего не нахожу. Спасибо

1 ответ

Вы должны проверить setup.log, если он растет с содержанием, похожим на:

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

Это означает, что задача импорта обработала 930027 элементов за 17491 секунду, что дает около 53,171745 объектов в секунду, поэтому расчетное время составляет 1053255 секунд.

У вас 30 рангов, насколько я помню, 26-е и 30-е - самые большие.

Если вы хотите ускорить его, возможно, попробуйте поработать с настройками производительности PG, как написано в руководстве по установке Nominatim, раздел Настройка PG.

Я вижу, что кеш, который вы дали процессу osm2pgsql, довольно низок. Попробуй возможно с 18000,

Вы также можете работать над распараллеливанием этой операции, добавив --threads n вариант. Где n - количество потоков. По умолчанию количество процессоров - 1.

Если все работает нормально, но медленно, возможно, у вас где-то есть узкое место (операции ввода-вывода на диске, недостаточно памяти или, может быть, просто процессор замедляется).

Мой последний импорт в Европу занял около 10 дней на жестком диске i7/32GB RAM/7200, так что не ожидайте, что он сразу заработает.

Другие вопросы по тегам