您好,登錄后才能下訂單哦!
本文小編為大家詳細(xì)介紹“如何使用Docker快速搭建Hadoop集群環(huán)境”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“如何使用Docker快速搭建Hadoop集群環(huán)境”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。
連接服務(wù)器
使用 ssh 命令連接遠(yuǎn)程服務(wù)器。
ssh root@[your ip address]
更新軟件列表
apt-get update
更新完成。
安裝 docker
sudo apt-get install docker.io
當(dāng)遇到輸入是否繼續(xù)時(shí),輸入「y/y」繼續(xù)。
安裝完成
輸入「docker」測(cè)試是否安裝成功。
拉取鏡像
鏡像,是 docker 的核心,可以通過(guò)從遠(yuǎn)程拉取鏡像即可配置好我們所需要的環(huán)境,我們這次需要的是 hadoop 集群的鏡像。
在本文中,我們將使用 kiwenlau 的 hadoop 集群鏡像以及其配置。由于我的服務(wù)器本身即在國(guó)外,因此拉取鏡像的速度較快,國(guó)內(nèi)由于眾所周知的原因,可以替換為相應(yīng)的國(guó)內(nèi)源,以加快拉取速度。
sudo docker pull kiwenlau/hadoop:1.0
拉取鏡像完成。
克隆倉(cāng)庫(kù)
克隆倉(cāng)庫(kù)到當(dāng)前文件夾(可以自行創(chuàng)建并切換到相應(yīng)文件夾)。
git clone https://github.com/kiwenlau/hadoop-cluster-docker
克隆倉(cāng)庫(kù)完成
橋接網(wǎng)絡(luò)
sudo docker network create --driver=bridge hadoop
運(yùn)行容器
cd hadoop-cluster-docker ./start-container.sh
默認(rèn)是 1 個(gè)主節(jié)點(diǎn),2 個(gè)從節(jié)點(diǎn),當(dāng)然也可以根據(jù)性能調(diào)整為 n 節(jié)點(diǎn),詳見(jiàn)文末參考鏈接。
啟動(dòng) hadoop
./start-hadoop.sh
在上一步,我們已經(jīng)運(yùn)行容器,即可直接運(yùn)行 hadoop。啟動(dòng)時(shí)長(zhǎng)與機(jī)器性能有關(guān),也是難為了我這一臺(tái) 512 mb 內(nèi)存的服務(wù)器。
測(cè)試 word count
./run-wordcount.sh
word count 是一個(gè)測(cè)試 hadoop 的 shell 腳本,即計(jì)算文本中的單詞個(gè)數(shù)。不過(guò)由于我的服務(wù)器內(nèi)存不夠分配無(wú)法完成,所以后續(xù)以本機(jī)進(jìn)行測(cè)試。
網(wǎng)頁(yè)管理
我們可以通過(guò)網(wǎng)頁(yè)遠(yuǎn)程管理 hadoop:
name node: [your ip address]:50070/
resource manager: [your ip address]:8088/
macos
info:
macos 10.12.4 beta (16e191a)
下載 & 安裝
打開(kāi) docker 官方網(wǎng)站:,選擇社區(qū)版,并下載、安裝。windows 系統(tǒng)用戶可以選擇 windows 版本。
docker ce
macos or windows
運(yùn)行 docker
打開(kāi) docker。為了簡(jiǎn)單,我沒(méi)有改動(dòng)配置,如需更改,可以在 preferences 中修改。
我們可以在終端(terminal)輸入「docker」,測(cè)試是否安裝成功。
拉取鏡像 & 克隆倉(cāng)庫(kù) & 橋接網(wǎng)絡(luò) & 運(yùn)行容器 & 啟動(dòng) hadoop
同 linux。
測(cè)試 word count
./run-wordcount.sh
同 linux,但這次我們可以運(yùn)算出結(jié)果了。
windows
其實(shí)最開(kāi)始就沒(méi)有打算放出 windows 版,倒不是因?yàn)橛X(jué)得 windows 不好,而是目前手頭沒(méi)有 windows 的電腦,借用同學(xué)的電腦也不是很方便。如果需要安裝 docker,需要 cpu 支持虛擬化,且安裝了 64 位 windows 10 pro/企業(yè)版(需要開(kāi)啟 hyper-v)。其他版本的 windows 可以安裝 docker toolbox。
intellij idea
我們的 hadoop 集群已經(jīng)在容器里安裝完成,而且已經(jīng)可以運(yùn)行。相比自己一個(gè)個(gè)建立虛擬機(jī),這樣的確十分方便、快捷。為了便于開(kāi)發(fā)調(diào)試,接下來(lái)就需要在 intellij idea 下配置開(kāi)發(fā)環(huán)境,包管理工具選擇 gradle。maven 配合 eclipse 的配置網(wǎng)上已經(jīng)有很多了,需要的同學(xué)可以自行搜索。
docker 開(kāi)啟 9000 端口映射
由于我們使用的是 的鏡像和開(kāi)源腳本,雖然加快了配置過(guò)程,但是也屏蔽了很多細(xì)節(jié)。比如在其腳本中只默認(rèn)開(kāi)啟了 50070 和 8088 的端口映射,我們可以通過(guò) docker ps(注意是在本機(jī),而不是在容器運(yùn)行該命令)列出所有容器,查看容器映射的端口。
cd hadoop-cluster-docker vim start-container.sh
切換到腳本文件夾,使用 vim 編輯 start-container.sh。在圖中光標(biāo)處添加以下內(nèi)容,保存并退出。
-p 9000:9000 \
重啟容器,并查看容器狀態(tài),如圖即為映射成功。
開(kāi)啟 web hdfs 管理*
該步非必須。為了方便在網(wǎng)頁(yè)端管理,因此開(kāi)啟 web 端,默認(rèn)關(guān)閉。
which hadoop cd /usr/local/hadoop/etc/hadoop/ ls vi core-site.xml
找到 hadoop 配置文件路徑,使用 vi 編輯,若 vi 的插入模式(insert mode)中,上下左右變成了 abcd,那么可以使用以下命令即可:cp /etc/vim/vimrc ~/.vimrc
修復(fù)。
添加以下內(nèi)容。
<property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property>
啟動(dòng) hadoop
同 linux。
構(gòu)建依賴(lài)
使用 intellij idea 新建一個(gè) gradle 項(xiàng)目,在 build.gradle 中加入以下依賴(lài)(對(duì)應(yīng)容器 hadoop 版本)。
compile group: 'org.apache.hadoop', name: 'hadoop-common', version: '2.7.2' compile group: 'org.apache.hadoop', name: 'hadoop-hdfs', version: '2.7.2'
demo
import org.apache.commons.io.ioutils; import org.apache.hadoop.conf.configuration; import org.apache.hadoop.fs.*; import org.junit.before; import org.junit.test; import java.io.fileinputstream; import java.io.ioexception; import java.net.uri; /** * created by kingcos on 25/03/2017. */ public class hdfsoperations { filesystem filesystem; @before public void configure() throws exception { configuration configuration = new configuration(); configuration.set("fs.defaultfs", "hdfs://192.168.1.120:9000"); filesystem = filesystem.get(uri.create("hdfs://192.168.1.120:9000"), configuration, "root"); } @test public void listfiles() throws ioexception { path path = new path("/"); remoteiterator<locatedfilestatus> iterator = filesystem.listfiles(path, true); while (iterator.hasnext()) { locatedfilestatus status = iterator.next(); system.out.println(status.getpath().getname()); } } @test public void rm() throws ioexception { path path = new path("/"); filesystem.delete(path, true); } @test public void mkdir() throws ioexception { path path = new path("/demo"); filesystem.mkdirs(path); } }
讀到這里,這篇“如何使用Docker快速搭建Hadoop集群環(huán)境”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。