【CDH × Docker】一次測試部署,N 次復用的環境鏡像方案

🚀 一次測試環境的探索:我如何將 CDH 集群打包成 Docker 鏡像,留給未來的自己

🧩 背景故事

最近在項目中,我們計劃上線一個基于 CDH(Cloudera Distribution Hadoop) 的大數據平臺。正式上生產環境之前,我被安排在測試環境先搭建一套完整的 CDH 集群做功能驗證與調優。

當一切配置跑通后,我意識到一個問題:

既然花了這么大力氣把 CDH 集群搭建成功了,為什么不把它打包起來,未來不論是重建、遷移、分享、還是快速啟動一套環境,都能一步到位?

于是,我決定將運行中的 CDH 集群容器 打包成鏡像,留給未來的我和團隊使用。


🧱 準備階段:集群容器已經搭建成功

我在測試環境中,通過 docker-compose 啟動了以下幾個容器:

  • cloudera-manager(CM 管理端)
  • cdh-node1(Worker 節點)
  • cdh-node2(Worker 節點)

經過配置后,這些節點已經通過 Cloudera Manager 成功部署了 HDFS、YARN、Zookeeper、Hive 等組件,整個環境運行穩定。

下一步,就是把這些容器打包成鏡像。


🧰 正式開始:將容器打包為鏡像

① 查看當前運行的容器

docker ps

輸出類似:

CONTAINER ID   IMAGE           NAMES
a1b2c3d4e5f6   cdh-node-base   cdh01.hadoop
b2c3d4e5f6g7   cdh-node-base   cdh02.hadoop
c3d4e5f6g7h8   cdh-node-base   cm.hadoop

② 使用 docker commit 打包容器

將運行中的容器保存為鏡像:

docker commit cdh01.hadoop cdh-node:v1.0
docker commit cm.hadoop cloudera-manager:v1.0

💡 提示:你也可以為不同角色創建不同鏡像,如 cdh-workercdh-manager

③ 查看鏡像是否生成成功

docker images

你會看到類似:

REPOSITORY          TAG       IMAGE ID       CREATED          SIZE
cdh-node            v1.0      bb8927b5208b        10 seconds ago   9.28GB
cloudera-manager    v1.0      34f5886ee4df        8 seconds ago    13GB

📦 可選:導出鏡像為 .tar 文件(備份 or 遷移)

如果你希望將鏡像導出分享或備份:

docker save -o cdh-node-v1.0.tar cdh-node:v1.0
docker save -o cloudera-manager-v1.0.tar cloudera-manager:v1.0

導入方式也很簡單:

docker load -i cdh-node-v1.0.tar

🧪 驗證鏡像是否可用

你可以新建一臺測試機或容器環境,然后通過這些鏡像啟動:

docker run -it --name test-node cdh-node:v1.0 /bin/bash

在容器內檢查配置文件、服務是否存在、CM 是否能識別 agent,一切正常的話,這就是你的 “克隆模板”!


🧭 總結

這次在測試環境中構建并打包 CDH 鏡像的經歷,讓我明白了兩件事:

  1. 測試環境的努力不應浪費:通過鏡像,我們把環境“凍結”,未來重建無壓力;
  2. 運維自動化的第一步就是可復用性:只要基礎環境一致,我們可以任意克隆、部署、分發。

留給未來的自己一個打包好的環境,是對自己最溫柔的善意。


🔖 最后附上一鍵打包腳本(可選)

#!/bin/bashcontainers=("cdh01.hadoop" "cdh02.hadoop" "cm.hadoop")
for name in "${containers[@]}"; doimage_name="${name}-image:v1.0"echo "打包容器 $name 為鏡像 $image_name"docker commit "$name" "$image_name"
done

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/93892.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/93892.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/93892.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java 日期時間格式化模式說明

Java 中日期時間格式化使用特定的模式字符串來定義輸出格式。以下是常見的格式化符號及其含義,適用于 SimpleDateFormat 和 DateTimeFormatter一、日期部分格式化符號符號含義示例y年 (Year)yyyy → 2023M月 (Month)MM → 09, MMM → Sep, MMMM → Septemberd月中的…

代碼隨想錄算法訓練營三十三天|動態規劃part06

LeetCode 322 零錢兌換 題目鏈接:322. 零錢兌換 - 力扣(LeetCode) 給你一個整數數組 coins ,表示不同面額的硬幣;以及一個整數 amount ,表示總金額。 計算并返回可以湊成總金額所需的 最少的硬幣個數 。…

【大模型LLM】大模型訓練加速 - 梯度累積(Gradient Accumulation)原理詳解

梯度累積(Gradient Accumulation)原理詳解 梯度累積是一種在深度學習訓練中常用的技術,特別適用于顯存有限但希望使用較大批量大小(batch size)的情況。通過梯度累積,可以在不增加單個批次大小的情況下模擬…

【數據分享】各省文旅融合耦合協調度及原始數據(2012-2022)

數據介紹引言 文旅融合是推動區域經濟高質量發展、促進共同富裕的重要路徑。黨的二十大報告明確提出“推進文化和旅游深度融合發展”的戰略目標,文旅產業通過資源整合與業態創新,可顯著縮小城鄉、區域差距,提升物質與精神雙重福祉&#xff08…

Linux編程: 10、線程池與初識網絡編程

今天我計劃通過一個小型項目,系統講解線程池與網絡編程的核心原理及實踐。項目將圍繞 “利用線程池實現高并發網絡通信” 這一核心需求展開,具體設計如下: 為保證線程安全,線程池采用單例模式設計,確保全局唯一實例避…

藏云閣 Logo 庫(開源項目SVG/PNG高清Logo)

在日常技術方案設計、架構圖繪制或PPT制作中,常常會遇到一些問題,比如: 找不到統一風格的開源項目組件圖標,PPT中的logo五花八門下載的圖標分辨率不足,放大后模糊失真不同來源的圖標顏色風格沖突,破壞整體…

從0開始學習R語言--Day64--決策樹回歸

對于沒有特征或者說需要尋找另類關系的數據集,我們通常會用聚合或KNN近鄰的方法來分類,但這樣的分類或許在結果上是好的,但是解釋性并不好,有時候我們甚至能看到好的結果反直覺;而決策樹回歸做出的結果,由于…

B+樹高效實現與優化技巧

B樹的定義 一顆M階B樹T,滿足以下條件 每個結點至多擁有M課子樹 根結點至少擁有兩顆子樹 除了根結點以外,其余每個分支結點至少擁有M/2課子樹 所有的葉結點都在同一層上 有k棵子樹的分支結點則存在k-1個關鍵字,關鍵字按照遞增順序進行排序 關鍵字數量滿足 ceil( M/2 ) - 1 &…

Android 基礎入門學習目錄(持續更新)

四大組件 Activity: Service: BroadcastReceiver: ContentProvider: UI 與交互開發 常見的UI布局和UI控件 樣式與主題 Fragment Intent 數據存儲 自定義View和自定義Group 自定義View 自定義ViewGroup 事件分發 Key…

Linux移動大量文件命令

背景 使用 mv 命令報“/bin/mv: 參數列表過長”,也是第一遇到,查了一下,最后用rsync命令解決了。還好每臺服務器,都必裝rsync了,記錄如下。 命令 nohup rsync -av --remove-source-files --progress /public/tmp/video…

SQL中的HAVING用法

HAVING 是 SQL 中專門對 “分組之后的聚合結果” 再做篩選的子句。 它一般跟在 GROUP BY 后面,不能單獨使用,作用類似于分組版的 WHERE。? 1. 語法位置 SELECT 列1, 聚合函數(列2) AS 別名 FROM 表 GROUP BY 列1 HAVING 聚合條件; -- 這里寫對聚合…

【Halcon 】Halcon 實戰:如何為 XLD 模板添加極性信息以提升匹配精度?

Halcon 實戰:如何為 XLD 模板添加極性信息以提升匹配精度? 在使用 Halcon 進行模板匹配時,我們通常有兩種方式創建模板: 基于圖像灰度(CreateScaledShapeModel)基于輪廓 XLD(CreateScaledShapeM…

grafana/lock-stack 日志 Pipeline 配置

前言 本文使用的是 grafana/loki-stack chart 抓取的 k8s 日志。其他 chart 配置都差不多。 日志問題 docker 容器運行時 pod 內原始日志 [cpu-4] Hello, 第 9788 次報時,時間:2025-08-01T06:35:420000 {"HOSTNAME":"cpu-4",&qu…

appium2.0+之PointerActions詳解

以下內容在 夜神模擬器 上進行。 一、應用場景 一些針對手勢的操作,比如滑動、長按、拖動等。可以將這些基本手勢組合成一個相對復雜的手勢。 二、使用步驟創建觸摸輸入設備(模擬手指操作) touch_input PointerInput(interaction.POINTER_TO…

Java HTTPS 請求失敗排查與證書導入全過程

文章目錄Java HTTPS 請求失敗排查與證書導入全過程問題背景問題初步分析排查過程查看目標地址證書導入證書驗證證書是否導入成功重啟應用進一步驗證:是否真的是證書問題?1. 瀏覽器訪問2. 抓包工具驗證(如 Charles、Wireshark)補充…

android APT技術

1,背景 對于注解的使用,想必大家都不陌生,它出現在我們的源碼中,以及大部分框架中,比如ButterKnife、Arouter、Retrofit,但它們是有區別的,其中前2個是編譯時注解,最后一個是運行時注…

MySQL 和 PostgreSQL綜合比對分析匯總

面對大數據項目或其它類型項目中,面對關系型數據庫選擇一直是很總要的一點,本文針對MySQL 和 PostgreSQL進行綜合比對分析匯總,內容僅供參考。MySQL 和 PostgreSQL 是兩款主流的開源關系型數據庫(RDBMS),但…

Linux---make和makefile

一、基本概念1.是什么make是一條命令,makefile是一個文件2.對應在vs中按一下f5就能運行代碼,在Linux中make就相當于f5,使用makefile來封裝從而實現我, 想要的功能3.使用①創建makefile文件②編輯makefile解釋:test.exe…

【DAB收音機】DAB收音機協議及其他資料匯總

目錄[ETSI DAB標準協議文檔](https://www.etsi.org/standards)Other DAB資料DAB收音機相關的專利DAB收音機相關的期刊及學位論文DAB開源項目代碼倉庫qt-dab工具welle.io工具dablin工具【eti廣播工具】?? 項目對比與選型建議Other 收音機資料Other資料ETSI DAB標準協議文檔 官…

RabbitMQ的特點和消息可靠性保障

掌握RabbitMQ的核心知識,需從其特點和消息可靠性保障(尤其是消息丟失解決方案)兩方面入手,以下是詳細說明: 一、RabbitMQ的核心特點 RabbitMQ是基于AMQP(Advanced Message Queuing Protocol)協議…