Hadoop学习-4-Hadoop部署(HA)

HA环境搭建

zookeeper集群搭建

  • zookeeper由2n+1台服务器组成

  • 集群搭建

    • java环境,需要安装jdk

    • 修稿配置文件

      # zoo.cfg
      dataDir=/opt/data/zookeeper_data
      
      server.1=node-01:2888:3888
      server.2=node-03:2888:3888
      server.3=node-03:2888:3888
      
    • 创建myid文件, echo 1 > /opt/data/zookeeper_data/myid

    • 分发到其他机器,并将zookeeper添加到环境变量中;修改myid为各自的id

    • 服务启动,zkServer.sh start

    • 服务状态、角色查询zkServer.sh status

    • 服务关闭zkServer.sh stop

hadoop集群

  • 各个节点之间互相免密

  • namenode中需要有zkfc,各个节点需要zk和jn

  • 配置文件修改

    • Hdfs-env.sh
    # hdfs-evn.sh
    export JAVA_HOME=/opt/software/jdk1.8.0_311
    
    export HDFS_NAMENODE_USER=root
    export HDFS_DATANODE_USER=root
    export HDFS_SECONDARYNAMENODE_USER=root
    export YARN_RESOURCEMANAGER_USER=root
    export YARN_NODEMANAGER_USER=root
    export HDFS_ZKFC_USER=root
    export HDFS_JOURNALNODE_USER=root
    
    • Core-site.xml
    
    <configuration>
      	
        <property>
            <name>fs.defaultFSname>
            <value>hdfs://hadoop-clustervalue>
          	<description>集群名称,需要和hdfs-site.xml文件中保持一致description>
        property>
        <property>
            <name>hadoop.tmp.dirname>
            <value>/opt/data/hadoopvalue>
          	<description>临时文件夹,元数据默认文件夹description>
        property>
        <property>
            <name>hadoop.http.staticuser.username>
            <value>rootvalue>
          	<description>http请求用户description>
        property>
        <property>
            <name>hadoop.proxyuser.root.hostsname>
            <value>*value>
        property>
        <property>
            <name>hadoop.proxyuser.root.groupsname>
            <value>*value>
        property>
      	
        <property>
            <name>ha.zookeeper.quorumname>
            <value>node-01:2181,node-02:2181,node-03:2181value>
          	<description>zookeeper集群地址description>
        property>
    configuration>
    
    • hdfs-site.xml
    
    <configuration>
        
        <property>
            <name>dfs.nameservicesname>
            <value>hadoop-clustervalue>
        property>
        
        <property>
            <name>dfs.ha.namenodes.hadoop-clustername>
            <value>namenode-1, namenode-2value>
        property>
        
        <property>
            <name>dfs.namenode.rpc-address.hadoop-cluster.namenode-1name>
            <value>node-01:8020value>
        property>
        
        <property>
            <name>dfs.namenode.http-address.hadoop-cluster.namenode-1name>
            <value>node-01:9870value>
        property>
        
        <property>
            <name>dfs.namenode.rpc-address.hadoop-cluster.namenode-2name>
            <value>node-02:8020value>
        property>
        
        <property>
            <name>dfs.namenode.http-address.hadoop-cluster.namenode-2name>
            <value>node-02:9870value>
        property>
    		
        <property>
            <name>dfs.namenode.shared.edits.dirname>
            <value>qjournal://node-01:8485;node-02:8485;node-03:8485/hadoop-clustervalue>
        property>
        
        <property>
            <name>dfs.journalnode.edits.dirname>
            <value>/opt/data/hadoop/journaldatavalue>
        property>
        
      	<property>
      		<name>dfs.ha.automatic-failover.enabledname>
          <value>truevalue>
      	property>
      	
    		<property>
      		<name>dfs.client.failover.proxy.provider.hadoop-clustername>
          <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvidervalue>
      	property>
      	
      	<property>
      		<name>dfs.ha.fencing.methodsname>
      		<value>sshfencevalue>
      	property>
      	
      	<property>
      		<name>dfs.ha.fencing.ssh.private-key-filesname>
          <value>/root/.ssh/id_rsavalue>
      	property>
      	
      	<property>
      		<name>dfs.ha.fencing.ssh.connect-timeoutname>
          <value>30000value>
      	property>
      	
        <property>
            <name>dfs.replicationname>
            <value>3value>
        property>
      	
        <property>
            <name>dfs.webhdfs.enabledname>
            <value>truevalue>
        property>
      	
        <property>
            <name>dfs.permissions.enabledname>
            <value>falsevalue>
        property>
      	
      	<property>
            <name>dfs.datanode.data.dirname>
            <value>/opt/data/datanodevalue>
        property>
      	
        <property>
            <name>dfs.ha.nn.not-become-active-in-safemodename>
            <value>falsevalue>
        property>
    configuration>
    
    • yarn高可用,修改yarn-site.xml
    
      <property>
        <name>yarn.resourcemanager.ha.enabledname>
        <value>truevalue>
      property>
    	<property>
        <name>yarn.resourcemanager.ha.automatic-failover.embeddedname>
        <value>truevalue>
        <description>ha状态切换为自动切换description>
    	property>
      
      <property>
        <name>yarn.resourcemanager.cluster-idname>
        <value>yarn-clustervalue>
      property>
      
      <property>
        <name>yarn.resourcemanager.ha.rm-idsname>
        <value>yarn-ha-rm1,yarn-ha-rm2value>
      property>
      
      <property>
        <name>yarn.resourcemanager.hostname.yarn-ha-rm1name>
        <value>node-01value>
      property>
      
      <property>
        <name>yarn.resourcemanager.hostname.yarn-ha-rm2name>
        <value>node-02value>
      property>  
      
      <property>
        <name>yarn.resourcemanager.ha.idname>
        <value>yarn-ha-rm1value>
      property>
    	
    	<property>
    		<name>yarn.resourcemanager.webapp.address.yarn-ha-rm1name>
        <value>node-01:8088value>
    	property>
    	<property>
    		<name>yarn.resourcemanager.webapp.address.yarn-ha-rm2name>
        <value>node-02:8088value>
    	property>
    	<property>
    		<name>yarn.resourcemanager.scheduler.address.yarn-ha-rm1name>
        <value>node-01:8030value>
    	property>
    	<property>
    		<name>yarn.resourcemanager.scheduler.address.yarn-ha-rm2name>
        <value>node-02:8030value>
    	property>
      
      <property>
        <name>yarn.resourcemanager.zk-addressname>
        <value>node-01:2181,node-02:2181,node-03:2181value>
      property> 
      
      <property>
        <name>yarn.nodemanager.aux-servicesname>
        <value>mapreduce_shufflevalue>
      property>
    	
    	<property>
    		<name>yarn.application.classpathname>
      	<value>/opt/server/hadoop/etc/hadoop:/opt/server/hadoop/share/hadoop/common/lib/*:/opt/server/hadoop/share/hadoop/common/*:/opt/server/hadoop/share/hadoop/hdfs:/opt/server/hadoop/share/hadoop/hdfs/lib/*:/opt/server/hadoop/share/hadoop/hdfs/*:/opt/server/hadoop/share/hadoop/mapreduce/lib/*:/opt/server/hadoop/share/hadoop/mapreduce/*:/opt/server/hadoop/share/hadoop/yarn:/opt/server/hadoop/share/hadoop/yarn/lib/*:/opt/server/hadoop/share/hadoop/yarn/*value>
        
    	property>
    
    • maprd.xml
    		<property>
            <name>mapreduce.framework.namename>
            <value>yarnvalue>
        property>
    
  • 启动journalnode

    hdfs --daemon start journalnode

  • 集群初始化hdfs namenode -format

  • 启动namenodehdfs namenode start --daemon

  • Node-02上同步元数据hdfs namenode -boostrapStandby

    • 或者执行scp -r /opt/data/hadoop/dfs root@node-02:/opt/data/hadoop
  • 格式化zkfc,在active服务器上面执行即可 hdfs zkfc -formatZK

  • 启动节点服务

    start-dfs.sh
    start-yarn.sh
    
  • 如果切换失败,yum install psmisc -y

服务器断电重启集群

  • 启动zookeeper集群,zkServer.sh start

  • 启动journalnode, hdfs --daemon start journalnode

  • 启动hdfs, yarn

    sh start-dfs.sh; sh start-yarn.sh
    

你可能感兴趣的:(Hadoop,hadoop,学习,大数据)