您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“如何使用Docker快速搭建Hadoop集群環境”,內容詳細,步驟清晰,細節處理妥當,希望這篇“如何使用Docker快速搭建Hadoop集群環境”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
連接服務器
使用 ssh 命令連接遠程服務器。
ssh root@[your ip address]
更新軟件列表
apt-get update
更新完成。
安裝 docker
sudo apt-get install docker.io
當遇到輸入是否繼續時,輸入「y/y」繼續。
安裝完成
輸入「docker」測試是否安裝成功。
拉取鏡像
鏡像,是 docker 的核心,可以通過從遠程拉取鏡像即可配置好我們所需要的環境,我們這次需要的是 hadoop 集群的鏡像。
在本文中,我們將使用 kiwenlau 的 hadoop 集群鏡像以及其配置。由于我的服務器本身即在國外,因此拉取鏡像的速度較快,國內由于眾所周知的原因,可以替換為相應的國內源,以加快拉取速度。
sudo docker pull kiwenlau/hadoop:1.0
拉取鏡像完成。
克隆倉庫
克隆倉庫到當前文件夾(可以自行創建并切換到相應文件夾)。
git clone https://github.com/kiwenlau/hadoop-cluster-docker
克隆倉庫完成
橋接網絡
sudo docker network create --driver=bridge hadoop
運行容器
cd hadoop-cluster-docker ./start-container.sh
默認是 1 個主節點,2 個從節點,當然也可以根據性能調整為 n 節點,詳見文末參考鏈接。
啟動 hadoop
./start-hadoop.sh
在上一步,我們已經運行容器,即可直接運行 hadoop。啟動時長與機器性能有關,也是難為了我這一臺 512 mb 內存的服務器。
測試 word count
./run-wordcount.sh
word count 是一個測試 hadoop 的 shell 腳本,即計算文本中的單詞個數。不過由于我的服務器內存不夠分配無法完成,所以后續以本機進行測試。
網頁管理
我們可以通過網頁遠程管理 hadoop:
name node: [your ip address]:50070/
resource manager: [your ip address]:8088/
macos
info:
macos 10.12.4 beta (16e191a)
下載 & 安裝
打開 docker 官方網站:,選擇社區版,并下載、安裝。windows 系統用戶可以選擇 windows 版本。
docker ce
macos or windows
運行 docker
打開 docker。為了簡單,我沒有改動配置,如需更改,可以在 preferences 中修改。
我們可以在終端(terminal)輸入「docker」,測試是否安裝成功。
拉取鏡像 & 克隆倉庫 & 橋接網絡 & 運行容器 & 啟動 hadoop
同 linux。
測試 word count
./run-wordcount.sh
同 linux,但這次我們可以運算出結果了。
windows
其實最開始就沒有打算放出 windows 版,倒不是因為覺得 windows 不好,而是目前手頭沒有 windows 的電腦,借用同學的電腦也不是很方便。如果需要安裝 docker,需要 cpu 支持虛擬化,且安裝了 64 位 windows 10 pro/企業版(需要開啟 hyper-v)。其他版本的 windows 可以安裝 docker toolbox。
intellij idea
我們的 hadoop 集群已經在容器里安裝完成,而且已經可以運行。相比自己一個個建立虛擬機,這樣的確十分方便、快捷。為了便于開發調試,接下來就需要在 intellij idea 下配置開發環境,包管理工具選擇 gradle。maven 配合 eclipse 的配置網上已經有很多了,需要的同學可以自行搜索。
docker 開啟 9000 端口映射
由于我們使用的是 的鏡像和開源腳本,雖然加快了配置過程,但是也屏蔽了很多細節。比如在其腳本中只默認開啟了 50070 和 8088 的端口映射,我們可以通過 docker ps(注意是在本機,而不是在容器運行該命令)列出所有容器,查看容器映射的端口。
cd hadoop-cluster-docker vim start-container.sh
切換到腳本文件夾,使用 vim 編輯 start-container.sh。在圖中光標處添加以下內容,保存并退出。
-p 9000:9000 \
重啟容器,并查看容器狀態,如圖即為映射成功。
開啟 web hdfs 管理*
該步非必須。為了方便在網頁端管理,因此開啟 web 端,默認關閉。
which hadoop cd /usr/local/hadoop/etc/hadoop/ ls vi core-site.xml
找到 hadoop 配置文件路徑,使用 vi 編輯,若 vi 的插入模式(insert mode)中,上下左右變成了 abcd,那么可以使用以下命令即可:cp /etc/vim/vimrc ~/.vimrc
修復。
添加以下內容。
<property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property>
啟動 hadoop
同 linux。
構建依賴
使用 intellij idea 新建一個 gradle 項目,在 build.gradle 中加入以下依賴(對應容器 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集群環境”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。