




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、目 錄1方案介紹11.1概述1Hbase1Elasticsearch1Hbase Observer21.2方案目標(biāo)21.3方案流程32ELASTICSEARCH安裝部署42.1安裝準(zhǔn)備4服務(wù)器準(zhǔn)備4新建用戶4調(diào)整系統(tǒng)參數(shù)42.2JDK安裝52.3ES安裝及配置6解壓縮6配置6啟動及驗(yàn)證7集群驗(yàn)證82.4Head插件安裝9簡介9安裝92.5Marvel插件安裝10簡介10安裝(每個節(jié)點(diǎn))102.6Kibana安裝10簡介10安裝11驗(yàn)證122.7IK分詞器安裝(每個節(jié)點(diǎn)安裝)12驗(yàn)證分詞效果133數(shù)據(jù)同步程序配置143.1多數(shù)據(jù)源的數(shù)據(jù)同步143.2創(chuàng)建索引mapping143.3編碼實(shí)現(xiàn)163
2、.4Observer的部署163.5測試174常見問題匯總181 方案介紹1.1 概述1.1.1 HbaseHbase是運(yùn)行在Hadoop上的NoSQL數(shù)據(jù)庫,它是一個分布式的和可擴(kuò)展的大數(shù)據(jù)倉庫,也就是說HBase能夠利用HDFS的分布式處理模式,并從Hadoop的MapReduce程序模型中獲益。除去Hadoop的優(yōu)勢,HBase本身就是十分強(qiáng)大的數(shù)據(jù)庫,它能夠融合key/value存儲模式帶來實(shí)時查詢的能力,以及通過MapReduce進(jìn)行離線處理或者批處理的能力??偟膩碚f,Hbase能夠讓你在大量的數(shù)據(jù)中查詢記錄,也可以從中獲得綜合分析報告。然而,隨著在HBase系統(tǒng)上應(yīng)用的驅(qū)動,人們發(fā)
3、現(xiàn)Global-Rowkey-Indexing不再滿足應(yīng)用的需求。單一的通過Rowkey檢索數(shù)據(jù)的方式,不再滿足更多應(yīng)用的需求,由于hbase基于行健有序存儲,在查詢時使用Rowkey十分高效,然后想要實(shí)現(xiàn)關(guān)系型數(shù)據(jù)庫那樣可以隨意組合的多條件查詢、查詢總記錄數(shù)、分頁等就比較麻煩了,所以需要我們自己來實(shí)現(xiàn)二級索引來滿足業(yè)務(wù)的復(fù)雜查詢,及實(shí)時檢索。1.1.2 ElasticsearchElasticsearch是一個實(shí)時的分布式搜索和分析引擎。它可以幫助你用前所未有的速度去處理大規(guī)模數(shù)據(jù)。它可以用于全文搜索,結(jié)構(gòu)化搜索以及分析;Elasticsearch是一個建立在全文搜索引擎 Apache Lu
4、cene基礎(chǔ)上的搜索引擎,可以說Lucene是當(dāng)今最先進(jìn),最高效的全功能開源搜索引擎框架。Elasticsearch并不僅僅是Lucene這么簡單,它不但包括了全文搜索功能,還可以進(jìn)行以下工作:l 分布式實(shí)時文件存儲,并將每一個字段都編入索引,使其可以被搜索。l 實(shí)時分析的分布式搜索引擎。l 可以擴(kuò)展到上百臺服務(wù)器,處理PB級別的結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)。1.1.3 Hbase ObserverHBase 0.92版本后推出了Coprocessor - 協(xié)處理器,一個工作在Master/RegionServer中的框架,能運(yùn)行用戶的代碼,從而靈活地完成分布式數(shù)據(jù)處理的任務(wù)。Coprocessor包
5、含兩個組件,一個是EndPoint(類似關(guān)系型數(shù)據(jù)庫的存儲過程),用以加快特定查詢的響應(yīng),另一個就是Observer(類似關(guān)系型數(shù)據(jù)庫的觸發(fā)器)。Observer也分為幾個類型,其中RegionObserver提供了一組表數(shù)據(jù)操作的鉤子函數(shù),覆蓋了Get、Put、Scan、Delete等操作(通常有pre和post兩種情況,表示在操作發(fā)生之前或發(fā)生之后),我們可以通過重載這些鉤子函數(shù),利用RegionServer實(shí)現(xiàn)特定的數(shù)據(jù)處理需求?;赗egionObserver的鉤子函數(shù),我們可以覆蓋Put及Delete方法來實(shí)現(xiàn)Hbase和ES直接的數(shù)據(jù)同步。1.2 方案目標(biāo)1、 實(shí)現(xiàn)對HBase高性
6、能的范圍檢索2、 保證數(shù)據(jù)的低冗余3、 保持?jǐn)?shù)據(jù)的一致性1.3 方案流程1、 數(shù)據(jù)進(jìn)入HBase時,利用Observer同步進(jìn)入ES索引庫;2、 客戶端根據(jù)查詢條件,利用ES提供的Java API對ES發(fā)起查詢請求;3、 ES返回符合條件的RowKey;4、 客戶端再根據(jù)RowKey去HBase獲取數(shù)據(jù);5、 最后HBase返回結(jié)果集。2 ElasticSearch安裝部署2.1 安裝準(zhǔn)備2.1.1 服務(wù)器準(zhǔn)備為搭建ElasticSearch集群,準(zhǔn)備了三臺服務(wù)器,主機(jī)IP分別為:04 Centos6.5.105 Centos6.5 Centos 新建用戶ES不支持root用戶
7、啟動,分別登錄服務(wù)器新建es用戶,并把以下安裝包上傳到/home/es文件夾下:新建用戶并設(shè)置密碼,然后給用戶文件夾所有權(quán):useradd espasswd eschown es /home/es1、2、3、4、2.1.3 調(diào)整系統(tǒng)參數(shù) 內(nèi)核參數(shù)調(diào)整vim /etc/sysctl.conf# 增加下面的內(nèi)容fs.file-max = 65536vm.max_map_count = 262144# 執(zhí)行命令sysctl -p 資源參數(shù)調(diào)整vim /etc/security/limits.conf# 修改* soft nofile 32768* hard nofile
8、65536* soft nproc 2048* hard nproc 409 調(diào)整線程數(shù)vim /etc/security/limits.d/90-nproc.conf找到如下內(nèi)容:* soft nproc 1024#修改為* soft nproc 20482.2 JDK安裝登錄es用戶,進(jìn)入/home/es文件夾,解壓JDK安裝包c(diǎn)d /home/estar -zxvf vim /etc/profile# 增加環(huán)境變量export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/*.jarexport PATH=$JAVA_HOME/bin:$PATH
9、注:ES2.x需要1.7JDK支持,官網(wǎng)下載1.7_71版本JDK。2.3 ES安裝及配置2.3.1 解壓縮cd /home/estar -zxvf 2.3.2 配置vim /home/es/elasticsearch-/config/elasticsearch.yml注: 集群名稱,各個節(jié)點(diǎn)的值必須一致 節(jié)點(diǎn)名稱,各個節(jié)點(diǎn)的值不能一致network.host 本機(jī)ip地址http.port 提供http鏈接的端口號設(shè)置master節(jié)點(diǎn)的初始列表,通過這些節(jié)點(diǎn)自動發(fā)現(xiàn)新加入集群的節(jié)點(diǎn)設(shè)置這個參數(shù)來保證集群中的節(jié)點(diǎn)可以知道其它N個有master資格的節(jié)點(diǎn)
10、,官方推薦設(shè)置成 N/2 + 1,N是集群中master節(jié)點(diǎn)的數(shù)量。# 修改ES內(nèi)存vim /home/es/elasticsearch-/bin/elasticsearch# ES_HEAP_SIZE=8g 注:調(diào)整內(nèi)存大小最好不要超過總資源一半,也不要超過32G2.3.3 啟動及驗(yàn)證cd /home/es/elasticsearch-/bin./elasticsearch # 控制臺啟動./elasticsearch d # 后臺啟動看到如下信息則為啟動成功:在瀏覽器中輸入:05:9200/返回如下結(jié)果:2.3.4 集群驗(yàn)證所有節(jié)點(diǎn)啟動之后,瀏覽器訪問:h
11、ttp:/05:9200/_cluster/health?pretty=true如果返回以下結(jié)果說明集群狀態(tài)正常2.4 Head插件安裝2.4.1 簡介elasticsearch-head是一個elasticsearch的集群管理工具,通過head可以查看集群幾乎所有信息,還能進(jìn)行簡單的搜索查詢,觀察自動恢復(fù)的情況等等。2.4.2 安裝cd /home/es/elasticsearch-/bin./plugin install mobz/elasticsearch-head重啟elasticsearch,然后在瀏覽器輸入:http:/ :9200/_plugin/head
12、/可以查看顯示效果。如下圖2.5 Marvel插件安裝2.5.1 簡介Marvel插件:在簇中從每個節(jié)點(diǎn)匯集數(shù)據(jù)。這個插件必須每個節(jié)點(diǎn)都得安裝。 Marvel是Elasticsearch的管理和監(jiān)控工具,在開發(fā)環(huán)境下免費(fèi)使用。它包含了一個叫做Sense的交互式控制臺,使用戶方便的通過瀏覽器直接與Elasticsearch進(jìn)行交互。2.5.2 安裝(每個節(jié)點(diǎn))c./plugin install license./plugin install marvel-agent2.6 Kibana安裝2.6.1 簡介kibana 插件提供了Marvel監(jiān)控的UI界面。 kibana是一個與elasticse
13、arch一起工作的開源的分析和可視化的平臺;可以查詢、查看并與存儲在elasticsearch索引的數(shù)據(jù)進(jìn)行交互操作;能執(zhí)行高級的數(shù)據(jù)分析,并能以圖表、表格和地圖的形式查看數(shù)據(jù);基于瀏覽器的接口使我們能夠快速的創(chuàng)建和分享顯示elasticsearch查詢結(jié)果實(shí)時變化的儀表盤。2.6.2 安裝cd /home/es/tar -zxvf vim /home/es/kibana-linux-x86_64/config/kibana.yml# 修改server.host ,否則遠(yuǎn)程無法訪問# 修改es訪問路徑cd /home/es/kibana-linux-x86_64/bin# 安裝Marvel插件
14、./kibana plugin -install elasticsearch/marvel/latest# 安裝sense插件./kibana plugin -install elastic/sense# 啟動kibana./kibana2.6.3 驗(yàn)證瀏覽器訪問:05:5601/,可以看到Kibana以及他的插件2.7 IK分詞器安裝(每個節(jié)點(diǎn)安裝)cd /home/es/unzip -d /home/es/plugins/ikvim /home/es/elasticsearch-/config/elasticsearch.yml# 在文件最后添加 inde
15、x.analysis.analyzer.ik.type: "ik"# 然后啟動ES驗(yàn)證IK,看到如下信息IK安裝完成2.7.1 驗(yàn)證分詞效果在head中輸入_analyze?analyzer=ik&pretty=true&text=helloworld,中華人民共和國3 數(shù)據(jù)同步程序配置3.1 多數(shù)據(jù)源的數(shù)據(jù)同步多個數(shù)據(jù)源中的數(shù)據(jù)同步問題,大概有三種解決方式:1、 客戶端雙寫,分別將數(shù)據(jù)寫入兩個數(shù)據(jù)源(同步、異步)2、 主數(shù)據(jù)源在收到數(shù)據(jù)后推給輔數(shù)據(jù)源(同步、異步)3、 輔數(shù)據(jù)源從主數(shù)據(jù)源中拉取數(shù)據(jù)(輪訓(xùn)、監(jiān)聽,全量、增量)具體到HBase同步到Elasti
16、csearch時,后兩種方式具體對應(yīng)的方案就是HBase的Observer和Elasticsearch的River,這兩種方式都可以在數(shù)據(jù)源中嵌入自己的業(yè)務(wù)邏輯,并且依托于集群可以輕松地保證高可用。但是,要使用River高效的同步數(shù)據(jù),必須要有一種拉取增量數(shù)據(jù)的方式,而在HBase中這并沒有很好的方法實(shí)現(xiàn),所以采用Observer的方法。3.2 創(chuàng)建索引mapping在sense中輸入:PUT test "settings": "analysis": "analyzer": "ik": "tokenize
17、r": "ik" , "mappings": "doc": "_source": "enabled": true , "properties": "title": "type": "string" , "content": "type": "string", "analyzer": "ik" , "
18、create_time": "type": "date", "format": "yyyy-MM-dd HH:mm:ss|yyyy-MM-dd|epoch_millis" 3.3 編碼實(shí)現(xiàn)Observer的Java實(shí)現(xiàn)只需要繼承BaseRegionObserver的基類,并重載postPut和postDelete兩個函數(shù)??紤]到未來HBase的寫入會比較頻繁,我們利用ElasticSearch的Bulk API做了一個緩沖池:不是每次提交HBase數(shù)據(jù)都觸發(fā)索引操作,而是積累到一定數(shù)量或者到達(dá)一定時間間隔
19、才去批量操作,從而降低了RegionServer的網(wǎng)絡(luò)I/O壓力。3.4 Observer的部署Observer提供了兩種部署方式:l 全局部署。把jar包的路徑加入HBASE_CLASSPATH并且修改hbase-site.xml,這樣Observer會對每一個表都生效。l 單表部署。通過HBase Shell修改表結(jié)構(gòu),加入coprocessor信息。顯然后一種更加靈活。通過HBase Shell安裝Observer的詳細(xì)步驟如下:1、 把Java項(xiàng)目打包為jar包,上傳到HDFS的特定路徑2、 進(jìn)入HBase Shell,disable你希望加載的表3、 通過指令激活Observer:hdfs dfs -mkdir /observers # 新建文件夾hd
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 預(yù)防校園欺凌班會課件
- 顧客體驗(yàn)課件
- 心電圖健康評估與應(yīng)用
- 醫(yī)院學(xué)會管理辦法解讀
- 音樂課件的作文
- 市政污水管網(wǎng)改造項(xiàng)目環(huán)境影響報告書(模板)
- 城鎮(zhèn)污水管網(wǎng)建設(shè)項(xiàng)目投資估算方案(參考模板)
- xx河流排水防澇設(shè)施建設(shè)項(xiàng)目節(jié)能評估報告(參考)
- 2025年商務(wù)、清洗服務(wù)項(xiàng)目建議書
- 2025年差壓變送器合作協(xié)議書
- 2025年7月新疆維吾爾自治區(qū)學(xué)業(yè)水平合格性考試歷史試題(含答案)
- 建立并優(yōu)化醫(yī)院的藥品管理體系
- 農(nóng)村農(nóng)資采購與供應(yīng)長期合作協(xié)議
- 反假幣培訓(xùn)課件
- 2025至2030中國電壓暫降治理行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢及投資規(guī)劃深度研究報告
- 遼寧省2024年7月普通高中學(xué)業(yè)水平合格性考試化學(xué)試卷(含答案)
- 煤炭造價知識培訓(xùn)
- 2025屆遼寧省大連市高新區(qū)英語七年級第二學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測模擬試題含答案
- 腫瘤全程康復(fù)管理制度
- 對患者的健康教育制度
- 2025年酒店管理專業(yè)基礎(chǔ)知識考試試題及答案
評論
0/150
提交評論