Geomesa學(xué)習(xí)0 - 在Linux下的安裝

一、 安裝

官網(wǎng)說明GeoMesa需要Hbase1.3版本或1.4版本,安裝GeoMesa前首先安裝Hbase1.3以上版本。

geomesa對HBase版本的要求.png

1.1 Hbase安裝

由于我之前裝過Hbase1.2,所以在Hbase1.2版本的基礎(chǔ)上升級Hbase版本至1.4.9。

我是將Hbase1.4.9Geomesa安裝在/opt/目錄下。

1.1.1 下載解壓新版本安裝包

下載HBase1.4.9版本安裝包hbase-1.4.9-bin.tar.gz解壓到指定/opt/目錄下

tar zxvf geomesa-hbase_2.11-2.1.0.tar.gz -C /opt/

1.1.2 配置環(huán)境變量:

將環(huán)境變量HADOOP_HOME、HBASE_HOME配置在~/.bash_profile文件中:

export HADOOP_HOME=/usr/lib/hadoop
export HBASE_HOME=/opt/hbase-1.4.9
export HBASE_CLASSPATH=/etc/hadoop
export PATH=$HADOOP_HOME/bin:$HBASE_HOME/bin:$PATH

加載環(huán)境變量:

source ~/.bash_profile

1.1.3 HBase環(huán)境配置

為簡化HBase配置直接拷貝原HBase1.2.0的配置文件并進(jìn)行修改,拷貝/etc/hadoop目錄下6個配置文件覆蓋到HBase1.4.9/opt/hbase-1.4.9/conf目錄,并創(chuàng)建/opt/hbase-1.4.9/logs目錄存儲日志:

core-site.xml
hbase-env.sh
hbase-site.xml
hdfs-site.xml
masters
regionservers

只需要修改hbase-env.sh文件中三項(xiàng)標(biāo)星號的部分(注意文件中不要寫上星號)。
hbase-env.sh:

export JAVA_HOME=/usr/lib/jdk1.8
export HBASE_LOG_DIR=/opt/hbase-1.4.9/logs
export HBASE_PID_DIR=/opt/hbase-1.4.9
export HBASE_MANAGES_ZK=false
* export HBASE_OPTS="$HBASE_OPTS -XX:+UseConcMarkSweepGC"
* export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"
* export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"
export HADOOP_HOME=/usr/lib/hadoop
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${HADOOP_HOME}/lib/native/

1.1.4 運(yùn)行HBase1.4.9

  1. 卸載HBase1.2.0,檢查并kill 掉HMasterHRegionServer服務(wù)
  2. 刪除zookeeper中原HBase緩存文件(刪除zkhbase節(jié)點(diǎn))
       $ cd /usr/lib/zookeeper/bin
       $ ./zkCli.sh
       [zk: localhost:2181(CONNECTED) 0] ls /
       [zk: localhost:2181(CONNECTED) 1] rmr /hbase
       [zk: localhost:2181(CONNECTED) 1] quit
  1. 重啟zookeeper服務(wù)

    ./zkServer.sh restart

  2. 啟動HBase1.4.9

 cd /opt/hbase-1.4.9/bin
./start-hbase.sh

1.2 GeoMesa安裝

1.2.1 下載GeoMesa-Hbase的二進(jìn)制版本安裝包

geomesa-hbase_2.11-2.1.0-bin.tar.gz

1.2.2 解壓到/opt/路徑下

tar xvf geomesa-hbase-dist_2.11-2.1.0-bin.tar.gz –C /opt/

1.2.3 配置環(huán)境變量

/etc/profile文件中增加以下配置

    export HADOOP_HOME=/path/to/hadoop
    export HBASE_HOME=/path/to/hbase
    export GEOMESA_HBASE_HOME=/path/to/geomesa
    export PATH=$HADOOP_HOME/bin:$HBASE_HOME/bin:$GEOMESA_HBASE_HOME/bin:$PATH

1.2.4 為geomesa安裝依賴

在geomesa主目錄下運(yùn)行以下四個命令

$ bin/install-jai.sh
$ bin/install-jline.sh
$ bin/install-hadoop.sh
$ bin/install-hbase.sh

如果安裝失敗可以根據(jù)提示中的地址自己去下載下面jar包,并將其放到geomesa主目錄的lib目錄下,主要包括下列jar包依賴。

依賴jar包.png

1.2.5 為geomesa-hbase配置協(xié)處理器

(1) 創(chuàng)建hdfs目錄

hdfs dfs –mkdir /hbase/lib

(2) 將{geomesa_hbase_home}/dist/hbase/目錄下的geomesa-hbase-distributed-runtime_2.11-2.1.0.jar拷貝到hdfs上的hbase/lib目錄下

hadoop fs -put geomesa-hbase-distributed-runtime_2.11-2.1.0.jar /hbase/lib

(3) 同時將該jar包放到hbase安裝目錄下的/lib/

scp geomesa-hbase-distributed-runtime_2.11-2.1.0.jar /opt/hbase/lib

(4) 在Hbase-site.xml注冊協(xié)處理器

增加下面property配置項(xiàng):

<configuration>
<property>
 <name>hbase.coprocessor.user.region.classes</name>
 <value>org.locationtech.geomesa.hbase.coprocessor.GeoMesaCoprocessor</value>
</property>
</configuration>

(5) 初始化Geomesa

geomesa主目錄下的/bin/下,執(zhí)行以下命令:

[root@node69191 bin]# ./geomesa-hbase configure

1.3 重啟Hbase

安裝配置完成后,重啟hbase。

測試Geomesa安裝是否成功

[root@node69191 logs]# geomesa-hbase version
GeoMesa tools version: 2.0.2
Commit ID: 4e59c0952f46824ef31cbbc9b5152e44c70c1c8f
Branch: 4e59c0952f46824ef31cbbc9b5152e44c70c1c8f
Build date: 2018-06-11T19:14:09+0000
[root@node69191 logs]#

Bingo 完成。

二、 Geomesa協(xié)處理器

GeoMesa利用服務(wù)器端處理來加速某些查詢,為了利用這些功能,GeoMesa協(xié)處理器必須在所有GeoMesa表上注冊,且geomesa-hbase-distributed-runtime代碼必須在hdfs路徑上可用。

Hbase協(xié)處理器可理解為服務(wù)端的攔截器,能夠?qū)⑻幚磉^程移動到服務(wù)器端運(yùn)行來提高查詢效率,即實(shí)現(xiàn)謂詞下推。例如數(shù)據(jù)的過濾處理流程直接放到服務(wù)器端執(zhí)行,就只需要返回一個小的處理后的結(jié)果集。

協(xié)處理器框架提供了ObserverEndPoint兩種模塊,通過繼承這些類來擴(kuò)展自己的功能。Observer這類協(xié)處理器與觸發(fā)器類似,定義了一些鉤子函數(shù)在一些特定時間發(fā)生時被執(zhí)行,Observer提供了一些設(shè)計好的鉤子函數(shù),可以在集群服務(wù)器端被調(diào)用。EndPoint模式的協(xié)處理器能夠自定義一些操作并添加到服務(wù)端,用戶代碼可以被部署到管理數(shù)據(jù)的服務(wù)器端,在服務(wù)器端進(jìn)行數(shù)據(jù)的處理執(zhí)行,endpoint通過添加一些RPC調(diào)用來動態(tài)擴(kuò)展RPC協(xié)議。

2.1 協(xié)處理器實(shí)現(xiàn)

Geomesa使用了EndPoint模式來實(shí)現(xiàn)特定的功能,EndPoint協(xié)處理器需要與服務(wù)端直接通信。服務(wù)端是對于Protobuf Service的實(shí)現(xiàn),客戶端和服務(wù)端都需要進(jìn)行基于接口的代碼邏輯實(shí)現(xiàn)。

EndPoint類比于數(shù)據(jù)庫的存儲過程,觸發(fā)服務(wù)端基于Region的同步運(yùn)行,類似map操作,然后將各個Region Server的結(jié)果在客戶端收集后歸并計算,類似reduce操作。

實(shí)現(xiàn)EndPoint分三步走:

  • 1.Protobuf編寫和定義RPC

客戶端與服務(wù)端存在RPC通信,需要確定RPC接口,Hbase協(xié)處理器是通過protobuf協(xié)議實(shí)現(xiàn)數(shù)據(jù)交換,故通過probuf定義接口。
Geomesa中的probuf協(xié)議類為GeoMesaProto,該類中定義的接口即Geomesa希望通過協(xié)處理器實(shí)現(xiàn)的功能。

  • 2.服務(wù)端代碼實(shí)現(xiàn)

本質(zhì)上來說,實(shí)現(xiàn)協(xié)處理器的框架,就是實(shí)現(xiàn)兩點(diǎn):

(1)繼承Hbase協(xié)處理器提供的EndPoint抽象類或者接口

(2)基于框架代碼填充業(yè)務(wù)邏輯

GeoMesa的協(xié)處理主類為GeoMesaCoprocessor

class GeoMesaCoprocessor extends GeoMesaCoprocessorService with Coprocessor with CoprocessorService 

我們可以看到它實(shí)現(xiàn)兩個接口
CoprocessorCoprocessorServiceCoprocessor如上文提到,是Hbase協(xié)處理器基礎(chǔ)類,CoprocessorService即為擴(kuò)展的RPC協(xié)議接口。

需要說明的是EndPoint協(xié)處理器是針對單個Region處理的,每一個計算結(jié)果都是對于單個Region的數(shù)據(jù)范圍的計算結(jié)果,開發(fā)時需要注意邏輯。

  • 3.部署Endpoint協(xié)處理器

將定義的GeoMesaCoprocessor協(xié)處理器打成jar包部署到Hbase。具體部署過程見 1.2.5 為geomesa-hbase配置協(xié)處理器

2.2 驗(yàn)證協(xié)處理器是否加載成功

2.2.1 在官網(wǎng)下載hbase-tutorials源碼進(jìn)行測試。

2.2.3 進(jìn)入源碼的org.geomesa.example.hbase.HBaseQuickStart類中,為主函數(shù)傳入?yún)?shù):

--hbase.zookeepers 1.1.1.1
--hbase.catalog wcy_geomesa

其中1.1.1.1時指zk安裝的ip地址

具體操作如下圖:


IDEA配置頁面1.png

配好之后,運(yùn)行HBaseQuickStartmain函數(shù),查看輸出結(jié)果。如果結(jié)果跟下面結(jié)果一直,則協(xié)處理器加載成功。

Loading datastore

Creating schema: GLOBALEVENTID:String,Actor1Name:String,Actor1CountryCode:String,Actor2Name:String,Actor2CountryCode:String,EventCode:String,NumMentions:Integer,NumSources:Integer,NumArticles:Integer,ActionGeo_Type:Integer,ActionGeo_FullName:String,ActionGeo_CountryCode:String,dtg:Date,geom:Point:srid=4326

Generating test data

Writing test data
Wrote 2356 features

Running query BBOX(geom, -120.0,30.0,-75.0,55.0) AND dtg DURING 2017-12-31T00:00:00+00:00/2018-01-02T00:00:00+00:00
01 719025288=719025288|CANADA|CAN|||190|4|1|4|4|Penticton, British Columbia, Canada|CA|2018-01-01T00:00:00.000Z|POINT (-119.583 49.5)
02 719025945=719025945|DEPARTMENT OF EDUCATION||OBAMA|USA|090|20|2|20|2|North Dakota, United States|US|2018-01-01T00:00:00.000Z|POINT (-99.793 47.5362)
03 719025853=719025853|PRESIDENT||MEXICO|MEX|0874|3|3|3|2|Minnesota, United States|US|2018-01-01T00:00:00.000Z|POINT (-93.9196 45.7326)
04 719025856=719025856|PRESIDENT||MEXICO|MEX|131|3|3|3|2|Minnesota, United States|US|2018-01-01T00:00:00.000Z|POINT (-93.9196 45.7326)
05 719026960=719026960|UNITED STATES|USA|||071|6|1|6|2|Minnesota, United States|US|2018-01-01T00:00:00.000Z|POINT (-93.9196 45.7326)
06 719024925=719024925|||CORPORATION||172|2|1|2|4|Saskatoon, Saskatchewan, Canada|CA|2018-01-01T00:00:00.000Z|POINT (-106.667 52.1333)
07 719025289=719025289|CANADA|CAN|CORPORATION||115|6|1|6|4|Saskatoon, Saskatchewan, Canada|CA|2018-01-01T00:00:00.000Z|POINT (-106.667 52.1333)
08 719025290=719025290|CANADA|CAN|CORPORATION||172|8|1|8|4|Saskatoon, Saskatchewan, Canada|CA|2018-01-01T00:00:00.000Z|POINT (-106.667 52.1333)
09 719025276=719025276|SASKATCHEWAN|CAN|||020|20|1|10|4|Saskatchewan, Manitoba, Canada|CA|2018-01-01T00:00:00.000Z|POINT (-97.7167 52.15)
10 719025946=719025946|PREMIER||||015|6|1|6|4|Saskatchewan, Manitoba, Canada|CA|2018-01-01T00:00:00.000Z|POINT (-97.7167 52.15)

Returned 669 total features

Running query BBOX(geom, -120.0,30.0,-75.0,55.0) AND dtg DURING 2017-12-31T00:00:00+00:00/2018-01-02T00:00:00+00:00
Returning attributes [GLOBALEVENTID, dtg, geom]
01 719025281=719025281|2018-01-01T00:00:00.000Z|POINT (-119.583 49.5)
02 719024929=719024929|2018-01-01T00:00:00.000Z|POINT (-119.35 50.3667)
03 719025855=719025855|2018-01-01T00:00:00.000Z|POINT (-93.9196 45.7326)
04 719026967=719026967|2018-01-01T00:00:00.000Z|POINT (-93.9196 45.7326)
05 719027201=719027201|2018-01-01T00:00:00.000Z|POINT (-93.9196 45.7326)
06 719025275=719025275|2018-01-01T00:00:00.000Z|POINT (-106.667 52.1333)
07 719027017=719027017|2018-01-01T00:00:00.000Z|POINT (-117.157 32.7153)
08 719027116=719027116|2018-01-01T00:00:00.000Z|POINT (-117.157 32.7153)
09 719025124=719025124|2018-01-01T00:00:00.000Z|POINT (-117.393 33.2103)
10 719026572=719026572|2018-01-01T00:00:00.000Z|POINT (-117.823 33.6695)

Returned 669 total features

Running query EventCode = '051'
01 719025248=719025248|BUSINESS||||051|10|1|10|1|Australia|AS|2018-01-01T00:00:00.000Z|POINT (135 -25)
02 719026319=719026319|SENATOR||UNITED STATES|USA|051|2|1|2|2|Texas, United States|US|2018-01-01T00:00:00.000Z|POINT (-97.6475 31.106)
03 719027258=719027258|UNITED STATES|USA|||051|2|1|2|2|Texas, United States|US|2018-01-01T00:00:00.000Z|POINT (-97.6475 31.106)
04 719026945=719026945|CALIFORNIA|USA|||051|8|1|8|2|California, United States|US|2018-01-01T00:00:00.000Z|POINT (-119.746 36.17)
05 719027115=719027115|LOS ANGELES|USA|KING||051|10|1|10|3|Sacramento, California, United States|US|2018-01-01T00:00:00.000Z|POINT (-121.494 38.5816)
06 719025112=719025112|||UNITED STATES|USA|051|48|12|48|3|Wichita, Kansas, United States|US|2018-01-01T00:00:00.000Z|POINT (-97.3375 37.6922)
07 719025110=719025110|||UNITED STATES|USA|051|6|1|6|3|Edgefield, South Carolina, United States|US|2018-01-01T00:00:00.000Z|POINT (-81.9296 33.7896)
08 719026297=719026297|SENATOR||||051|6|1|6|3|Washington, District of Columbia, United States|US|2018-01-01T00:00:00.000Z|POINT (-77.0364 38.8951)
09 719026943=719026943|AMERICAN|USA|||051|14|1|8|3|Chicago, Illinois, United States|US|2018-01-01T00:00:00.000Z|POINT (-87.6501 41.85)
10 719026364=719026364|MEXICO|MEX|||051|2|1|2|2|Pennsylvania, United States|US|2018-01-01T00:00:00.000Z|POINT (-77.264 40.5773)

Returned 138 total features

Running query EventCode = '051' AND dtg DURING 2017-12-31T00:00:00+00:00/2018-01-02T00:00:00+00:00
Returning attributes [GLOBALEVENTID, dtg, geom]
01 719025739=719025739|2018-01-01T00:00:00.000Z|POINT (5 8.5)
02 719025867=719025867|2018-01-01T00:00:00.000Z|POINT (7.53333 9.08333)
03 719025606=719025606|2018-01-01T00:00:00.000Z|POINT (12.847 10.8658)
04 719026504=719026504|2018-01-01T00:00:00.000Z|POINT (12.847 10.8658)
05 719026508=719026508|2018-01-01T00:00:00.000Z|POINT (14.2377 11.7066)
06 719026066=719026066|2018-01-01T00:00:00.000Z|POINT (35.1 31.5333)
07 719025842=719025842|2018-01-01T00:00:00.000Z|POINT (35.2333 31.7667)
08 719025359=719025359|2018-01-01T00:00:00.000Z|POINT (12.4833 41.9)
09 719025360=719025360|2018-01-01T00:00:00.000Z|POINT (12.4833 41.9)
10 719025249=719025249|2018-01-01T00:00:00.000Z|POINT (12.833333 42.833333)

Returned 138 total features

Done

Process finished with exit code 0

如果returned結(jié)果中存在為0的,則協(xié)處理器加載失敗。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、簡介 Hbase:全名Hadoop DataBase,是一種開源的,可伸縮的,嚴(yán)格一致性(并非最終一致性)的分...
    菜鳥小玄閱讀 2,605評論 0 12
  • Zookeeper用于集群主備切換。 YARN讓集群具備更好的擴(kuò)展性。 Spark沒有存儲能力。 Spark的Ma...
    Yobhel閱讀 7,604評論 0 34
  • 1.先決條件(HBase 依賴的一些重要的中間件、系統(tǒng)服務(wù)或配置) 1)運(yùn)行時環(huán)境JDK 2)SSH 服務(wù) 集群模...
    柳仁兒閱讀 4,347評論 0 2
  • 【什么是大數(shù)據(jù)、大數(shù)據(jù)技術(shù)】 大數(shù)據(jù),又稱巨量資料,指的是所涉及的數(shù)據(jù)資料量規(guī)模巨大到無法在合理時間內(nèi)通過傳統(tǒng)的應(yīng)...
    kimibob閱讀 2,901評論 0 51
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 12,427評論 6 13

友情鏈接更多精彩內(nèi)容