国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Web服務器 > 正文

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

2024-09-01 13:51:12
字體:
供稿:網(wǎng)友

Linux

Info:

  • Ubuntu 16.10 x64

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

連接服務器

使用 ssh 命令連接遠程服務器。

ssh root@[Your IP Address]

docker搭建hadoop集群,docker部署hadoop集群,docker,hadoop集群

更新軟件列表

apt-get update

docker搭建hadoop集群,docker部署hadoop集群,docker,hadoop集群

更新完成。

docker搭建hadoop集群,docker部署hadoop集群,docker,hadoop集群

安裝 Docker

sudo apt-get install docker.io

docker搭建hadoop集群,docker部署hadoop集群,docker,hadoop集群

當遇到輸入是否繼續(xù)時,輸入「Y/y」繼續(xù)。

docker搭建hadoop集群,docker部署hadoop集群,docker,hadoop集群

安裝完成

docker搭建hadoop集群,docker部署hadoop集群,docker,hadoop集群

輸入「docker」測試是否安裝成功。

docker搭建hadoop集群,docker部署hadoop集群,docker,hadoop集群

拉取鏡像

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

docker搭建hadoop集群,docker部署hadoop集群,docker,hadoop集群

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

sudo docker pull kiwenlau/hadoop:1.0

拉取鏡像完成。

docker搭建hadoop集群,docker部署hadoop集群,docker,hadoop集群

克隆倉庫

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

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

克隆倉庫完成

docker搭建hadoop集群,docker部署hadoop集群,docker,hadoop集群

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

sudo docker network create --driver=bridge hadoop

docker搭建hadoop集群,docker部署hadoop集群,docker,hadoop集群

運行容器

cd hadoop-cluster-docker./start-container.sh

默認是 1 個主節(jié)點,2 個從節(jié)點,當然也可以根據(jù)性能調(diào)整為 N 節(jié)點,詳見文末參考鏈接。

docker搭建hadoop集群,docker部署hadoop集群,docker,hadoop集群

啟動 Hadoop

./start-hadoop.sh

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

docker搭建hadoop集群,docker部署hadoop集群,docker,hadoop集群

測試 Word Count

./run-wordcount.sh

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

網(wǎng)頁管理

我們可以通過網(wǎng)頁遠程管理 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搭建hadoop集群,docker部署hadoop集群,docker,hadoop集群

Docker CE

docker搭建hadoop集群,docker部署hadoop集群,docker,hadoop集群

macOS or Windows

運行 Docker

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

docker搭建hadoop集群,docker部署hadoop集群,docker,hadoop集群

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

docker搭建hadoop集群,docker部署hadoop集群,docker,hadoop集群

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

同 Linux。

測試 Word Count

./run-wordcount.sh

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

docker搭建hadoop集群,docker部署hadoop集群,docker,hadoop集群

Windows

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

Intellij IDEA

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

Docker 開啟 9000 端口映射

由于我們使用的是 kiwenlau 的鏡像和開源腳本,雖然加快了配置過程,但是也屏蔽了很多細節(jié)。比如在其腳本中只默認開啟了 50070 和 8088 的端口映射,我們可以通過 docker ps(注意是在本機,而不是在容器運行該命令)列出所有容器,查看容器映射的端口。

cd hadoop-cluster-dockervim start-container.sh

切換到腳本文件夾,使用 Vim 編輯 start-container.sh。在圖中光標處添加以下內(nèi)容,保存并退出。

-p 9000:9000 /

docker搭建hadoop集群,docker部署hadoop集群,docker,hadoop集群

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

docker搭建hadoop集群,docker部署hadoop集群,docker,hadoop集群

開啟 Web HDFS 管理*

該步非必須。為了方便在網(wǎng)頁端管理,因此開啟 Web 端,默認關(guān)閉。

which hadoopcd /usr/local/hadoop/etc/hadoop/lsvi core-site.xml

找到 Hadoop 配置文件路徑,使用 Vi 編輯,若 Vi 的插入模式(Insert Mode)中,上下左右變成了 ABCD,那么可以使用以下命令即可:cp /etc/vim/vimrc ~/.vimrc 修復。

docker搭建hadoop集群,docker部署hadoop集群,docker,hadoop集群

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

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

docker搭建hadoop集群,docker部署hadoop集群,docker,hadoop集群

啟動 Hadoop

同 Linux。

構(gòu)建依賴

使用 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);  }}

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

總結(jié)

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

由于個人對 Hadoop 和 Docker 的了解甚少,如有錯誤,希望指出,我會學習、改正。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 新绛县| 商河县| 阿尔山市| 万荣县| 观塘区| 扬中市| 铜山县| 电白县| 堆龙德庆县| 贵州省| 沅陵县| 洪雅县| 谢通门县| 灵武市| 静安区| 五莲县| 汉阴县| 凤冈县| 龙南县| 西宁市| 郧西县| 鄂尔多斯市| 平湖市| 梁平县| 石家庄市| 定边县| 阿克陶县| 虹口区| 和林格尔县| 重庆市| 新泰市| 阿城市| 淮阳县| 金寨县| 宜州市| 衡东县| 海原县| 米泉市| 响水县| 泾川县| 普兰店市|