首页 > Web开发 > 详细

linux环境下搭建osm_web服务器一(1):

时间:2017-01-21 18:13:57      阅读:381      评论:0      收藏:0      [点我收藏+]

Postgresql配置及osm2pgsql原始数据导入

2012年,Ubuntu 12.04LTS发布,又一个长效支持版,我们又该更新OpenStreetMap服务器了,这次,将详细在博客中记录配置过程。关于前面对OpenStreetMap的介绍,参考我的博文http://blog.csdn.net/goldenhawking/article/details/6402775

1、预防针

    全球数据导入工作非常耗时,也很容易出错,吸取前面N次的教训,在开始之前,打好预防针,主要有:

    a) 稳定的64位环境

    先前的博客中,2009年的数据集合还能运行在32位虚拟机中,2012年20GB的原始数据压缩文件展开后占用200GB以上的磁盘,光是ID一列字段就盛满4G的空间,显然32位是不行了。这次采用16GBwindows Server 、16核心盘阵服务器,2TB磁盘空间,VMBox虚拟机8GB内存以期资源充足。

 

   b) UPS电力供应+工作状态保护

    由于数据导入过程可能长达1-4周,为了吸取长时间断电即使UPS也挂了的惨痛教训,本次在Windows Server 2003 64bit + Oracle VirtualBox 4.18 下进行导入工作,以便在断电时,利用UPS的有限时间进行snapshot,而后休眠,以保证导入工作不被干扰。如果不使用虚拟机,直接使用系统的休眠,osm2pgsql与postgis  的 TCP连接有可能被重置(当你使用外部地址而不是localhost时),照样会挂。

 

  c) 质量过关的磁盘

    在中等内存容量下,采用slim模式导入,将面对持续数周的密集磁盘访问,采用盘阵速度较快,且容错保护好。以前出现过使用单块硬盘,读写了4周(3周导入,1周渲染),硬盘噪音超大,没用一年就挂了的惨痛经历。

 

 

2、最终目的

      完整导入全球Planet.OSM数据集,并编译、配置最新的Mapnik渲染器;采用最新的apache2+ mod_tile rended 搭建WebService;采用OpenLayers 实现 SlippyMap;利用GeoServer + OpenLayers +PostGIS叠加显示动态矢量数据。对拉丁语系、斯拉夫语系的地名进行翻译,并附带实现C-S架构的客户端

好了,下面开始第一篇,也是万事开头难,痛苦的数据导入过程。

------------------------------------------------------

 

本次,既然有8GB内存,就不在乎图形界面耗费的一两百MB了,使用Linux-Mint 13 64bit 作为基础平台,操作性好,利于安装eclipse、QT, code-blocks 等IDE进行开发实践。

<0>专门找一台机器,全天下载全球数据文件

      这一步在国内网速不好时,太要命了。用BT也不是太好,大家酌情考虑自己的方式。

      访问http://download.geofabrik.de/osm/ 下载感兴趣区域的数据,全球的直接google   Planet.osm ,到wiki的链接FTP去下载(暴慢),或者去http://osm-torrent.torres.voyager.hr/files/  去下载PBF种子(我的网速下,好不了哪去),这一步会花费好多天。osm.bz2格式的要比PBF大好多,导入的时候慢好多,建议能用就用 pbf的。如果使用PBF, 后面编译 osm2pgsql时,需要libprotobuf-c0-dev 和protobuf-c-compiler两个库,否则会不认。

     我这次是先下个中国的pbf,60MB,导入供功能测试,等到后面下完了,再导入全球的。

 

<1>安装PostgreSQL

[plain] view plain copy

  1. sudo apt-get update  
  2. sudo apt-get dist-upgrade  
  3. sudo apt-get install postgresql  
  4. sudo apt-get install postgresql-9.1-postgis postgresql-contrib-9.1 postgresql-server-dev-9.1  
  5. sudo apt-get install libpq-dev   

当然,也可以直接在X下新立得软件管理器中安装,顺便把pgAdminIII 给安上

下面进行配置。

 

<2>更改Linux  用户和PostgreSQL 的用户密码,创建用于数据访问的用户

为了用自己的postgres账户在 pgAdminIII中登录,以及远程访问数据库,我们要修改postgres的管理员密码

[plain] view plain copy

  1. sudo passwd postgres  


输入两遍自己的密码, 就更改了Linux下用户postgres的口令。而后,在数据库中修改 postgres 的密码,一般与上面操作系统中postgres用户的密码取一致。

[plain] view plain copy

  1. sudo su postgres  
  2.   
  3. psql -dpostgres  
  4.   
  5. ALTER USER postgres WITH PASSWORD ‘你的密码huawei.123‘;  



为了安全,创建一个用户,用于数据访问。为了和后面渲染契合,用户名 www-data,分别在console以及psql下执行:

[plain] view plain copy

  1. sudo passwd www-data  
  2. 在psql或者pgAminIII 中  
  3. CREATE ROLE "www-data" LOGIN  
  4.   PASSWORD ‘你想设置给www-data的密码‘  
  5.   SUPERUSER INHERIT CREATEDB NOCREATEROLE REPLICATION;  



<3>adminPack 安装

     如果安装了pgAdminIII,则会提示您没有安装服务器端adminpack,postgresql 9.1下,这个东西不再是 contrb,而是“扩展”extension,直接点击“修复repair”或执行

(未成功,用create extension postgis代替)

[plain] view plain copy

  1. create extension adminpack;  



以安装服务器管理员拓展包,否则,很多pgAdmin的功能用不了。

 

<4>建立PostGIS数据库

首先,我们要在2TB的分区文件夹下建立表空间。本例中, 2TB分区位于 /hugecargo

[plain] view plain copy

  1. cd /hugecargo  
  2. sudo mkdir pgtbs_osmgis  
  3. sudo chown postgres ./pgtbs_osmgis  

而后,在psql或者pgAdmin下创建表空间

[plain] view plain copy

  1. CREATE TABLESPACE pgtbs_osmgis  
  2.   OWNER "www-data"  
  3.   LOCATION ‘/hugecargo/pgtbs_osmgis‘;  

 

linux环境下搭建osm_web服务器一(1):

原文:http://www.cnblogs.com/BigFishFly/p/6337332.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!