moonbox使用CDH6.0.0部署記錄

目錄

前言

1.moonbox啓動後,spark on yarn 任務運行失敗

2.netty包衝突

3.spark相關包

4.關於rest方式提交時候影響的jar

5.其他


前言

      moonbox目前最新版本是0.3.0,官方的文檔上在環境準備這一塊明確指出僅支持Apache Spark2.2.0

  • 已安裝Apache Spark 2.2.0

    (此版本僅支持Apache Spark 2.2.0, 其他Spark 版本後續會兼容)

  • 已安裝MySQL並啓動,且開啓遠程訪問
  • 各安裝節點已經配置ssh免密登錄

        首先是版本要求必須是2.2.0,其次要求是Apache的。我們最初在搭建大數據平臺的時候,使用的cloudera公司CM安裝的CDH6.0.0配套的Spark是2.2.0。想着版本都一樣,想必不會有什麼問題,就按照官方的步驟一步一步安裝。但是,還是遇到了不少問題。這些問題大多數都是jar包缺失或者衝突,說到底主要是CDH6.0.0配套的Spark2.2.0和Apache的Spark2.2.0還有區別。下面一一記錄和說明。

說明:

        moonbox官方的百度網盤鏈接上有spark2.2.0的壓縮包,down下來,主要用到jars文件夾中的jar。我把相關需要替換的jar放到集羣中每臺主機的/opt/ojars目錄,如下:

1.moonbox啓動後,spark on yarn 任務運行失敗

主要是jackson相關包的版本不同造成,切到spark安裝目錄下的jars目錄下

cd /opt/cloudera/parcels/CDH-6.0.0-1.cdh6.0.0.p0.537114/lib/spark/jars

修改對應軟鏈接:

ln -snf /opt/ojars/jackson-annotations-2.6.5.jar jackson-annotations-2.9.5.jar
ln -snf /opt/ojars/jackson-core-2.6.5.jar jackson-core-2.9.5.jar
ln -snf /opt/ojars/jackson-databind-2.6.5.jar jackson-databind-2.9.5.jar
ln -snf /opt/ojars/spark-network-common_2.11-2.2.0.jar spark-network-common_2.11-2.2.0-cdh6.0.0.jar
ln -snf /opt/ojars/jackson-module-scala_2.11-2.6.5.jar jackson-module-scala_2.11-2.9.5.jar

2.netty包衝突

ln -snf /opt/ojars/netty-all-4.0.43.Final.jar netty-all-4.1.17.Final.jar

同時刪除掉目錄下所有的netty相關的軟連接

3.spark相關包

主要影響moonbox-shell方式掛在數據庫後的操作,如果不調整,在mount數據源之後,使用use database時候會shell會卡住不動,任務日誌有報錯。

ln -snf /opt/ojars/spark-sql_2.11-2.2.0.jar spark-sql_2.11-2.2.0-cdh6.0.0.jar
ln -snf /opt/ojars/spark-streaming_2.11-2.2.0.jar spark-streaming_2.11-2.2.0-cdh6.0.0.jar
ln -snf /opt/ojars/spark-catalyst_2.11-2.2.0.jar spark-catalyst_2.11-2.2.0-cdh6.0.0.jar
ln -snf /opt/ojars/spark-core_2.11-2.2.0.jar spark-core_2.11-2.2.0-cdh6.0.0.jar  
ln -snf /opt/ojars/spark-hive_2.11-2.2.0.jar spark-hive_2.11-2.2.0-cdh6.0.0.jar
ln -snf /opt/ojars/spark-yarn_2.11-2.2.0.jar spark-yarn_2.11-2.2.0-cdh6.0.0.jar

4.關於rest方式提交時候影響的jar

ln -snf /opt/ojars/spark-network-shuffle_2.11-2.2.0.jar spark-network-shuffle_2.11-2.2.0-cdh6.0.0.jar

不調整的話,rest方式提交任務會失敗。

按照如上調整,目前可以正常使用moonbox,例如moonbox-shell的操作、rest提交、jdbc連接訪問等等。

5.其他

          moonbox的rest方式不支持dll操作,即不支持通過rest方式創建組織、創建sa用戶等操作,僅僅支持insert的批量操作,但是即便是insert操作也有侷限性,只能使用insert into table select xx from table2 這樣的語句,且table表後不能給字段名。

          但是jdbc方式支持dll操作,對於想封裝自己的可視化操作界面的同學,這無疑是好消息。

          經過測試和調研,目前諸如mybatis/hb/DbRecord/JPA這一類的持久層框架不支持連接moonbox,但是druid連接池是可用的。

 

 

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