![人工智能的數據](http://www.eheci.com/www/blog-legacy-assets/static/a67d7ef06cf7554a39f1628a0cd97a41/6b349/CategoryIcon-DataAI-1.png)
5個關鍵步驟成功地從Hadoop遷移到Lakehouse架構
決定從Hadoop遷移到一個現代的基於雲計算的體係結構lakehouse架構是一個業務決策,而不是技術決定。在以前的博客,我們挖到每個組織必須的理由評估使用Hadoop的關係。一旦利益相關者從技術、數據和業務決定企業的Hadoop,幾個注意事項開始前,需要考慮實際的過渡。在這個博客中,我們將特別關注實際的遷移過程本身。你會了解一個成功遷移的關鍵步驟和作用lakehouse架構在引發下一波的數據驅動的創新。
遷移步驟
我們叫它喜歡它。遷移從來就不易。然而,遷移可以結構化將負麵影響降至最低,確保業務連續性和有效地管理成本。為此,我們建議把遷移的Hadoop到這五個關鍵步驟:
- 政府
- 數據遷移
- 數據處理
- 安全性和治理
- SQL和BI層
步驟1:管理
讓我們回顧一些關鍵概念的Hadoop從政府的角度來看,以及他們如何與磚比較和對比。
Hadoop是一個龐大的分布式存儲和計算平台。Beplay体育安卓版本它由多個節點和服務器,每個都有自己的存儲、CPU和內存。工作是分布在所有節點。資源管理是通過紗,嚐試盡最大努力確保工作負載的份額計算。
Hadoop還包括元數據信息。有一個蜂巢metastore,其中包含結構化信息在你的資產存儲在HDFS。您可以利用哨兵或管理員控製對數據的訪問。從數據訪問的角度來看,用戶和應用程序可以訪問數據直接通過HDFS(或相應的CLI / API)或通過SQL類型接口。SQL接口,反過來,可以通過JDBC / ODBC連接使用蜂巢通用SQL(或在某些情況下ETL腳本)或蜂巢黑斑羚或者特斯交互式查詢。Hadoop還提供了一個HBase API和服務相關的數據來源。在Hadoop生態係統在這裏。
接下來,讓我們討論這些服務是如何映射到或處理磚Lakehouse平台Beplay体育安卓版本。在磚,需要注意的第一個差異是,你看磚環境中多個集群。每個集群可以用於一個特定的用例,一個特定的項目,業務部門、團隊或開發集團。更重要的是,這些集群是短暫的。對於工作的集群,集群的生命周期是為了持續工作流程的持續時間。它將執行工作流,一旦完成,環境自動拆除。同樣地,如果你認為一個交互式的用例中,有在開發人員之間共享的計算環境,這個環境可以在工作日的開始旋轉起來,與開發人員運行他們的代碼。在不活躍時期,磚通過(可配置)將自動把它拆掉auto-terminate內置的功能平台。Beplay体育安卓版本
不同於Hadoop,磚不像HBase或SOLR提供數據存儲服務。你的數據駐留在您的文件存儲在對象存儲。很多服務,比如HBase或SOLR替代品或同等技術產品在雲中。這可能是一個原生雲或一個ISV的解決方案。
正如你所看到的在上麵的圖中,每個集群節點磚對應的火花司機或工人。這裏的關鍵是,不同的磚集群是完全獨立的。這允許您以確保嚴格sla可以為特定項目和用例。你可以真正分離流或實時從其他用例,麵向批處理的工作負載,您不必擔心手動隔離長時間運行的工作能拱起集群資源很長一段時間。你可以自旋向上新的集群計算為不同的用例。磚也將存儲從計算,允許您利用現有的雲存儲等AWS S3, Azure Blob存儲和Azure湖數據存儲(ADLS)。
磚也有一個默認的蜂巢metastore管理,存儲結構化數據資產位於雲存儲的信息。它還支持使用外部metastore,比如AWS膠水,Azure SQL Server或Azure範圍。您還可以指定安全控製等表內acl數據磚,以及對象存儲權限。
當涉及到數據訪問、數據磚Hadoop提供類似功能的用戶與數據進行交互。數據存儲在雲存儲中,可以通過多條路徑的磚的環境。用戶可以使用SQL端點和磚SQL交互查詢和分析。他們還可以使用磚筆記本數據工程和機器學習功能的數據存儲在雲存儲中。HBase Azure CosmosDB Hadoop地圖,或AWS DynamoDB /用於,可以利用下遊應用程序服務層。
步驟2:數據遷移
來自一個Hadoop的背景,我將假定大多數觀眾都已經熟悉HDFS。HDFS的存儲文件係統使用Hadoop部署利用Hadoop集群的節點上的磁盤。HDFS規模時,您需要添加集群作為一個整體的能力(即需要大規模計算和存儲)。如果這涉及到采購和安裝額外的硬件,可以有大量的時間和精力。
雲,你幾乎無限的存儲容量雲存儲的形式如AWS S3, Azure湖存儲或Blob存儲或Google存儲數據。不需要維護或健康檢查,它提供了內置冗餘和高水平的耐用性和可用性的部署。我們建議使用本機雲服務遷移數據,和緩解遷移有幾個合作夥伴/ isv。
那麼,如何開始?最常見的推薦路線是開始有雙重攝入策略(即添加一個提要,上傳數據到雲存儲除了內部環境)。這允許您開始使用新的用例在雲中(利用新數據)而不影響你現有的設置。如果你正在尋找其他團體組織中“買賬”,你可以位置作為一個備份策略。HDFS支持傳統上一直是一個挑戰由於規模和努力參與,所以數據備份到雲可以生產計劃。
在大多數情況下,您可以利用現有的數據交付工具叉提要和寫作不僅Hadoop雲存儲。例如,如果您正在使用工具/框架Informatica和Talend Hadoop處理和寫數據,很容易添加額外的步驟,讓他們寫信給雲存儲。一旦數據在雲中,有很多方法來處理這些數據。
方向的數據,數據是來自內部的雲,從本地或推到雲。的一些工具,可以用於將數據傳送到雲是雲本地解決方案(Azure數據框,AWS雪家庭,等等),DistCP(一個Hadoop的工具),其他第三方工具,以及任何內部框架。推動選項通常是容易的獲得所需的安全團隊的批準。
為拉到雲上的數據,您可以使用火花/卡夫卡流或批攝入管道引發的雲。對於批處理,可以直接攝取文件或使用JDBC連接器連接到相關的上遊技術平台和數據。Beplay体育安卓版本當然,有第三方工具的。推動選項更廣泛接受和理解,讓我們潛水深入一點拉的方法。
首先你需要設置您的本地環境和雲之間的連接。這可以實現與互聯網連接和網關。您還可以利用專門的連通性選項如AWS直接連接,Azure ExpressRoute,等等。在某些情況下,如果您的組織到雲並不新鮮,這可能已經為您的Hadoop設置你可以重用它遷移項目。
另一個考慮是Hadoop內的安全環境。如果它是一個使用kerberos環境,它可以容納從磚。您可以配置數據磚在集群啟動時初始化腳本運行,安裝和配置必要的kerberos客戶端,訪問krb5。配置和keytab文件,存儲在雲存儲位置,並最終執行kinit()函數,它將允許磚直接與您的Hadoop集群互動的環境。
最後,您還需要一個外部metastore共享。而磚確實有metastore服務部署在默認情況下,它還支持使用外部。將共享外部metastore Hadoop和磚,和可以部署本地(Hadoop環境中)或雲。舉個例子,如果你有現有ETL流程中運行Hadoop並不能遷移磚,您可以利用這種設置與現有本地metastore,磚消費最終策劃從Hadoop數據集。
第三步:數據處理
最主要的事情要記住的是,從數據處理的角度來看,一切磚利用Apache的火花。所有Hadoop編程語言,例如MapReduce,豬,蜂巢QL和Java,可以轉換為運行在火花,無論是通過Pyspark Scala,甚至引發SQL或r .關於代碼和IDE, Apache飛艇和Jupyter筆記本都可以被轉換成磚筆記本,但是有點容易進口Jupyter筆記本。飛艇筆記本需要被轉換成Jupyter或Ipython才能進口。如果您的數據科學團隊願繼續代碼在飛艇或Jupyter,他們可以使用磚連接的,這允許您利用您的本地IDE (Jupyter,飛艇甚至IntelliJ、VScode RStudio,等等)磚上運行代碼。
遷移時,Apache火花™工作,最大的考慮是火花版本。你的本地的Hadoop集群可能會運行一個舊版本的火花,你可以使用火花遷移指南確定你看到任何影響發生了改變的代碼。要考慮的另一個領域是dataframes抽樣轉換。抽樣與火花常用版本2。x,而他們仍然可以使用火花3。x,這樣做可以防止你利用火花優化器的全部功能。我們建議你改變抽樣dataframes。
最後但並非最不重要的,一個常見的陷阱我們在遷移過程中遇到與客戶是硬編碼的參考當地的beplay体育app下载地址Hadoop環境。當然,這些都需要更新,沒有代碼將在新的設置。
接下來,讓我們來談談轉換non-Spark工作負載,這在很大程度上涉及重寫代碼。MapReduce,在某些情況下,如果您使用共同的邏輯形式的Java庫,可以利用的代碼火花。然而,你可能仍然需要重寫代碼的某些部分在引發環境中運行MapReduce。Sqoop相對容易遷移,因為在新環境你運行一組火花命令(而不是MapReduce命令)使用JDBC的數據源。您可以指定參數火花代碼以同樣的方式在Sqoop指定它們。水槽,大多數用例我們看到周圍消費HDFS數據從卡夫卡和寫作。這是一個可以很容易地使用火花流來完成的任務。遷移水槽的主要任務是,你必須配置基於文件的方法轉換為一個更引發的編程方法。最後,我們有Nifi,大部分是使用Hadoop外,大多是一個拖拽,自助攝入的工具。Nifi可以利用在雲中,但我們看到許多客戶使用機會遷移到雲Nifi替換為其他,雲中的新工具。beplay体育app下载地址
遷移HiveQL或許是最簡單的任務。之間存在著高度的兼容性蜂巢和火花SQL,和大多數查詢應該能夠運行在SQL原有火花。有一些輕微的SQL DDL HiveQL和火花之間的變化,比如火花SQL使用vs HiveQL“使用”條款的“格式”條款。我們建議更改代碼使用火花SQL格式,因為它允許優化器準備最好的執行計劃為您的代碼在磚。你仍然可以利用蜂巢並行轉換器和udf,使生活更容易遷移時HiveQL磚。
對工作流程編製,你必須考慮潛在的更改將提交你的工作。您可以繼續利用火花提交語義,但也有其他更快和更無縫地集成選項。您可以利用磚工作和三角洲表無代碼ETL取代Oozie的工作生活,在磚和定義的端到端數據管道。涉及外部的工作流處理依賴關係,你必須創建相當於工作流/管道在Apache氣流等技術,Azure數據工廠等自動化/調度。磚的REST api,幾乎任何調度平台可以集成和配置使用磚。Beplay体育安卓版本
還有一個自動化工具,稱為MLens(由KnowledgeLens),它可以幫助你的工作負載遷移Hadoop磚。MLens可以幫助遷移PySpark代碼和HiveQL,包括翻譯的一些蜂巢細節到火花SQL,這樣您就可以利用完整的功能和性能的火花SQL優化器的好處。他們也計劃很快支持遷移Oozie工作流氣流,Azure數據工廠等。
步驟4:安全與治理
讓我們看看安全性和治理。在Hadoop的世界裏,我們有LDAP集成洋麻等連接到管理控製台或Cloudera經理,甚至是黑斑羚或者Solr。Hadoop還Kerberos,用於驗證與其他服務。從授權的角度來看,管理員和哨兵是最常用的工具。
磚,單點登錄(SSO)集成可與任何身份提供者支持SAML 2.0。這包括Azure Active Directory,穀歌工作區SSO, AWS SSO和Microsoft Active Directory。對於授權,磚提供acl(訪問控製列表)磚對象,它允許您設置權限等實體筆記本,工作,集群。數據權限和訪問控製,您可以定義acl表和視圖列和行限製訪問,以及利用憑證之類的透傳,磚的傳遞您的工作區登錄憑證到存儲層(S3, ADLS Blob存儲),以確定如果你是授權訪問數據。如果你需要功能屬性控製或數據屏蔽,可以利用合作夥伴的工具如Immuta和Privacera。從企業治理的角度來看,您可以連接磚等企業數據目錄的AWS膠水,Informatica數據目錄,Alation Collibra。
第五步:SQL & BI層
在Hadoop,正如前麵所討論的,你有蜂巢和黑斑羚接口ETL以及特別的查詢和分析。通過在磚,你也有類似的功能磚的SQL。磚SQL還提供極端性能通過三角洲引擎,以及支持高並發性的用例與伸縮集群。三角洲引擎還包括光子,這是一個新的MPP引擎從零開始在c++和矢量化,利用數據和指令級並行性水平。
磚為本地集成提供BI工具如表、PowerBI, Qlik看起來,以及高度優化的JDBC / ODBC連接器,可以利用這些工具。新JDBC / ODBC驅動程序有一個非常小的開銷(¼sec)和傳輸速率高出50%使用Apache箭頭,以及一些元數據操作,支持更快的元數據檢索操作。PowerBI磚還支持SSO,與其他BI /儀表盤工具支持SSO快到了。
磚有一個內置的SQL用戶體驗除了上麵提到的筆記本體驗,使您的SQL用戶自己的鏡頭和一個SQL工作台,以及光儀表盤和報警功能。這允許基於sql的數據轉換和探索性分析數據在湖上,而不需要移動它下遊數據倉庫或其他平台。Beplay体育安卓版本
下一個步驟
當你思考現代雲架構遷移旅程像lakehouse架構,這裏有兩件事要記住:
- 記得帶的關鍵業務涉眾在旅程上。這是一個技術決定,因為它是一個商業決定,你需要你的業務涉眾的旅程和它的結束狀態。
- 同時,記住你不是一個人,有技術資源在磚和我們的合作夥伴做過足以構建可重複的最佳實踐,儲蓄機構,時間,金錢,資源,降低整體壓力。
- 下載Hadoop磚技術遷移指南循序漸進的指導,筆記本,和代碼開始遷移。
學習更多關於磚增加商業價值,開始計劃遷移的Hadoop,訪問www.eheci.com/migration。
相關的帖子
![人工智能的數據](http://www.eheci.com/www/blog-legacy-assets/static/a67d7ef06cf7554a39f1628a0cd97a41/6b349/CategoryIcon-DataAI-1.png)