HA_配置

规划

在这里插入图片描述

Ssh信任配置方式Ssh信任配置方式

Ssh-keygen -t rsa -P “12345678”
Ssh-copy-id

Copy zookeeper以及hadoop文件

创建zookeeper/datas/myid文件
启动zookeeper 查看状态
zkServer.sh status //leader follower

配置hadoop

Core-site.xml

<configuration>
           <property>
                <name>fs.defaultFS</name>
                <!--配置ns = nameservice,一个nameservice下,最多可以有两个namenode-->
                <value>hdfs://ns</value>
            </property>
            <property>
                <name>ha.zookeeper.quorum</name>
                <value>hadoop85:2181,hadoop86:2181,hadoop87:2181</value>
            </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/app/hadoop/tmp</value>
        </property>
</configuration>

Hdfs-site.xml

<configuration>
        <!--配置nameservice与hdfs://ns保持相同,可以配置多个,ns,ns2-->
        <property>
                <name>dfs.nameservices</name>
                <value>ns</value>
        </property>
        <!--配置ns1下同有几个namenode,一个nameservice下最多只能有两个namenode-->
        <property>
                <name>dfs.ha.namenodes.ns</name>
                <value>nn1,nn2</value>
        </property>
        <!--配置每一个namenode的信息之rpc-->
        <property>
                <name>dfs.namenode.rpc-address.ns.nn1</name>
                <value>hadoop81:8020</value>
        </property>
        <property>
                <name>dfs.namenode.rpc-address.ns.nn2</name>
                <value>hadoop82:8020</value>
        </property>
        <!--配置每一个namenode之http.可以省略-->
        <property>
                <name>dfs.namenode.http-address.ns.nn1</name>
                <value>hadoop81:50070</value>
        </property>
        <property>
                <name>dfs.namenode.http-address.ns.nn2</name>
                <value>hadoop82:50070</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>/app/hadoop/dfs/name,/app/hadoop/dfs2/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>/app/hadoop/dfs/datas,/app/hadoop/dfs2/datas</value>
        </property>
        <!--配置journalnode保存edits的目录,最后的ns1不一定要与nameservice的名称一样
             因为,它会在${dfs.journalnode.edits.dir}/ns目录下-->
        <property>
                <name>dfs.namenode.shared.edits.dir</name>
                <value>qjournal://hadoop85:8485;hadoop86:8485;hadoop87:8485/ns</value>
        </property>
        <!--指定journal日志保存的目录,这个目录只能是一个,不能是多个只能是一个目录-->
        <property>
                <name>dfs.journalnode.edits.dir</name>
                <value>/app/hadoop/journal</value>
        </property>
        <!--有了上面的目录,还需要为每一个namenode配置日志目录吗,以下两个目录下保存的数据完全一样-->
        <property>
                <name>dfs.namenode.edits.dir</name>
                <value>/app/hadoop/dfs/edits,/app/hadoop/dfs2/edits</value>
        </property>
        <!--开启namenode失败自动切换-->
        <property>
                <name>dfs.ha.automatic-failover.enabled</name>
                <value>true</value>
        </property>
        <!--配置自动切换的方式-->
        <property>
                <name>dfs.client.failover.proxy.provider.ns1</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
        </property>
        <property>
                <name>dfs.ha.fencing.methods</name>
                <value>
                        sshfence
                        shell(/bin/true)
                </value>
        </property>
        <!--配置切换时免密码登录的key-->
        <property>
                <name>dfs.ha.fencing.ssh.private-key-files</name>
                <value>/home/jingxi/.ssh/id_rsa</value>
        </property>
</configuration>

Yarn-site.xml

<configuration>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>hadoop81</value>
        </property>
        <property>
                <name>yarn.nodemanager.local-dirs</name>
                <value>/app/hadoop/nm-local-dir</value>
        </property>
         <!--开启高可靠-->
        <property>
                <name>yarn.resourcemanager.ha.enabled</name>
                <value>true</value>
        </property>
        <!--配置一个集群的名称,虽然不用,但还是要配置一下-->
        <property>
                <name>yarn.resourcemanager.cluster-id</name>
                <value>hadoop</value>
        </property>
        <!--配置resourcemanager两个-->
        <property>
                <name>yarn.resourcemanager.ha.rm-ids</name>
                <value>rm1,rm2</value>
        </property>
         <!--指定第一个resourcemanager的地址-->
        <property>
                <name>yarn.resourcemanager.hostname.rm1</name>
                <value>hadoop83</value>
        </property>
         <!--配置第二个resourcemanager的地址-->
        <property>
                <name>yarn.resourcemanager.hostname.rm2</name>
                <value>hadoop84</value>
        </property>
        <!--配置zookeeper的地址-->
        <property>
                <name>yarn.resourcemanager.zk-address</name>
                <value>hadoop85:2181,hadoop86:2181,hadoop87:2181</value>
        </property>
        <!-- 配置Mapper数据本地溢出缓存目录-->
        <property>
                <name>yarn.nodemanager.local-dirs</name>
                <value>/app/hadoop/nm-local-dirs/1,/app/hadoop/nm-local-dirs/2</value>
        </property>
</configuration>

Slaves

hadoop81
hadoop82
hadoop83
hadoop84
hadoop85
hadoop86
hadoop87

启动journalnode

在85 86 87 机器上启动

$ hadoop-daemon.sh start journalnode

格式化namenode

$ hdfs namenode -format

共享edits目录

$ scp -r /app/hadoop/ hadoop82:/app/

格式化zkfc

Hdfs zkfc -formatZK

启动hdfs

Start-dfs.sh

启动yarn

到83 84 机器启动yarn

Start-yarn.sh

使用jps命令查看各节点启动是否与规划一致

Jps

使用http管理

http://hadoop83:8088/
http://hadoop82:50070/

在这里插入图片描述
欢迎扫码进群,期待更优秀的你!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值