使用Docker搭建Hadoop分布式集群

Hadoop分布式集群介紹

本次Hadoop搭建使用GitHub - kiwenlau/hadoop-cluster-docker: Run Hadoop Custer within Docker Containers進(jìn)行枝秤。

首先需要明確Hadoop集群的啟動(dòng)順序如下:

namenode -> datanode -> resourcemanager -> nodemanager -> historyserver

可使用瀏覽器通過如下地址監(jiān)視hadoop集群的狀況:

  • Namenode: http://<dockerhadoop_IP_address>:9870/dfshealth.html#tab-overview
  • History server: http://<dockerhadoop_IP_address>:8188/applicationhistory
  • Datanode: http://<dockerhadoop_IP_address>:9864/
  • Nodemanager: http://<dockerhadoop_IP_address>:8042/node
  • Resource manager: http://<dockerhadoop_IP_address>:8088/

準(zhǔn)備docker-compose相關(guān)文件

準(zhǔn)備docker-compose.yml如下所示:

version: "3"

services:
  namenode:
    image: bde2020/hadoop-namenode:2.0.0-hadoop3.1.3-java8
    container_name: namenode
    ports:
      - 9870:9870
    volumes:
      - hadoop_namenode:/hadoop/dfs/name
    environment:
      - CLUSTER_NAME=test
    env_file:
      - ./hadoop.env

  datanode:
    image: bde2020/hadoop-datanode:2.0.0-hadoop3.1.3-java8
    container_name: datanode
    volumes:
      - hadoop_datanode:/hadoop/dfs/data
    environment:
      SERVICE_PRECONDITION: "namenode:9870"
    env_file:
      - ./hadoop.env
  
  resourcemanager:
    image: hadoop-resourcemanager:2.0.0-hadoop3.1.3-java8
    container_name: resourcemanager
    environment:
      SERVICE_PRECONDITION: "namenode:9870 datanode:9864"
    env_file:
      - ./hadoop.env
    ports:
      - 8088:8088

  nodemanager1:
    image: bde2020/hadoop-nodemanager:2.0.0-hadoop3.1.3-java8
    container_name: nodemanager
    environment:
      SERVICE_PRECONDITION: "namenode:9870 datanode:9864 resourcemanager:8088"
    env_file:
      - ./hadoop.env
  
  historyserver:
    image: bde2020/hadoop-historyserver:2.0.0-hadoop3.1.3-java8
    container_name: historyserver
    environment:
      SERVICE_PRECONDITION: "namenode:9870 datanode:9864 resourcemanager:8088"
    volumes:
      - hadoop_historyserver:/hadoop/yarn/timeline
    env_file:
      - ./hadoop.env
  
volumes:
  hadoop_namenode:
  hadoop_datanode:
  hadoop_historyserver:

hadoop.env文件如下:

CORE_CONF_fs_defaultFS=hdfs://namenode:9000
CORE_CONF_hadoop_http_staticuser_user=root
CORE_CONF_hadoop_proxyuser_hue_hosts=*
CORE_CONF_hadoop_proxyuser_hue_groups=*
CORE_CONF_io_compression_codecs=org.apache.hadoop.io.compress.SnappyCodec

HDFS_CONF_dfs_webhdfs_enabled=true
HDFS_CONF_dfs_permissions_enabled=false
HDFS_CONF_dfs_namenode_datanode_registration_ip___hostname___check=false

YARN_CONF_yarn_log___aggregation___enable=true
YARN_CONF_yarn_log_server_url=http://historyserver:8188/applicationhistory/logs/
YARN_CONF_yarn_resourcemanager_recovery_enabled=true
YARN_CONF_yarn_resourcemanager_store_class=org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSystemRMStateStore
YARN_CONF_yarn_resourcemanager_scheduler_class=org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler
YARN_CONF_yarn_scheduler_capacity_root_default_maximum___allocation___mb=8192
YARN_CONF_yarn_scheduler_capacity_root_default_maximum___allocation___vcores=4
YARN_CONF_yarn_resourcemanager_fs_state___store_uri=/rmstate
YARN_CONF_yarn_resourcemanager_system___metrics___publisher_enabled=true
YARN_CONF_yarn_resourcemanager_hostname=resourcemanager
YARN_CONF_yarn_resourcemanager_address=resourcemanager:8032
YARN_CONF_yarn_resourcemanager_scheduler_address=resourcemanager:8030
YARN_CONF_yarn_resourcemanager_resource__tracker_address=resourcemanager:8031
YARN_CONF_yarn_timeline___service_enabled=true
YARN_CONF_yarn_timeline___service_generic___application___history_enabled=true
YARN_CONF_yarn_timeline___service_hostname=historyserver
YARN_CONF_mapreduce_map_output_compress=true
YARN_CONF_mapred_map_output_compress_codec=org.apache.hadoop.io.compress.SnappyCodec
YARN_CONF_yarn_nodemanager_resource_memory___mb=16384
YARN_CONF_yarn_nodemanager_resource_cpu___vcores=8
YARN_CONF_yarn_nodemanager_disk___health___checker_max___disk___utilization___per___disk___percentage=98.5
YARN_CONF_yarn_nodemanager_remote___app___log___dir=/app-logs
YARN_CONF_yarn_nodemanager_aux___services=mapreduce_shuffle

MAPRED_CONF_mapreduce_framework_name=yarn
MAPRED_CONF_mapred_child_java_opts=-Xmx4096m
MAPRED_CONF_mapreduce_map_memory_mb=4096
MAPRED_CONF_mapreduce_reduce_memory_mb=8192
MAPRED_CONF_mapreduce_map_java_opts=-Xmx3072m
MAPRED_CONF_mapreduce_reduce_java_opts=-Xmx6144m
MAPRED_CONF_yarn_app_mapreduce_am_env=HADOOP_MAPRED_HOME=/opt/hadoop-3.1.3/
MAPRED_CONF_mapreduce_map_env=HADOOP_MAPRED_HOME=/opt/hadoop-3.1.3/
MAPRED_CONF_mapreduce_reduce_env=HADOOP_MAPRED_HOME=/opt/hadoop-3.1.3/

構(gòu)建resourcemanager鏡像

由于namenode處于安全模式,resourcemanager需要延遲30秒啟動(dòng)怒详。

修改run.sh如下:

#!/bin/bash

sleep 30
$HADOOP_PREFIX/bin/yarn --config $HADOOP_CONF_DIR resourcemanager

Dockerfile

FROM bde2020/hadoop-base

MAINTAINER Ivan Ermilov <ivan.s.ermilov@gmail.com>

HEALTHCHECK CMD curl -f http://localhost:8088/ || exit 1

ADD run.sh /run.sh
RUN chmod a+x /run.sh

EXPOSE 8088

CMD ["/run.sh"]

運(yùn)行如下命令構(gòu)建resourcemanager鏡像文件:

docker build -t hadoop-resourcemanager:2.0.0-hadoop3.1.3-java8 .

啟動(dòng)Hadoop集群

運(yùn)行如下命令啟動(dòng)Hadoop集群

docker-compose up -d

可通過瀏覽器正常訪問相應(yīng)的監(jiān)視地址。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末毫目,一起剝皮案震驚了整個(gè)濱河市奸腺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌诗祸,老刑警劉巖跑芳,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異直颅,居然都是意外死亡博个,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門功偿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盆佣,“玉大人,你說我怎么就攤上這事械荷」菜#” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵吨瞎,是天一觀的道長(zhǎng)痹兜。 經(jīng)常有香客問我,道長(zhǎng)颤诀,這世上最難降的妖魔是什么字旭? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮着绊,結(jié)果婚禮上谐算,老公的妹妹穿的比我還像新娘。我一直安慰自己归露,他們只是感情好洲脂,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般恐锦。 火紅的嫁衣襯著肌膚如雪往果。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天一铅,我揣著相機(jī)與錄音陕贮,去河邊找鬼。 笑死潘飘,一個(gè)胖子當(dāng)著我的面吹牛肮之,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播卜录,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼戈擒,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了艰毒?” 一聲冷哼從身側(cè)響起筐高,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎丑瞧,沒想到半個(gè)月后柑土,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绊汹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年稽屏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片灸促。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡诫欠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出浴栽,到底是詐尸還是另有隱情,我是刑警寧澤轿偎,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布典鸡,位于F島的核電站,受9級(jí)特大地震影響坏晦,放射性物質(zhì)發(fā)生泄漏萝玷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一昆婿、第九天 我趴在偏房一處隱蔽的房頂上張望球碉。 院中可真熱鬧,春花似錦仓蛆、人聲如沸睁冬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽豆拨。三九已至直奋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間施禾,已是汗流浹背脚线。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留弥搞,地道東北人邮绿。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像攀例,于是被迫代替她去往敵國和親斯碌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容

  • 本文檔作為簡(jiǎn)單筆記肛度。詳細(xì)操作參見: 一傻唾、環(huán)境準(zhǔn)備 1:首先要有一個(gè)Centos7操作系統(tǒng),可以在虛擬機(jī)中安裝承耿。 2...
    liuzg0734閱讀 427評(píng)論 0 0
  • 一冠骄、系統(tǒng)參數(shù)配置優(yōu)化 1、系統(tǒng)內(nèi)核參數(shù)優(yōu)化配置 修改文件/etc/sysctl.conf加袋,添加如下配置凛辣,然后執(zhí)行s...
    張偉科閱讀 3,726評(píng)論 0 14
  • http://blog.csdn.net/xu470438000/article/details/50512442
    Albert陳凱閱讀 100評(píng)論 0 0
  • Hadoop HA集群搭建文檔.............................................
    鐘敏_1788閱讀 1,454評(píng)論 0 0
  • 從小想做一個(gè)英雄,所以我總想做點(diǎn)什么职烧,我告訴媽媽我想畫畫扁誓,我學(xué)了畫畫,想學(xué)跳舞蚀之,我學(xué)了跳舞蝗敢,但都好景不長(zhǎng),每每...
    Starryirui閱讀 105評(píng)論 0 0