最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解從 0 開始使用 Docker 快速搭建 Hadoop 集群環(huán)境

 更新時(shí)間:2017年03月28日 10:11:09   作者:萌面大道  
這篇文章主要介紹了詳解從 0 開始使用 Docker 快速搭建 Hadoop 集群環(huán)境,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。

Linux

Info:

  • Ubuntu 16.10 x64

Docker 本身就是基于 Linux 的,所以首先以我的一臺(tái)服務(wù)器做實(shí)驗(yàn)。雖然最后跑 wordcount 已經(jīng)由于內(nèi)存不足而崩掉,但是之前的過程還是可以參考的。

連接服務(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」測試是否安裝成功。

拉取鏡像

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

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

sudo docker pull kiwenlau/hadoop:1.0

拉取鏡像完成。


克隆倉庫

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

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

克隆倉庫完成

橋接網(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),詳見文末參考鏈接。

啟動(dòng) Hadoop

./start-hadoop.sh

在上一步,我們已經(jīng)運(yùn)行容器,即可直接運(yùn)行 Hadoop。啟動(dòng)時(shí)長與機(jī)器性能有關(guān),也是難為了我這一臺(tái) 512 MB 內(nèi)存的服務(wù)器。

測試 Word Count

./run-wordcount.sh

Word Count 是一個(gè)測試 Hadoop 的 Shell 腳本,即計(jì)算文本中的單詞個(gè)數(shù)。不過由于我的服務(wù)器內(nèi)存不夠分配無法完成,所以后續(xù)以本機(jī)進(jìn)行測試。

網(wǎng)頁管理

我們可以通過網(wǎng)頁遠(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)

下載 & 安裝

打開 Docker 官方網(wǎng)站:https://www.docker.com,選擇社區(qū)版,并下載、安裝。Windows 系統(tǒng)用戶可以選擇 Windows 版本。

Docker CE

macOS or Windows

運(yùn)行 Docker

打開 Docker。為了簡單,我沒有改動(dòng)配置,如需更改,可以在 Preferences 中修改。


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

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

同 Linux。

測試 Word Count

./run-wordcount.sh

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

Windows

其實(shí)最開始就沒有打算放出 Windows 版,倒不是因?yàn)橛X得 Windows 不好,而是目前手頭沒有 Windows 的電腦,借用同學(xué)的電腦也不是很方便。如果需要安裝 Docker,需要 CPU 支持虛擬化,且安裝了 64 位 Windows 10 Pro/企業(yè)版(需要開啟 Hyper-V)。其他版本的 Windows 可以安裝 Docker Toolbox。

Intellij IDEA

我們的 Hadoop 集群已經(jīng)在容器里安裝完成,而且已經(jīng)可以運(yùn)行。相比自己一個(gè)個(gè)建立虛擬機(jī),這樣的確十分方便、快捷。為了便于開發(fā)調(diào)試,接下來就需要在 Intellij IDEA 下配置開發(fā)環(huán)境,包管理工具選擇 Gradle。Maven 配合 Eclipse 的配置網(wǎng)上已經(jīng)有很多了,需要的同學(xué)可以自行搜索。

Docker 開啟 9000 端口映射

由于我們使用的是 kiwenlau 的鏡像和開源腳本,雖然加快了配置過程,但是也屏蔽了很多細(xì)節(jié)。比如在其腳本中只默認(rèn)開啟了 50070 和 8088 的端口映射,我們可以通過 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),如圖即為映射成功。

開啟 Web HDFS 管理*

該步非必須。為了方便在網(wǎng)頁端管理,因此開啟 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)建依賴

使用 Intellij IDEA 新建一個(gè) Gradle 項(xiàng)目,在 Build.gradle 中加入以下依賴(對(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);
  }
}

之后便可以通過 IDEA 直接寫代碼來測試,這里簡單寫了幾個(gè)方法。

總結(jié)

在寫這篇文章之前,其實(shí)我對(duì) Docker 的概念很不了解。但是通過 Learn by do it. 大致知道了其中的概念和原理。我們完全可以構(gòu)建自己的容器 Dockerfile,來部署生產(chǎn)和開發(fā)環(huán)境,其強(qiáng)大的可移植性大大縮短配置的過程。

由于個(gè)人對(duì) Hadoop 和 Docker 的了解甚少,如有錯(cuò)誤,希望指出,我會(huì)學(xué)習(xí)、改正。

相關(guān)文章

  • 詳細(xì)記一次Docker部署服務(wù)的爬坑歷程

    詳細(xì)記一次Docker部署服務(wù)的爬坑歷程

    這篇文章主要介紹了詳細(xì)記一次Docker部署服務(wù)的爬坑歷程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-03-03
  • docker安裝elastic?search和kibana的實(shí)現(xiàn)

    docker安裝elastic?search和kibana的實(shí)現(xiàn)

    本文主要介紹了docker安裝elastic?search和kibana的實(shí)現(xiàn),,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 一文教會(huì)你用Docker打包Python運(yùn)行環(huán)境

    一文教會(huì)你用Docker打包Python運(yùn)行環(huán)境

    Docker提供了容器級(jí)別的資源隔離,由于Python的外部依賴管理中存在的問題,我們通常會(huì)使用virtualenv來對(duì)不同的項(xiàng)目創(chuàng)建其唯一的依賴環(huán)境,下面這篇文章主要給大家介紹了如何通過一篇文章教會(huì)你用Docker打包Python運(yùn)行環(huán)境的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • docker?build運(yùn)行報(bào)錯(cuò)source:?not?found解決分析

    docker?build運(yùn)行報(bào)錯(cuò)source:?not?found解決分析

    這篇文章主要為大家介紹了docker?build運(yùn)行報(bào)錯(cuò)source:?not?found解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • docker容器無法stop的解決辦法

    docker容器無法stop的解決辦法

    在本篇文章里小編給大家整理了關(guān)于docker容器無法stop的解決辦法,有需要的朋友們可以參考下。
    2020-03-03
  • docker搭建lnmp環(huán)境的實(shí)現(xiàn)步驟

    docker搭建lnmp環(huán)境的實(shí)現(xiàn)步驟

    DNMP(Docker + Nginx + MySQL + PHP7/5 + Redis)是一款全功能的LNMP一鍵安裝程序,本文就來介紹一下docker搭建lnmp環(huán)境的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • Docker Swarm從部署到基本操作

    Docker Swarm從部署到基本操作

    這篇文章主要介紹了Docker Swarm從部署到基本操作,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • docker中的run/cmd/entrypoint的區(qū)別詳解

    docker中的run/cmd/entrypoint的區(qū)別詳解

    Dockerfile中run、cmd和entrypoint都能夠用于執(zhí)行命令,針對(duì)每個(gè)命令給他介紹詳細(xì)用途,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-08-08
  • docker 查詢或獲取私有倉庫(registry)中的鏡像的方法

    docker 查詢或獲取私有倉庫(registry)中的鏡像的方法

    這篇文章主要介紹了docker 查詢或獲取私有倉庫(registry)中的鏡像的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-05-05
  • docker批量啟動(dòng)關(guān)閉所有容器的操作

    docker批量啟動(dòng)關(guān)閉所有容器的操作

    這篇文章主要介紹了docker批量啟動(dòng)關(guān)閉所有容器的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03

最新評(píng)論

柳林县| 沙洋县| 西峡县| 洪泽县| 阳山县| 美姑县| 通海县| 伊吾县| 五大连池市| 清徐县| 和林格尔县| 金川县| 牟定县| 那曲县| 河东区| 历史| 北川| 潢川县| 新余市| 双鸭山市| 广水市| 崇仁县| 弋阳县| 孝义市| 大埔区| 两当县| 琼海市| 南平市| 安溪县| 峨眉山市| 怀化市| 深泽县| 蒲江县| 阳信县| 张家川| 泽库县| 乐平市| 青龙| 宁明县| 秀山| 芦溪县|