栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

使用docker搭建hadoop环境

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用docker搭建hadoop环境

特别提醒:
  1. hadoop都创建完成后,进行启动,如果master的namenode启动不来,
    • 删除所有节点的data目录
    rm -rf /hadoop/tmp/dfs/data
    
    • 格式化下namenode
    /usr/local/hadoop-2.7.0/bin/hadoop namenode -format
    
  2. 配置SSH要用root用户,即sudo -i

1.拉取镜像、创建自定义网络
docker pull sequenceiq/hadoop-docker
docker network create --subnet=172.18.0.0/16 mynetwork

2.安装运行
  1. 创建master节点
docker run --name hadoop1 -d -h master 
--network mynetwork --ip 172.18.0.101 -p 50070:50070 -p 9000:9000 
--add-host=master:172.18.0.101 --add-host=slave1:172.18.0.102 
--add-host=slave2:172.18.0.103 sequenceiq/hadoop-docker

参数说明:
-h 为容器设置主机名
–name 设置容器的名称
-d 在后台运行
  1. 以此方法创建slave1和slave2节点
docker run --name hadoop2 -d -h slave1 
--network mynetwork --ip 172.18.0.102 --add-host=master:172.18.0.101 
--add-host=slave1:172.18.0.102 --add-host=slave2:172.18.0.103 
sequenceiq/hadoop-docker
docker run --name hadoop3 -d -h slave2 
--network mynetwork --ip 172.18.0.103 --add-host=master:172.18.0.101 
--add-host=slave1:172.18.0.102 --add-host=slave2:172.18.0.103 
sequenceiq/hadoop-docker

3.配置
  • (1).进入到容器hadoop1
    docker exec -it -u root hadoop1 bash
    
  • (2).配置ssh生成秘钥
    //启动ssh
    /etc/init.d/sshd start
    //生成秘钥
    ssh-keygen -t rsa
    //导入公钥到authorized_keys文件
    cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys
    cat /root/.ssh/authorized_keys
    
  • (3).所有的节点均重复(1)、(2)步骤。然后分别进入每个节点,将其他节点的公钥也都复制到authorized_keys,也就是说每个>authorized_keys 文件中存储的公钥都是3个而且是一样的
    //将容器中的文件复制到centos本地
    docker cp hadoop1:/root/.ssh/authorized_keys /home/docker/authorized_keys_master
    docker cp hadoop2:/root/.ssh/authorized_keys /home/docker/authorized_keys_slave1                                
    docker cp hadoop3:/root/.ssh/authorized_keys /home/docker/authorized_keys_slave2
    cat /home/docker/authorized_keys_master /home/docker/authorized_keys_slave1 /home/docker/authorized_keys_slave2 > /home/docker/authorized_keys
    
  • (5).将本地的文件复制到容器
    docker cp /home/docker/authorized_keys hadoop1:/root/.ssh/authorized_keys
    
    docker cp /home/docker/authorized_keys hadoop2:/root/.ssh/authorized_keys
    
    docker cp /home/docker/authorized_keys hadoop3:/root/.ssh/authorized_keys  
    
  • (6).进入到hadoop1容器中并配置core-site.xml(如果存在该配置项,则忽略)
    //编辑文件
    vi /usr/local/hadoop-2.7.0/etc/hadoop/core-site.xml
    //加入配置
    
      hadoop.tmp.dir
      /hadoop/tmp
    
  • (7).进入到hadoop1容器中并配置hdfs-site.xml注意slave数量要大于等于备份的数量,否者会报错(如果存在该配置项,则忽略)
    //编辑文件
    vi /usr/local/hadoop-2.7.0/etc/hadoop/hdfs-site.xml
    
    //加入配置
    
        dfs.namenode.secondary.http-address
        master:50090
    
    
  • (9).进入到hadoop1容器中并配置slaves
    //编辑文件
    vi /usr/local/hadoop-2.7.0/etc/hadoop/slaves
    
    //加入配置
    slave1
    slave2
    
  • (10).进入到hadoop1容器中并配置masters
    //编辑文件
    vi /usr/local/hadoop-2.7.0/etc/hadoop/masters
    
    //加入配置
    master
    
  • (11).进入到hadoop1容器中并配置 mapred-site.xml,指定MapReduce运行在yarn上,在hadoop容器中已经帮我们配置好了
//配置yarn-site.xml
vi /usr/local/hadoop-2.7.0/etc/hadoop/yarn-site.xml
//加入配置
    
    	yarn.resourcemanager.address 
        master:8032
    
        
    
    	yarn.nodemanager.aux-services.mapreduce.shuffle.class
    	org.apache.hadoop.mapred.ShuffleHandler
    
        
    
    	yarn.resourcemanager.scheduler.address
    	master:8030 
    
        
    
    	yarn.resourcemanager.resource-tracker.address
    	master:8031
    
        
        
    
    	yarn.resourcemanager.admin.address
    	master:8033
    
        
    
    	yarn.resourcemanager.webapp.aaaress
    	master:8089
    
  • (12).将yarn-site.xml这些参数发送到其它节点slave1、slave2
    scp /usr/local/hadoop-2.7.0/etc/hadoop/* 172.18.0.102:/usr/local/hadoop-2.7.0/etc/hadoop/
    scp /usr/local/hadoop-2.7.0/etc/hadoop/* 172.18.0.103:/usr/local/hadoop-2.7.0/etc/hadoop/
    

4.运行hadoop
  • 在master服务器启动hadoop,从节点会自动启动,
  • 在master上格式化namenode
    /usr/local/hadoop-2.7.0/bin/hadoop namenode -format
    
  • 在master上启动集群,先停止,然后再启动
    /usr/local/hadoop-2.7.0/sbin/stop-all.sh
    
    /usr/local/hadoop-2.7.0/sbin/start-all.sh
    
  • jps 查看进程,查看到说明已启动
    jps
    

5.测试
/usr/local/hadoop-2.7.0/bin/hadoop  fs -mkdir /test
/usr/local/hadoop-2.7.0/bin/hadoop fs -ls /

访问主机IP:50070可以通过界面查看namenode、datanode、存储文件等信息

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/825671.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号