亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CDH6中的第三方庫有什么用

發布時間:2021-12-14 09:27:04 來源:億速云 閱讀:223 作者:小新 欄目:大數據

這篇文章主要為大家展示了“CDH6中的第三方庫有什么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“CDH6中的第三方庫有什么用”這篇文章吧。

在最近發布的CDH6版本中,Cloudera投入了大量的人力和物力用于升級所使用的第三方庫。這次CDH的大版本更新可以讓我們使用到一些較新的庫。升級庫的目的主要是可以避免一些安全漏洞,使用某些庫的流行版本以及標準化CDH所使用的庫。

現在的軟件開發依賴于重用其他人的代碼。以這種方式重用的代碼稱為“第三方庫”(third-party library)。有很多這樣的例子:需要Web服務器的工程師不會重寫一個,而會使用比較流行的第三方庫代替比如Jetty。如果需要文件壓縮,則可以選擇Apache Commons-Compress。如果需要序列化數據,則Jackson-Databind是一個不錯的選擇。這種例子舉不勝舉,而且一直在擴充。

使用第三方庫有很多好處。開發人員不用重新造輪子。最受歡迎的庫往往質量很高,經過嚴格測試,得到廣泛使用,并且得到很好的管理。流行的庫一般是開源的,并且可以自由使用。大多數情況下,在一些特定任務中它們都會比程序猿自己開發實現的要做的更好。在使用一些第三方庫的時候,可以使整個開發任務變得簡單,從而讓程序猿可以更專注于創建一些新的或者有趣的東西。現在的軟件工具也意識到了這一點,比如,在Java中,Maven生態系統可以讓與第三方庫交互變得非常容易。

雖然它們可以節省大量時間,但第三方庫并不是完全沒有麻煩的。它們也需要維護,特別是由于以下原因需要定期升級:

1.如果第三方庫存在安全漏洞,我們必須快速升級到已經解決該漏洞的版本。

2.有時,第三方庫會達到使用壽命,過時或更改名稱。如果我們不遷移到新版本,則安全漏洞或者其他的已知問題可能永遠得不到修復。

3.為了更容易地將不同的CDH組件集成到一起使用,最好對于所有項目中使用到的第三方庫保持相同的版本。

4.升級第三方庫到大版本(一般會向后兼容)可能會存在問題。對于這種情況,最好跟著你的軟件升級發布一起來做,而不是為了修復一個比如安全漏洞就升級大版本。

對于升級第三方庫的一個最重要的原因就是安全漏洞。一個值得紀念的例子是Equifax泄露事件(https://www.ftc.gov/equifax-data-breach)。Equifax使用Apache Struts,但在發現重大安全漏洞后未對其進行升級。攻擊者利用此漏洞竊取了1.43億美國人的數據。我們不希望同樣的事情發生在我們的客戶身上。

第三方庫的維護很復雜,因為它們可能不會被項目直接使用。例如,我們可能使用庫X,而庫X可能使用庫Y。我們將庫X稱為“直接”依賴,而庫Y則稱為“間接”或“傳遞”依賴。升級直接依賴庫通常很簡單,但是升級間接依賴庫有時則較為復雜。比如,假設我們使用庫X,而庫X使用具有安全漏洞的庫Y。此時,如果我們想升級庫X,則需保證沒有安全漏洞的庫Y升級也已經準備好,但是這個往往是我們無法控制的。當庫的依賴越來越多的時候,這個情況可能更糟,比如庫X包括庫Y,庫Y又包括庫Z。

在CDH5的時候,其實使用的許多第三方庫都相當舊。我們想升級它們,但由于擔心會破壞向后兼容性,而無法升級它們。但是當這一次做大版本更新時(C5到C6),允許打破向后兼容性(https://semver.org/),所以我們能很好的開展工作。

與某項目的向后兼容相關的修改往往都非常明顯,但應該讓開發人員更平滑的過度。比如用戶必須重新編譯作業,但不必重寫它們。 SQL接口(如Apache Impala)的服務用戶應該看不出任何區別。

這里有一些統計數據可以顯示這個問題的難度和規模。在我們支持的所有軟件中,我們擁有600多個單獨的直接依賴關系。如果算上間接依賴,這個數字攀升到1500以上!我們的一些大型項目,如Apache Hive,Cloudera Manager和Apache Hadoop,擁有100多個直接依賴項和300多個間接依賴項。

為了跟蹤和衡量我們對第三方庫的使用情況,我們構建了一個名為“Dependency Report”的工具,它來自于以下輸入:

1.根據Maven顯示的每個項目使用的第三方庫。

2.根據Maven Central得到的每個庫的最新版本。

3.每個庫的年齡。

4.每個庫是否有安全漏洞,根據Dependency Check

(https://www.owasp.org/index.php/OWASP_Dependency_Check)來判斷。同時可以參考:

https://www.owasp.org/index.php/Main_Page

利用這些豐富的數據,我們能夠為每個項目創建一個儀表盤。該儀表盤可以顯示比如“這里有所有具有安全漏洞的庫”,“這些庫至少落后1個大版本應該升級”和“這些庫已超過10年。”每個庫都會有一個打分,可以幫助開發人員判斷升級庫的優先級。有一個All-Projects視圖,顯示項目如何相互比較。一個視圖顯示了我們所有項目中使用的每個庫,另一個視圖突出顯示了所有項目中第三方庫版本的差異。

這是Apache Hadoop依賴庫的視圖:

CDH6中的第三方庫有什么用

以下視圖顯示在CDH中同一個庫的不同版本:

CDH6中的第三方庫有什么用

我們很高興地說這項努力取得了成功。在C6開發過程中,我們解決了400多個問題!以下是一些更值得注意的成就:

1.在C5中,我們使用了兩種不同類型的Web服務 - Jetty和Tomcat。 Jetty版本已超過8年,而Tomcat版本已超過其壽命。在C6中,我們在所有項目中標準化了新的Jetty。

2.在C5中,我們使用了至少六種不同的舊版本和不安全版本的jackson-databind庫。在C6中,我們已經標準化了一個沒有已知安全漏洞的新的jackson。這項工作幾乎要求每個項目都需要改變,并需要所有團隊的大量協調和努力。

展望未來,我們構建了一個儀表盤來跟蹤的第三方庫的指標。它能夠監控新的安全漏洞,提醒團隊并更快地解決問題。

由于這些改變,C6提供了更安全,更主流的第三方庫,Cloudera將能夠保持這一質量標準,因為我們將繼續投資產品在未來的安全性。

以上是“CDH6中的第三方庫有什么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

太康县| 琼结县| 新安县| 尼勒克县| 河北区| 河东区| 高台县| 子洲县| 东兰县| 江西省| 宜兰县| 华蓥市| 衡水市| 苍梧县| 秀山| 德庆县| 海兴县| 丹江口市| 磐石市| 秭归县| 承德市| 鹰潭市| 临邑县| 宣汉县| 中山市| 潼南县| 五指山市| 阿拉善盟| 泰顺县| 石家庄市| 福清市| 满洲里市| 衡水市| 绵阳市| 镇远县| 枣庄市| 富裕县| 杂多县| 泰安市| 凌源市| 彭州市|