安裝和配置rasdaman
rasdaman簡介
rasdaman(”raster data manager”)格數據管理器: 號稱是世界上最靈活和可伸縮的陣列引擎。
它允許存儲和查詢大量多維數組,如傳感器、圖像、模擬和統計數據,這些數據出現在地球、空間和生命科學等領域。這個全球領先的陣列分析引擎以其靈活性、性能和可擴展性而著稱。rasdaman可以處理駐留在文件系統目錄和數據庫中的數組。
一個常用的同義詞是柵格數據陣列,如二維光柵圖形;這實際上促使名稱rasdaman。然而,rasdaman在維度數目沒有限制它可以,例如,一維二維測量數據、衛星圖像、三維X/Y/T的時間序列圖像和X、Y、Z的勘探資料,四維的海洋和氣候數據,甚至超越時空的維度。
新一代地理柵格服務器 :從簡單的地理圖像服務到複雜的分析,rasdaman提供了時空光柵數據的所有功能——包括規則網格和不規則網格。正如最近的科學基準所顯示的那樣,它的性能和可擴展性是前所未有的。爲了利用這種支持技術,用戶不必學習新的接口:rasdaman與R、OpenLayers、Leaflet、NASA WorldWind、GDAL、MapServer、ESRI ArcGIS等軟件進行了平滑集成,想要了解更多可點擊這裏。
下面介紹一下rasdaman的幾種安裝方法:
一、通過rpm安裝rasdaman
下載並安裝
向yum添加rasdaman倉庫
sudo - root curl "http://download.rasdaman.org/packages/rpm/stable/CentOS/7/x86_64/rasdaman.repo" -o /etc/yum.repos.d/rasdaman.repo
現在在yum下可以使用rasdaman包
yum clean all yum update yum search rasdaman
輸出:
rasdaman.x86_64 : Rasdaman is the leading Array Database for flexible, scalable : analytics of massive multi-dimensional array (raster) data, : such as spatio-temporal datacubes.
向yum添加EPEL倉庫
yum install epel-release
安裝rasdaman包,並啓動
yum install rasdaman source /etc/profile.d/rasdaman.sh
注: 要想使用petascope,必須配置數據庫爲postgres,目前的rpm包都是以sqlite爲默認包,後期會有更想,請期待!
配置
檢查
rasql -q 'select c from RAS_COLLECTIONNAMES as c' --out string
輸出結果:
rasql: rasdaman query tool v1.0, rasdaman v9.7.0 -- generated on 02.07.2015 08:44:56. opening database RASBASE at localhost:7001...ok Executing retrieval query...ok Query result collection has 0 element(s): rasql done.
檢查petascope是否初始化,這是地址:
http://localhost:8080/rasdaman/ows # http://192.168.231.131:8080/rasdaman/ows
注: 這個在其他機器啓動時會出現不能鏈接情況,需要將端口號開放或者關閉服務器的防火牆。
rasdaman被安裝在
/opt/rasdaman
下
更新
無論什麼時候有一個新的版本發佈,通過以下步驟便進行升級更新:
su - root
service rasdaman stop
yum clean all
yum update rasdaman
service rasdaman start
#如果使用petascope需要啓動下面的
service tomcat restart
migrate_petascopedb.sh
執行完以上步驟後,你的rasdaman將會被更新。
管理
當以上步驟被執行完成後,rasdaman安裝或者根更新完成後,這部分提供管理者一些額外後臺信息:
service rasdaman start
service rasdaman stop
service rasdaman status
相似的,tomact
/tomact6
和postgresql
服務也可以被啓動或者停止。
二、通過source安裝rasdaman
創建rasdaman用戶
yum install epel-release
adduser rasdaman
passwd rasdaman
# 切換到rasdaman用戶
sudo -u rasdaman -i
注: 修改/etc/sudoers
修改sudoers方法
vi /etc/sudoers
## 方法一: 把前面的註釋(#)去掉
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
## 然後修改用戶,使其屬於root組(wheel),命令如下:
#usermod -g root tommy
## 方法二:在root下面添加一行,如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
rasdaman ALL=(ALL) ALL
需要包的說明和安裝
sudo yum install \
git make libtool pkgconfig m4 unzip curl \
bison gcc gcc-c++ libedit-devel zlib-devel openssl-devel \
flex flex-devel boost-devel libstdc++-static \
gdal-devel hdf-devel netcdf-devel grib_api-devel netcdf-cxx-devel netcdf4-python \
postgresql-devel postgresql-contrib postgresql-server sqlite-devel \
gdal-python gdal-java python-setuptools python-pip python-magic python2-netcdf4 grib_api\
java-1.8.0-openjdk java-1.8.0-openjdk-devel java-1.8.0-openjdk-headless tomcat maven2 \
libgeotiff libgeotiff-devel libtiff libtiff-devel \
doxygen
sudo yum install cmake3
sudo pip install glob2
注:源碼編譯安裝boost,安裝過程請參考boost1.67,
配置條件
確保java和javac版本一致
java -version javac -version
允許用戶添加部署tomcat webapps目錄
sudo adduser $USER tomcat # reboot or logout/login is necessary for this command to take effect
如果支持PostgresSQL,請添加postgres用戶:
sudo -u postgres createuser -s $USER
如果使用tomcat,請設置tomacat最大heap空間>=1GB。設置方式如下:
修改etc/default/tomcat7的JAVA_OPTS=Xmx1024m,然重啓tomcat
sudo service tomcat restart.
。
獲取源代碼並安裝
獲取源代碼
git clone https://github.com/javyxu/rasdaman.git # this creates subdirectory rasdaman/ cd rasdaman/
編譯並安裝
- 配置
~/.bashrc
文件
export RMANHOME=/var/local/rasdaman export RMANSRC=/home/rasdaman/Downloads/rasdaman # rasdaman sources export RASDATA="$RMANHOME/data" export CATALINA_HOME=/var/local/tomcat-8.5 export PATH=$PATH:$RMANHOME/bin
- 確保正確加載以上配置:
source ~/.bashrc
- 利用CMake(v3+)以上版本進行安裝,本文安裝的是cmake的版本是3.11.2,對應的boost版本是1.76
mkdir build cd build cmake3 ../rasdaman -DCMAKE_INSTALL_PREFIX=/var/local/rasdaman \ -DFILE_DATA_DIR=/var/local/rasdaman/data -DDEFAULT_BASEDB=postgresql \w -DENABLE_PROFILING=ON -DGENERATE_DOCS=ON -DUSE_GRIB=ON -DUSE_NETCDF=ON \ -DENABLE_BENCHMARK=ON make make install
cmake參數的數碼:
- 配置
參數 | 可選 | 描述 |
---|---|---|
CMAKE_INSTALL_PREFIX | (default /opt/rasdaman) | 安裝目錄 |
CMAKE_BUILD_TYPE | Release,Debug (default Release) | 指定編譯類型 |
CMAKE_VERBOSE_OUTPUT | ON/OFF | 是否輸出make的詳細信息 |
DEFAULT_BASEDB | sqlite/postgresql | 知道存儲RASBASE的數據庫 |
ENABLE_BENCHMARK | ON/OFF | 生成輸出的二進制文件 |
ENABLE_PROFILING | ON/OFF | 是否用google-perftools進行分析查詢 |
ENABLE_DEBUG | ON/OFF | 生成可以調試/生成調試日誌的二進制文件 |
ENABLE_STRICT | ON/OFF | 在嚴格模式下啓用編譯(警告終止編譯) |
ENABLE_R | ON/OFF | 是否支持R編譯 |
GENERATE_DOCS | ON/OFF | 生成安裝文檔 |
GENERATE_PIC | ON/OFF | 生成位置獨立的代碼 |
ENABLE_JAVA | ON/OFF | 生成和安裝基於java的組件(rasj, petascope, secore) |
JAVA_SERVER | external/embedded | 設置Java應用程序部署模式 |
USE_GDAL | ON/OFF | 安裝的時候是否包含GDAL |
USE_GRIB | ON/OFF | 安裝的時候是否包含GRIB |
USE_HDF4 | ON/OFF | 安裝的時候是否包含HDF4 |
USE_NETCDF | ON/OFF | 安裝的時候是否包含netCDF |
FILE_DATA_DIR | (default $RMANHOME/data) | 服務器存儲切片文件地址 |
WAR_DIR | (default |
$RMANHOME/share/rasdaman/war) | Java war 文件被安裝的路徑 |
初始化數據庫
初始化rasdaman:
create_db.sh
啓動rasdaman服務
start_rasdaman.sh
導入demo數據:
rasdaman_insertdemo.sh [r]: url "title"
檢查數據庫是否正常:
rasql -q 'select c from RAS_COLLECTIONNAMES as c' --out string
停止/重啓數據庫
stop_rasdaman.sh start_rasdaman.sh
初始化GEO服務
petascope
Petascope是rasdaman的geo Web服務前端。它在數組之上添加了geo語義,從而支持基於OGC覆蓋標準的規則網格和不規則網格。
Petascope自動安裝爲rasdaman.war,除非指定了-DENABLE_JAVA=OFF cmake選項。所有war文件的部署目錄可以在cmake選項設置-dwarf _dir =<DIR>
;默認情況下,這是$RMANHOME/share/rasdaman/war。
安裝petascope
在rasdaman下配置postgresql,如果使用源碼安裝PostgreSQL,也可以參考此篇文章.
爲petascope添加一個postgresql用戶:
sudo -u postgres createuser -s <username> -P
> enter password
在
$RMANHOME/etc/petascope.properties
設置參數spring.datasource.username=petauser
/spring.datasource.password=petapasswd
和metadata_user/metadata_pass
確保PostgreSQL允許,拷貝rasdaman.war向tomcat目錄下,並啓動或者重啓tomcat。
完全部署成功後,可以在http://localhost:8080/rasdaman/ows。
secore
SECORE(語義座標引用系統解析器)是一個將CRS url映射到CRS定義的服務。這個組件是標準rasdaman分佈的一部分,被開放地理空間聯盟(OGC)用於運行他們的官方CRS解析器。Petascope使用SECORE來解析它所持有的覆蓋率的CRS定義,如果SECORE作爲def.war
在本地部署,最好與Petascope的rasdaman.war
一起部署。配置安裝路徑或禁用安裝的方式與petascope相同。
三、通過腳本文件安裝rasdaman
vi default.toml
[general]
# The user running rasdaman
user = "rasdaman"
# Run the installation automatically without requiring any user input
auto = false
# Build and install rasdaman? Updating an existing installation is supported
install = true
#
# Configure actions before rasdaman building and installation starts
#
[pre_install]
# Install third party dependencies needed to compile / run rasdaman with
# apt-get/yum for packages available in the standard package manager, or with
# pip for python packages.
# If this is set to false, the installer will just print the package list and
# probably fail compilation or some further step if a package is missing.
install_dependencies = true
#
# Configure how to install rasdaman
#
[install]
# Install rasdaman from: "source" or "package"
from = "source"
# Target installation directory ($RMANHOME)
install_path = "/opt/rasdaman/"
[install.source]
# Rasdaman sources will be fetched from this repo
repository = "git://rasdaman.org/rasdaman.git"
# Rasdaman version to compile, e.g. master, v9.5.0, etc.
version = "master"
# Generate debug-ready binaries (slower performance)
debug = false
# Common servlet container settings for an externally deployed petascope/SECORE.
[install.webapps]
# Install Java web applications (petascope, SECORE)
enable = true
# Deployment type: "external" (e.g. in Tomcat), or "standalone"
deployment = "external"
[install.webapps.petascope]
# petascope will use this port when deployment is "standalone"
standalone_port = 9009
# JDBC connection URL
petascopedb_url = "jdbc:postgresql://localhost:5432/petascopedb"
# Database username
petascopedb_username = "petauser"
# Database password; a random password will be generated if it is empty
petascopedb_password = ""
[install.webapps.secore]
# SECORE will use this port when deployment is "standalone"
standalone_port = 9010
#
# Configure what to do after rasdaman is installed and running
#
[post_install]
# Ingest demo collections (with rasdaman_insertdemo.sh) and demo coverages
# (with petascope_insertdemo.sh)
insert_demo = true
# Run the systemtest
systemtest = false
第一次安裝
wget http://download.rasdaman.org/installer/install.sh
bash install.sh -j default.toml
更新
update_rasdaman.sh
存在的問題
在安過程中也許會出現cmake下載失敗的錯誤
解決方法:可以先安裝cmake3,安裝方法sudo yum install cmake3
使用配置文件安裝存在會有很多缺少,出現很多意想不到的問題