永绝后患,手把手搭建hadoop集群

永绝后患,手把手搭建hadoop集群

经验文章nimo972025-03-07 17:40:2111A+A-

一、免密登录

1、生成秘钥

有三台服务器举例子 比如 flinka flinkb flinkc

举个例子,在flinkc上生成密码

ssh-keygen -t rsa

2、把公钥发给flinkb flinc flina 是的,自身也要设置免密

ssh-copy-id flinkb

3、测试是否设置成功

ssh flinka

ssh flinkb

ssh flinkc

都不用设置密码的,就可以登录!!

在flinkb flinka另外两台服务器上也这样设置


到这里免密登录结束


二、解压hadoop安装包,重命名为hadoop-3.3.0文件夹

1、配置core-site.xml




    
        fs.defaultFS
        hdfs://ns
        
        
    
        hadoop.tmp.dir
        /root/hadoop-3.3.0/tmp
        
 
        ha.zookeeper.quorum
        flinka:2181,flinkb:2181,flinkc:2181
        

2、配置hdfs-site.xml文件


    
        dfs.replication
        3
    
    
        dfs.nameservices
        ns
    
    
        dfs.ha.namenodes.ns
        nn1,nn2,nn3
    
    
        dfs.namenode.rpc-address.ns.nn1
        flinka:8020
    
    
        dfs.namenode.http-address.ns.nn1
        flinka:9870
    
    
        dfs.namenode.rpc-address.ns.nn2
        flinkb:8020
    
    
        dfs.namenode.http-address.ns.nn2
        flinkb:9870
    
    
        dfs.namenode.rpc-address.ns.nn3
        flinkc:8020
    
    
        dfs.namenode.http-address.ns.nn3
        flinkc:9870
    
	
    
        dfs.namenode.shared.edits.dir
        qjournal://flinka:8485;flinkb:8485;flinkc:8485/ns
    
    
        dfs.journalnode.edits.dir
        /root/hadoop-3.3.0/journal/data
    
    
        dfs.ha.automatic-failover.enabled
        true
    
    
        dfs.client.failover.proxy.provider.ns
        org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
    
    
        dfs.ha.fencing.methods
         sshfence
        shell(true)

    
    
    
        dfs.ha.fencing.ssh.private-key-files
        /root/.ssh/id_rsa
    
    
    
        dfs.ha.fencing.ssh.connect-timeout
        30000
    

3、配置yarn-site.xml文件


    
    
        yarn.log-aggregation-enable
        true
    
    
    
        yarn.resourcemanager.ha.enabled
        true
    
    
    
        yarn.resourcemanager.cluster-id
        mycluster
    
    
    
        yarn.resourcemanager.ha.rm-ids
        rm1,rm2,rm3
    
    
    
        yarn.resourcemanager.hostname.rm1
        flinka
    
    
    
        yarn.resourcemanager.hostname.rm2
        flinkb
    
    
    
        yarn.resourcemanager.hostname.rm3
        flinkc
    
  
    
    
        yarn.resourcemanager.address.rm1
        flinka:8032
    
    
        yarn.resourcemanager.scheduler.address.rm1
        flinka:8030
    
    
        yarn.resourcemanager.resource-tracker.address.rm1
        flinka:8031
    
    
        yarn.resourcemanager.admin.address.rm1
        flinka:8033
    
    
        yarn.resourcemanager.webapp.address.rm1
        flinka:8088
    
    
    
        yarn.resourcemanager.address.rm2
        flinkb:8032
    
    
        yarn.resourcemanager.scheduler.address.rm2
        flinkb:8030
    
    
        yarn.resourcemanager.resource-tracker.address.rm2
        flinkb:8031
    
    
        yarn.resourcemanager.admin.address.rm2
        flinkb:8033
    
    
        yarn.resourcemanager.webapp.address.rm2
        flinkb:8088
    
    
    
        yarn.resourcemanager.address.rm3
        flinkc:8032
    
    
        yarn.resourcemanager.scheduler.address.rm3
        flinkc:8030
    
    
        yarn.resourcemanager.resource-tracker.address.rm3
        flinkc:8031
    
    
        yarn.resourcemanager.admin.address.rm3
        flinkc:8033
    
    
        yarn.resourcemanager.webapp.address.rm3
        flinkc:8088
    
	
	    
    
        yarn.resourcemanager.recovery.enabled
        true
    
	
	    
        yarn.resourcemanager.store.class
        org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore
    
	 
    
        yarn.resourcemanager.zk-address
        flinka:2181,flinkb:2181,flinkc:2181
    
    
    
        yarn.resourcemanager.ha.automatic-failover.enabled
        true
    
	
    
        yarn.client.failover-proxy-provider
        org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider
    
	  
    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    
    
    
        yarn.resourcemanager.connect.retry-interval.ms
        2000
    
    
    
        yarn.nodemanager.pmem-check-enabled
        false
    
    
        yarn.nodemanager.vmem-check-enabled
        false
    
    
        yarn.scheduler.minimum-allocation-mb
        100
    
    
        yarn.nodemanager.resource.memory-mb
        16384
    

3、启动Zookeeper

zkServer.sh start
zkServer.sh status

4、启动journalnode服务

4.1、在三台服务器上运行

hdfs --daemon start journalnode

4.2、在主节点flinka上

hdfs namenode -format

启动namenode

hdfs --daemon start namenode

4.3、在其他的节点上同步namenode并且启动namenode

hdfs namenode -bootstrapStandby
hdfs --daemon start namenode

4.4、启动三个节点的datanode

hdfs --daemon start datanode

4.5、测试namenode是否故障转移,kill掉Active的节点,看看是否存在其他的Active

hdfs haadmin -getServiceState nn1
hdfs haadmin -getServiceState nn2
hdfs haadmin -getServiceState nn3

5、在leader上格式化

 hdfs zkfc -formatZK

7、关闭所有的 stop-all.sh

8、开启所有的 start-all.sh

9、测试yarn集群的故障转移是否可用

yarn rmadmin -getServiceState rm1
yarn rmadmin -getServiceState rm2
yarn rmadmin -getServiceState rm3

查看哪个是Active 然后Kill掉,看看会不会出现一个Active,若能出现,说明故障转移成功,否则失败!!!!


点击这里复制本文地址 以上内容由nimo97整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

尼墨宝库 © All Rights Reserved.  蜀ICP备2024111239号-7