溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用Docker快速搭建Hadoop集群環(huán)境

發(fā)布時(shí)間:2022-05-26 15:00:53 來(lái)源:億速云 閱讀:1771 作者:iii 欄目:大數(shù)據(jù)

本文小編為大家詳細(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]

如何使用Docker快速搭建Hadoop集群環(huán)境

更新軟件列表

apt-get update

如何使用Docker快速搭建Hadoop集群環(huán)境

更新完成。

如何使用Docker快速搭建Hadoop集群環(huán)境

安裝 docker

sudo apt-get install docker.io

如何使用Docker快速搭建Hadoop集群環(huán)境

當(dāng)遇到輸入是否繼續(xù)時(shí),輸入「y/y」繼續(xù)。

如何使用Docker快速搭建Hadoop集群環(huán)境

安裝完成

如何使用Docker快速搭建Hadoop集群環(huán)境

輸入「docker」測(cè)試是否安裝成功。

如何使用Docker快速搭建Hadoop集群環(huán)境

拉取鏡像

鏡像,是 docker 的核心,可以通過(guò)從遠(yuǎn)程拉取鏡像即可配置好我們所需要的環(huán)境,我們這次需要的是 hadoop 集群的鏡像。

如何使用Docker快速搭建Hadoop集群環(huán)境

在本文中,我們將使用 kiwenlau 的 hadoop 集群鏡像以及其配置。由于我的服務(wù)器本身即在國(guó)外,因此拉取鏡像的速度較快,國(guó)內(nèi)由于眾所周知的原因,可以替換為相應(yīng)的國(guó)內(nèi)源,以加快拉取速度。

sudo docker pull kiwenlau/hadoop:1.0

拉取鏡像完成。

如何使用Docker快速搭建Hadoop集群環(huán)境

克隆倉(cāng)庫(kù)

克隆倉(cāng)庫(kù)到當(dāng)前文件夾(可以自行創(chuàng)建并切換到相應(yīng)文件夾)。

git clone https://github.com/kiwenlau/hadoop-cluster-docker

克隆倉(cāng)庫(kù)完成

如何使用Docker快速搭建Hadoop集群環(huán)境

橋接網(wǎng)絡(luò)

sudo docker network create --driver=bridge hadoop

如何使用Docker快速搭建Hadoop集群環(huán)境

運(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)文末參考鏈接。

如何使用Docker快速搭建Hadoop集群環(huá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ù)器。

如何使用Docker快速搭建Hadoop集群環(huán)境

測(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:

  1. name node: [your ip address]:50070/

  2. resource manager: [your ip address]:8088/

macos

info:

  1. macos 10.12.4 beta (16e191a)

下載 & 安裝

打開(kāi) docker 官方網(wǎng)站:,選擇社區(qū)版,并下載、安裝。windows 系統(tǒng)用戶可以選擇 windows 版本。

如何使用Docker快速搭建Hadoop集群環(huán)境

docker ce

如何使用Docker快速搭建Hadoop集群環(huán)境

macos or windows

運(yùn)行 docker

打開(kāi) docker。為了簡(jiǎn)單,我沒(méi)有改動(dòng)配置,如需更改,可以在 preferences 中修改。

如何使用Docker快速搭建Hadoop集群環(huán)境

我們可以在終端(terminal)輸入「docker」,測(cè)試是否安裝成功。

如何使用Docker快速搭建Hadoop集群環(huán)境

拉取鏡像 & 克隆倉(cāng)庫(kù) & 橋接網(wǎng)絡(luò) & 運(yùn)行容器 & 啟動(dòng) hadoop

同 linux。

測(cè)試 word count

./run-wordcount.sh

同 linux,但這次我們可以運(yùn)算出結(jié)果了。

如何使用Docker快速搭建Hadoop集群環(huán)境

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 \

如何使用Docker快速搭建Hadoop集群環(huán)境

重啟容器,并查看容器狀態(tài),如圖即為映射成功。

如何使用Docker快速搭建Hadoop集群環(huán)境

開(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ù)。

如何使用Docker快速搭建Hadoop集群環(huán)境

添加以下內(nèi)容。

<property>
  <name>dfs.webhdfs.enabled</name>
  <value>true</value>
</property>

如何使用Docker快速搭建Hadoop集群環(huán)境

啟動(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è)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI