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

docker環(huán)境部署Hadoop集群教程

 更新時間:2026年05月22日 09:49:42   作者:Zhu758  
文章介紹了在Docker環(huán)境下部署Hadoop集群的步驟,包括ocker-compose.yml配置文件創(chuàng)建、Docker容器啟動集群驗證集群狀態(tài)數(shù)據(jù)持久化測試NamenodeDatanatannode數(shù)據(jù)持久化測試容器故障場景驗證持久化效果

需求

在docker環(huán)境部署Hadoop集群,用于預(yù)生產(chǎn)環(huán)境測試。

操作流程

創(chuàng)建文件config

CORE-SITE.XML_fs.default.name=hdfs://namenode
CORE-SITE.XML_fs.defaultFS=hdfs://namenode
HDFS-SITE.XML_dfs.namenode.name.dir=/opt/hadoop/data/nn
HDFS-SITE.XML_dfs.datanode.data.dir=/opt/hadoop/data/dn
HDFS-SITE.XML_dfs.namenode.rpc-address=namenode:8020
HDFS-SITE.XML_dfs.replication=1
MAPRED-SITE.XML_mapreduce.framework.name=yarn
MAPRED-SITE.XML_yarn.app.mapreduce.am.env=HADOOP_MAPRED_HOME=/opt/hadoop
MAPRED-SITE.XML_mapreduce.map.env=HADOOP_MAPRED_HOME=/opt/hadoop
MAPRED-SITE.XML_mapreduce.reduce.env=HADOOP_MAPRED_HOME=/opt/hadoop
YARN-SITE.XML_yarn.resourcemanager.hostname=resourcemanager
YARN-SITE.XML_yarn.nodemanager.pmem-check-enabled=false
YARN-SITE.XML_yarn.nodemanager.delete.debug-delay-sec=600
YARN-SITE.XML_yarn.nodemanager.vmem-check-enabled=false
YARN-SITE.XML_yarn.nodemanager.aux-services=mapreduce_shuffle
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.maximum-applications=10000
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.maximum-am-resource-percent=0.1
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.resource-calculator=org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.root.queues=default
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.root.default.capacity=100
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.root.default.user-limit-factor=1
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.root.default.maximum-capacity=100
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.root.default.state=RUNNING
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.root.default.acl_submit_applications=*
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.root.default.acl_administer_queue=*
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.node-locality-delay=40
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.queue-mappings=
CAPACITY-SCHEDULER.XML_yarn.scheduler.capacity.queue-mappings-override.enable=false

創(chuàng)建文件docker-compose.yaml

volumes:
  hadoop-nn-data:
    name: hadoop-nn-data
  hadoop-dn-data:
    name: hadoop-dn-data
services:
  namenode:
    image: zhuyifeiruichuang/hadoop:3.1.1
    hostname: namenode
    container_name: hadoop-namenode
    command: ["sh", "-c", "sudo mkdir -p /opt/hadoop/data/nn && sudo chown -R hadoop:hadoop /opt/hadoop/data && if [ ! -d /opt/hadoop/data/nn/current ]; then echo 'Formatting NameNode...' && hdfs namenode -format; fi && hdfs namenode"]
    ports:
      - 9870:9870
      - 9000:9000
    env_file:
      - ./config
    environment:
      ENSURE_NAMENODE_DIR: "/opt/hadoop/data/nn"
    volumes:
      - hadoop-nn-data:/opt/hadoop/data/nn
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "curl -f http://localhost:9870 || exit 1"]
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 60s
  datanode:
    image: zhuyifeiruichuang/hadoop:3.1.1
    container_name: hadoop-datanode
    command: ["sh", "-c", "sudo mkdir -p /opt/hadoop/data/dn && sudo chown -R hadoop:hadoop /opt/hadoop/data && hdfs datanode"]
    env_file:
      - ./config
    ports:
      - 9866:9866
      - 9864:9864
    volumes:
      - hadoop-dn-data:/opt/hadoop/data/dn
    depends_on:
      - namenode
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "curl -f http://localhost:9864 || exit 1"]
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 40s
  resourcemanager:
    image: zhuyifeiruichuang/hadoop:3.1.1
    hostname: resourcemanager
    container_name: hadoop-resourcemanager
    command: ["yarn", "resourcemanager"]
    ports:
      - 8088:8088
      - 8032:8032
    env_file:
      - ./config
    depends_on:
      - namenode
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "curl -f http://127.0.0.1:8088 || exit 1"]
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 60s
  nodemanager:
    hostname: nodemanager
    image: zhuyifeiruichuang/hadoop:3.1.1
    container_name: hadoop-nodemanager
    command: ["yarn", "nodemanager"]
    env_file:
      - ./config
    ports:
      - 8042:8042
    depends_on:
      - resourcemanager
      - namenode
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "curl -f http://localhost:8042 || exit 1"]
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 40s

啟動集群

docker compose up -d

查詢集群狀態(tài)

docker compose ps -a

數(shù)據(jù)持久化測試

以下方法用于證明數(shù)據(jù)持久化生效,可確保容器故障后不丟失數(shù)據(jù)。

測試namenode

以下方法證明namenode數(shù)據(jù)持久化生效。

# 1. 進入 NameNode 容器
docker exec -it hadoop-namenode bash

# 2. 在 HDFS 中創(chuàng)建測試目錄
hdfs dfs -mkdir /test_persistence

# 3. 創(chuàng)建一個包含時間戳的測試文件,寫入 HDFS
echo "This is a test file created at $(date)" > /tmp/test_file.txt
hdfs dfs -put /tmp/test_file.txt /test_persistence/namenode_test.txt

# 4. 退出容器
exit

# 5. 使用 down/up 重建 Namenode 服務(wù)
# 注意:這里只操作 Namenode
docker compose stop namenode
docker compose rm -f namenode

# 6. 重新啟動集群(這會重建并啟動 Namenode)
docker compose up -d namenode

# 7. 進入 NameNode 容器
docker exec -it hadoop-namenode bash

# 8. 嘗試列出并查看剛才創(chuàng)建的文件
hdfs dfs -ls /test_persistence
hdfs dfs -cat /test_persistence/namenode_test.txt

# 9. 退出容器
exit

測試datanode

以下方法證明datanode數(shù)據(jù)持久化生效

模擬容器故障場景

確認(rèn)容器狀態(tài)正常

docker ps -a

在容器內(nèi)寫入測試數(shù)據(jù)

docker exec -it hadoop-namenode bash
echo "驗證DataNode數(shù)據(jù)持久化:容器重啟后數(shù)據(jù)不丟失" > persist-test.txt
hdfs dfs -put persist-test.txt /
hdfs dfs -ls /
hdfs dfs -cat /persist-test.txt
exit

刪除容器,確認(rèn)容器真實刪除

docker compose down
docker ps -a

重建容器,確認(rèn)容器正常

docker compose up -d
docker compose ps -a

驗證數(shù)據(jù)狀態(tài),

docker exec -it hadoop-namenode bash
hdfs dfs -ls /
hdfs dfs -cat /persist-test.txt
exit

證明常規(guī)啟停容器時,數(shù)據(jù)持久化生效。

模擬破壞刪除容器,重建容器并測試數(shù)據(jù),

 docker rm -f hadoop-datanode
 docker compose up -d datanode
 docker exec -it hadoop-namenode hdfs dfs -cat /persist-test.txt

證明破壞刪除容器時,數(shù)據(jù)持久化生效。

模擬數(shù)據(jù)卷故障場景

備份數(shù)據(jù)卷,確認(rèn)備份成功

cp -r hadoop_hadoop-dn-data/ /opt/

刪除容器,

docker compose down

刪除數(shù)據(jù)卷,模擬數(shù)據(jù)卷被破壞,

docker volume rm hadoop_hadoop-dn-data

重建容器,

docker compose up -d

可見容器存在故障,已找不到數(shù)據(jù),


刪除容器,刪除重建重啟時的無數(shù)據(jù)的卷,新建空數(shù)據(jù)卷。注意:必須先有數(shù)據(jù)卷,才能再把數(shù)據(jù)復(fù)制過去,否則新建數(shù)據(jù)卷會使舊數(shù)據(jù)混亂。

docker compose down
docker volume rm hadoop_hadoop-dn-data
docker volume create hadoop_hadoop-dn-data

將備份數(shù)據(jù)轉(zhuǎn)移到新數(shù)據(jù)卷,

cp -r hadoop_hadoop-dn-data/ /data/docker/volumes/

創(chuàng)建容器

docker compose up -d

驗證數(shù)據(jù)狀態(tài)

 docker exec -it hadoop-namenode-1 hdfs dfs -cat /persist-test.txt

證明數(shù)據(jù)卷被破壞時,可通過數(shù)據(jù)備份恢復(fù),實現(xiàn)數(shù)據(jù)持久化。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

凤阳县| 方山县| 华安县| 高碑店市| 铜陵市| 三亚市| 佛山市| 若羌县| 新巴尔虎右旗| 江川县| 阿拉善右旗| 洛扎县| 三河市| 乌拉特后旗| 临朐县| 九江市| 广宗县| 曲靖市| 江津市| 武清区| 毕节市| 瓦房店市| 新沂市| 禄丰县| 噶尔县| 海门市| 聂荣县| 库伦旗| 博爱县| 且末县| 台东市| 龙井市| 曲阜市| 大埔县| 南江县| 共和县| 岫岩| 馆陶县| 锡林浩特市| 疏勒县| 安西县|