在CentOS下安裝和配置rasdaman

安裝和配置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

下載並安裝

  1. 向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
  2. 現在在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.
  3. 向yum添加EPEL倉庫

    yum install epel-release
  4. 安裝rasdaman包,並啓動

    yum install rasdaman
    source /etc/profile.d/rasdaman.sh

    注: 要想使用petascope,必須配置數據庫爲postgres,目前的rpm包都是以sqlite爲默認包,後期會有更想,請期待!

配置

  1. 檢查

    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.
  2. 檢查petascope是否初始化,這是地址:

    http://localhost:8080/rasdaman/ows
    
    # http://192.168.231.131:8080/rasdaman/ows
    

    注: 這個在其他機器啓動時會出現不能鏈接情況,需要將端口號開放或者關閉服務器的防火牆。

  3. 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/tomact6postgresql服務也可以被啓動或者停止。

二、通過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

配置條件

  1. 確保java和javac版本一致

    java -version
    javac -version
  2. 允許用戶添加部署tomcat webapps目錄

    sudo adduser $USER tomcat
    
    # reboot or logout/login is necessary for this command to take effect
    
  3. 如果支持PostgresSQL,請添加postgres用戶:

    sudo -u postgres createuser -s $USER
  4. 如果使用tomcat,請設置tomacat最大heap空間>=1GB。設置方式如下:

    修改etc/default/tomcat7的JAVA_OPTS=Xmx1024m,然重啓tomcat sudo service tomcat restart.

獲取源代碼並安裝

  1. 獲取源代碼

    git clone https://github.com/javyxu/rasdaman.git # this creates subdirectory   rasdaman/
    cd rasdaman/
  2. 編譯並安裝

    • 配置~/.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 文件被安裝的路徑 |

初始化數據庫

  1. 初始化rasdaman:

    create_db.sh
  2. 啓動rasdaman服務

    start_rasdaman.sh
  3. 導入demo數據:

    rasdaman_insertdemo.sh [r]: url "title"
  4. 檢查數據庫是否正常:

    rasql -q 'select c from RAS_COLLECTIONNAMES as c' --out string
  5. 停止/重啓數據庫

    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

  1. 在rasdaman下配置postgresql,如果使用源碼安裝PostgreSQL,也可以參考此篇文章.

  2. 爲petascope添加一個postgresql用戶:

sudo -u postgres createuser -s <username> -P
> enter password
  1. $RMANHOME/etc/petascope.properties設置參數 spring.datasource.username=petauser/spring.datasource.password=petapasswdmetadata_user/metadata_pass

  2. 確保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

使用配置文件安裝存在會有很多缺少,出現很多意想不到的問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章