Phoenix編譯支持CDH


作者:Syn良子 出處:http://www.cnblogs.com/cssdongl/p/6898227.html 轉載請注明出處

最近由於想調研下低延遲的數據查詢框架,那么基於SQL on Hbase的Phoenix是必不可少的,先熟悉下它的編譯和部署並記錄下過程

Phoenix編譯

由於當前我的測試集群是CDH5.4.0,而它並沒有把phoenix include進去,因為需要自己修改phoenix的pom依賴及幾個類文件,然后進行編譯后才能使用,過程如下

源碼下載

先去GitHub下載v4.6.0-Hbase-1.0的源碼zip包,解壓后導入到本地IDE.

源碼修改

  1. 先修改repository下的依賴,讓phoenix依賴CDH的repository而不依賴apache原生的,修改完如下截圖
  2. 修改幾個重要的依賴組件如hbase,flume,hadoop等版本依賴,如下圖所示,全部修改成CDH的對應版本

    注意上圖我本來想修改pig也為對應CDH版本的,但是修改后無法編譯成功,因此暫時不動它了.
  3. 修改LocalIndexMerger.java類中82行rmt.prepareMutationsForMerge方法調用,添加第6個參數傳值為1
  4. 修改IndexSplitTransaction.java類中275行MetaTableAccessor.splitRegion方法調用,添加第6個參數傳值為1

源碼編譯

第二步中修改完成后,直接在phoenix源代碼根目錄下執行mvn clean install -DskipTests后等待編譯成功
隨后可以去phoenix-assembly\target目錄下查看結果,如下圖

Phoenix部署

編譯完成后,上面結果圖中除了phoenix-4.6.0-HBase-1.0.tar.gz是已經打包好解壓后就可以直接用的phoenix外,其他的7個jar包都是必不可少的,隨后需要進行幾步安裝和部署才能使用,如下

phoenix安裝

To install a pre-built phoenix, use these directions:
Download and expand the latest phoenix-[version]-bin.tar.
Add the phoenix-[version]-server.jar to the classpath of all HBase region server and master and remove any previous version. An easy way to do this is to copy it into the HBase lib directory (use phoenix-core-[version].jar for Phoenix 3.x)
Restart HBase.
Add the phoenix-[version]-client.jar to the classpath of any Phoenix client.

可以參考官網這句描述,這里不用再download官網的phoenix-[version]-bin.tar了,上面的phoenix-4.6.0-HBase-1.0.tar.gz可以直接用,如果不放心的話可以去官網download,具體步驟如下

  • 在Hbase集群任意一節點下解壓phoenix-4.6.0-HBase-1.0.tar.gz,隨后將那7個jar包拷貝到解壓后的lib目錄下(如果存在其他版本需要先刪除掉)
  • 將phoenix-4.6.0-HBase-1.0-server.jar拷貝到每一個regionserver以及master的classpath下,這里基於CDH,可以做如下拷貝
    比如,cp phoenix-4.6.0-HBase-1.0-server.jar /opt/cloudera/parcels/CDH-5.4.0-1.cdh5.4.0.p0.27/lib/hbase/lib
  • 重啟Hbase集群

Phoenix測試

進入phoenix根目錄的bin下,執行./sqlline.py localhost:2181,出現如下結果表示phoenix安裝成功


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM