zoukankan      html  css  js  c++  java
  • 基于Docker搭建大数据集群(三)Hadoop部署

    主要内容

    • Hadoop安装

    前提

    • zookeeper正常使用
    • JAVA_HOME环境变量

    安装包

    微云下载 | tar包目录下

    • Hadoop 2.7.7

    角色划分

    角色分配 NN DN SNN
    cluster-master
    cluster-slave1
    cluster-slave1
    cluster-slave1

    一、环境准备

    上传到docker镜像

    docker cp hadoop-2.7.7.tar.gz cluster-master:/root/tar
    

    解压

    tar xivf hadoop-2.7.7.tar.gz -C /opt/hadoop
    

    二、配置文件

    core-site.xml

    <configuration>
            <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://jinbill</value>
            </property>
            <property>
                    <name>ha.zookeeper.quorum</name>
                    <value>cluster-master:2181</value>
            </property>
            <property>
                    <name>hadoop.tmp.dir</name>
                    <value>/opt/hadoop</value>
            </property>
    </configuration>
    

    yarn-site.xml

    <configuration>
            <property>
                     <name>yarn.nodemanager.aux-services</name>
                     <value>mapreduce_shuffle</value>
            </property>
            <property>
                     <name>yarn.resourcemanager.ha.enabled</name>
                     <value>true</value>
            </property>
            <property>
                     <name>yarn.resourcemanager.cluster-id</name>
                     <value>mr_jinbill</value>
            </property>
            <property>
                     <name>yarn.resourcemanager.ha.rm-ids</name>
                     <value>rm1,rm2</value>
            </property>
            <property>
                     <name>yarn.resourcemanager.hostname.rm1</name>
                     <value>cluster-slave2</value>
            </property>
            <property>
                     <name>yarn.resourcemanager.hostname.rm2</name>
                     <value>cluster-slave3</value>
            </property>
            <property>
                     <name>yarn.resourcemanager.zk-address</name>
                     <value>192.168.11.46:12181</value>
            </property>
            <property>
                    <name>yarn.nodemanager.pmem-check-enabled</name>
                    <value>false</value>
            </property>
    
            <property>
                    <name>yarn.nodemanager.vmem-check-enabled</name>
                    <value>false</value>
            </property>
    </configuration>
    

    hadoop-env.sh

    export JAVA_HOME=/opt/jdk/jdk1.8.0_221
    

    hdfs-site.xml

    <configuration>
            <property>
                    <name>dfs.nameservices</name>
                    <value>jinbill</value>
            </property>
            <property>
                    <name>dfs.ha.namenodes.jinbill</name>
                    <value>nn1,nn2</value>
            </property>
            <property>
                    <name>dfs.namenode.rpc-address.jinbill.nn1</name>
                    <value>cluster-master:8020</value>
            </property>
            <property>
                    <name>dfs.namenode.rpc-address.jinbill.nn2</name>
                    <value>cluster-slave1:8020</value>
            </property>
            <property>
                    <name>dfs.namenode.http-address.shsxt.nn1</name>
                    <value>cluster-master:50070</value>
            </property>
            <property>
                    <name>dfs.namenode.http-address.shsxt.nn2</name>
                    <value>cluster-slave1:50070</value>
            </property>
            <property>
                    <name>dfs.namenode.shared.edits.dir</name>
                    <value>qjournal://cluster-slave1:8485;cluster-slave2:8485;cluster-slave3:8485/jinbill</value>
            </property>
            <property>
                    <name>dfs.client.failover.proxy.provider.jinbill</name>
                    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
            </value>
            </property>
            <property>
                    <name>dfs.ha.fencing.methods</name>
                    <value>sshfence</value>
            </property>
            <property>
                    <name>dfs.ha.fencing.ssh.private-key-files</name>
                    <value>/root/.ssh/id_rsa</value>
            </property>
            <property>
                    <name>dfs.journalnode.edits.dir</name>
                    <value>/opt/hadoop/data</value>
            </property>
            <property>          
                    <name>dfs.ha.automatic-failover.enabled</name>
                    <value>true</value>
            </property>
    </configuration>
    

    新建slaves文件,若有则直接编辑

    cluster-slave1
    cluster-slave2
    cluster-slave3
    

    三、初始化

    启动所有节点JournalNode

    hadoop-daemon.sh start journalnode
    

    在NN上初始化元数据

    hdfs namenode -forma
    

    将格式化后的元数据拷贝到SNN上

    scp /opt/zookeeper/dfs cluster-slave1:/opt/hadoop 
    

    启动master节点的NN

    hadoop-daemon.sh start namenode
    

    在SNN上执行

    hdfs namenode -bootstrapStandby
    

    启动SNN

    hadoop-daemon.sh start namenode
    

    在NN或SNN上初始化ZKFC

    hdfs zkfc -formatZK
    

    停止上面节点

    stop-dfs.sh
    

    四、 启动

    start-dfs.sh
    
    start-yarn.sh
    

    五、测试是否成功

    因为网段不同,所以得加路由才能访问

    1. 打开cmd,需要管理员权限
    2. route add 172.15.0.0 mask 255.255.0.0 192.168.11.38 -p

    访问UI界面

    Hadoop 集群 访问地址
    Hadoop 作业 地址

  • 相关阅读:
    码农雷林鹏:php环境搭建
    HashMap底层实现原理
    Java基础面试题
    ==和equals的区别,为什么重写equals要重写hashCode
    Java8 函数式接口,方法引用,stream
    ArrayList、Vector、LinkedList的区别
    第二章——信息的表示和处理
    第一章——计算机系统漫游
    通过zuul修改请求参数——对请求参数进行解密
    Java 扫描实现 Ioc 动态注入,过滤器根据访问url调用自定义注解标记的类及其方法
  • 原文地址:https://www.cnblogs.com/njpkhuan/p/11611956.html
Copyright © 2011-2022 走看看