基於docker虛擬化建立hadoop集群

2022-07-20 21:39:16 字數 1127 閱讀 5178

最近想用hadoop做乙個測試,與效能無關的測試,但是可與屌絲的命,手頭沒有太多機器,也租不起雲主機。這裡使用docker進行虛擬化,並搭建hadoop集群,在這裡將過程記錄如下。

首先安裝docker,這裡不作詳細介紹,sudo apt-get install docker;安裝完成之後,我們可以發現在ifconfig中多處了一項docker0,其實這就是docker基於linux的namespace建立的乙個虛擬網橋,用於承接我們虛擬機器到主機之間的網路。

第三: 我們使用命令docker run  來將系統執行起來,這個過程其實就是從映象到容器的過程,這裡有幾個引數我們需要注意一下,

-h:   指定容器的hostname,給容器指定的hostname是相當合理的乙個操作,否則ssh的時候你就要每次去找一長串hostname了。

-u: 指定執行的user,但是初始的時候應該只有root,現在可以忽略。

-w: 指定user的work path ,同上,現在可忽略。

--name:  指定容器的名字,這裡也挺便捷的,否則我們就只能使用容器id來執行了。

第四: 以上操作都完成了,想必大家現在不想再講1-3的操作再重複一遍了吧?那麼我們就需要了解另乙個知識點,打包: 這裡的含義是將我們的容器打包為映象,命令偽docker commit  《容器id> 《映象name>  。完成之後我們發現docker ps -a命令下多出了一項,3.0g!!!!!!!

第五:   使用我們自己的映象檔案建立容器,這一步我們就可以使用第三中使用到的命令了。給出乙個完整的例子:docker run -it  -h hadoop_namenode -u libo -w /home/libo --name hadoop_namenode hadoop_ubuntu。這樣我們就依賴hadoop_ubuntu建立了乙個名為hadoop_namenode的虛擬機器。至於需要幾個虛擬機器,有你自己決定。

第五: 本來這一點不打算做介紹的,但是這裡還是說一下,就是在ssh傳遞公鑰檔案的時候總是出現connection refused!這個錯誤,當時就覺得應該是ssh服務的問題,然後ps -aux|grep "ssh" ,果真沒有。我們需要啟動ssh服務: sudo /etc/init.d/ssh start來啟動。

第六: 接下來的操作就是對hadoop的配置了,這一節我們會抽時間再寫一篇進行記錄。

傳統虛擬化與docker虛擬化

虛擬機器 完全虛擬化 docker 作業系統級虛擬化 應用程式 執行時的環境 應用程式 虛擬機器作業系統 執行時的環境 虛擬機器管理程式 docker容器支援 宿主機作業系統 宿主機作業系統 硬體層 硬體層 docker映象 images 類似於虛擬機器映象,面向docker引擎的唯讀模板,包含了檔...

虛擬化 Docker雜談

虛擬化 虛擬化是docker的理論基礎,也是docker所實現功能的目的。資源的彙總和再分配 虛擬化技術將應用與真實的計算機資源分離,不但打破了應用程式與真實資源之間不可切割的障礙,也讓資源跨物理或地域的配置和使用成為可能。通過虛擬化技術,可以更容易地完成醫用程式對依賴資源的解耦,讓應用程式輕鬆地執...

虛擬化之docker

1,什麼是docker dokcer是應用容器,它是基於系統的虛擬化,他不是基於硬體的虛擬化 kvm 可能這樣說有點抽象,我在知乎看到過乙個比喻,docker思想是 於貨櫃的,在一艘大船上,可以用貨櫃將各種物品分類並打包,那麼這樣就有多個貨櫃,那麼這裡的貨櫃類似於docker了。而這艘大船就類似於我...