在cdh6.3.0上自制flink1.9.x的parcel包(點激活按鈕報錯)

背景:

參考“如何獲得Cloudera的Flink Parcel包”,此文:https://mp.weixin.qq.com/s/ajYyEnqCJRr8S645BqKCcg,然後運行安裝包下的示例程序“在CDH上運行你的第一個Flink例子”:https://mp.weixin.qq.com/s/gPGVv_2US1eIihVwN4E1sQ。雖成功,但坑人吶!

問題描述:

我安裝到cdh6.3.0後發現功能“閹割”了:1.其web ui中沒有提交jar包的按鈕;2.僅能standalone模式運行安裝包examples目錄下所提供的WordCount.jar且同目錄下的SocketWindowWordCount.jar也無法單機或yarn的任何模式下運行。另外,安裝後默認啓用了kerberos安全認證功能,我在cdh的flink“配置”處手動清除了默認的兩個選項共三個默認值:Client和KafkaClient、flink.keytab,重啓後運行flink list命令仍報錯:WARN zookeeper.ClientCnxn: SASL configuration failed。詳情見:https://developer.aliyun.com/ask/133744?spm=a2c6h.13159736,文中“遊客guzk5azdrhbmu”的三個評論。

此種方式安裝後,連基本的安裝包示例下的其他程序都無法運行flink run /opt/cloudera/parcels/FLINK-1.9.0-csa1.0.0.0-cdh6.3.0/lib/flink/examples/streaming/SocketWindowWordCount.jar --port 9009,或更別提yarn-cluster模式下運行了。報錯信息同上。

於是,我參考:http://blog.51yip.com/hadoop/2362.html/comment-page-1#comment-18035,現指出文中共五處錯誤或不足之處:

1.樓主所提供的git清華下載源現在是flink1.9.2版本了,尚未找到flink1.9.x的其他版本從何處下載;

2.編譯命令./flink-parcel//build.sh csd_on_yarn,報錯如下:
-bash: ./flink-parcel/build.sh: Permission denied

解決方案:chmod a+x ./build.sh

3.再次運行上述編譯命令,報錯:

sed: can't read flink-parcel.properties: No such file or directory

解決方案爲cd flink-parcel,如下圖:

4.運行上圖中的編譯命令,報錯如下:

Error: Unable to access jarfile cm_ext/validator/target/validator.jar

查看此build.sh腳本內容後,發現:

經測試,發現在win10中使用“TortoiseGit”工具可以克隆此源碼,於是下載、壓縮、上傳到服務器如上圖。

接下來,參考:https://blog.csdn.net/lingeio/article/details/98480496,按如下操作:

[root@worker flink-parcel]# cd cm_ext
[root@worker cm_ext]# mvn package

成功編譯此源碼以生成上面報錯所需的jar,如下圖:

最後成功編譯(注意別忘了命令:./build.sh parcel,另外上圖中我配置的FLINK_URL的清華大學的鏈接中需把flink-1.9.1改爲flink1.9.2),並生成了“箭頭所指”,如下圖:

5.參考文中說“cloudera-scm-server 一定要重啓”(注意:不需要重啓任何agent主機,若無法打開網頁ip:7180的CM首頁,等候片刻刷新網址即可),然後在此server主機所在的機器目錄/opt/cloudera/parcel-repo下就自動複製了flink的parcel和sha兩個文件(注意,僅第一次重啓後是自動複製的,若把此兩個文件手動刪除後,再次重啓卻無法自動生成,於是後續我手動cp此兩文件)。然而在“cloudera manager 配置flink parcel”--->"檢查新parcel"--->"下載"時,卻一直在此下載過程中報錯“Parcel FLINK-1.9.2-BIN-SCALA_2.11-el7.parcel 的錯誤:哈希驗證失敗。”,最終參考:https://blog.csdn.net/tony_328427685/article/details/86514385,在此文的第一個模塊“製作flink組件包”後,最終的解決方案爲:

由於cloudera-scm-server所在機器上/opt/cloudera/parcel-repo目錄下已有manifest.json文件,故需要在此文中添加內容:

    {
            "hash": "bd592de6bd4aaf0465711f9059e10eec3eadc899",
            "depends": "CDH (>= 5.16.1), CDH (<< 6.4.0)",
            "replaces": "FLINK",
            "parcelName": "FLINK-1.9.2-BIN-SCALA_2.11-el7.parcel",
            "components": [
                {
                    "pkg_version": "1.9.2+flink%VERSION%",
                    "version": "1.9.2-flink%VERSION%",
                    "name": "flink",
                    "pkg_release": "BIN-SCALA_2.11"
                }
            ]
        }

即如下圖:

此時在點擊CM首頁右上角的“檢查新parcel”發現已經“下載”完畢(之所以自動下載好了,是因爲我上面手動複製那兩個文件造成的),於是再點擊分配--->激活,便卡在“激活”環節,報錯如下圖:

求賜教,萬分感謝!!!

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