上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

Hadoop完全分布集群搭建及高可用搭建

guduadmin13小时前

文章目录

  • 一、Hadoop完全分布式搭建(Centos 7系统)
      • 1、关闭防火墙
      • 2、设置主机名
      • 3、配置主机名映射hosts文件
      • 3、设置静态IP
      • 4、配置jdk环境变量
      • 5、配置SSH免密登录
      • 6、配置Hadoop环境变量
      • 7、修改Hadoop配置文件
      • 8、分发文件
      • 9、格式化namenode
      • 10、启动集群并测试
      • 二、Hadoop安装zookeeper(Centos 7系统)
          • 1、安装zookeeper
          • 2、配置环境变量
          • 3、更改文件名字zoo.cfg
          • 4、修改zoo.cfg配置文件
          • 6、分发zookeeper
          • 7、zookeeper基本命令
          • 三、Hadoop高可用搭建(Centos 7系统)
              • 1、修改配置文件
              • 2、分发文件
              • 3、第一次启动顺序
              • 3、其次启动顺序
              • 4、查看节点个数

                一、Hadoop完全分布式搭建(Centos 7系统)

                1、关闭防火墙

                systemctl stop firewalld     #关闭防火墙
                systemctl start firewalld    #开启防火墙
                systemctl disable firewalld  #设置开机禁用防火墙
                systemctl enable firewalld   #设置开机启用防火墙
                systemctl status firewalld   #查看防火墙状态
                

                2、设置主机名

                hostnamectl set-hostname master && bash  #设置主机名为master,立即生效.
                hostnamectl set-hostname worker1 && bash  #设置主机名为worker1,立即生效.
                hostnamectl set-hostname worker2 && bash  #设置主机名为worker2,立即生效.
                

                3、配置主机名映射hosts文件

                vim /etc/hosts          #进入hosts文件
                192.168.10.100 master   #IP地址 主机名
                192.168.10.101 worker1   #IP地址 主机名
                192.168.10.102 worker2   #IP地址 主机名
                

                3、设置静态IP

                vim /etc/sysconfig/network-scripts/ifcfg-ens33   #进入配置IP文件
                TYPE="Ethernet"
                PROXY_METHOD="none"
                BROWSER_ONLY="no"
                BOOTPROTO="dhcp"            #改为static
                DEFROUTE="yes"
                IPV4_FAILURE_FATAL="no"
                IPV6INIT="yes"
                IPV6_AUTOCONF="yes"
                IPV6_DEFROUTE="yes"
                IPV6_FAILURE_FATAL="no"
                IPV6_ADDR_GEN_MODE="stable-privacy"
                NAME="ens33"
                UUID="29eb0e94-b7d2-445a-93d9-d6755d24f55a"
                DEVICE="ens33"
                ONBOOT="no"                 #改为yes
                IPADDR=192.168.10.100       #设置静态IP
                GATEWAY=192.168.10.2        #配置网关
                DNS1=192.168.10.2           #配置DNS       
                systemctl restart network   #重启网络服务
                

                4、配置jdk环境变量

                vim /etc/profile   #进入环境变量配置文件
                #添加以下内容--------------------
                export JAVA_HOME=/opt/jdk1.8.0
                export JRE_HOME=$JAVA_HOME/jre
                export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
                export PATH=$PATH:$JAVA_HOME/bin
                #---------------------------------
                source /etc/profile   #使用source命令你个使配置文件生效
                

                5、配置SSH免密登录

                ssh-keygen -t rsa     #在主节点使用命令,一直按回车
                ssh-copy-id worker1    #将公共密钥填充到另一个节点worker1上
                ssh-copy-id worker2    #将公共密钥填充到另一个节点wokrer2上
                ssh worker1   #验证是否免密成功
                ssh worker2   #验证是否免密成功
                

                6、配置Hadoop环境变量

                vim /etc/profile   #进入环境变量配置文件
                #添加以下内容--------------------
                export HADOOP_HOME=/opt/hadoop3.3.6
                export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
                #---------------------------------
                source /etc/profile   #使用source使配置文件生效
                

                7、修改Hadoop配置文件

                配置文件路径在hadoop中etc文件夹

                修改hadoop-env.sh

                export JAVA_HOME=/usr/local/program/jdk8    #jdk文件路径
                export HDFS_NAMENODE_USER=root
                export HDFS_DATANODE_USER=root
                export HDFS_ZKFC_USER=root
                export HDFS_JOURNALNODE_USER=root
                export YARN_RESOURCEMANAGER_USER=root
                export YARN_NODEMANAGER_USER=root
                

                修改core-site.xml文件

                
                
                
                
                   
                        fs.defaultFS
                        hdfs://master:9000
                   
                
                   
                        hadoop.tmp.dir
                        file:/opt/app/hadoop/tmp
                   
                   
                         hadoop.http.staticuser.user
                         root
                    
                
                

                修改hdfs-site.xml

                
                    
                        
                                dfs.namenode.name.dir
                                /usr/hadoop3/hdfs/name
                        
                    
                        
                                dfs.datanode.data.dir
                                /usr/hadoop3/hdfs/data
                        
                    
                        
                                dfs.replication
                                3
                        
                    
                        
                                dfs.namenode.http-address
                                 master:9870
                        
                
                         
                                dfs.namenode.secondary.http-address
                                master:9868
                         
                
                
                
                
                	dfs.permissions.enalbed
                    false
                
                

                修改yarn-site.xml

                
                    
                        
                                yarn.resourcemanager.hostname
                                master
                        
                    
                        
                                yarn.nodemanager.aux-services
                                mapreduce_shuffle
                        
                    
                        
                                yarn.nodemanager.vmem-check-enabled
                                false
                        
                
                

                修改mapred-site.xml

                
                    
                    
                        
                                mapreduce.framework.name
                                yarn
                        
                    
                
                        
                                mapreduce.application.classpath
                                /opt/hadoop3.3.6/share/hadoop/mapreduce/*:/opt/hadoop-3.3.6/share/hadoop/mapreduce/lib/*
                        
                
                

                修改workers

                vim workers
                # 删掉里面的localhost,添加以下内容,你的两个从节点的ip映射
                worker1
                worker2
                

                8、分发文件

                # 分发jdk,$PWD:获取当前所在目录的绝对路径
                scp -r jdk1.8.0_162 root@worker1:$PWD
                scp -r jdk1.8.0_162 root@worker2:$PWD
                # 分发hadoop
                scp -r hadoop-3.3.3 root@worker1:$PWD
                scp -r hadoop-3.3.3 root@worker2:$PWD
                # 分发/etc/hosts
                scp /etc/hosts root@worker1:/etc/
                scp /etc/hosts root@worker2:/etc/
                # 分发/etc/profile
                scp /etc/profile root@worker1:/etc/
                scp /etc/profile root@worker2:/etc/
                # 然后在两个从节点上执行 source /etc/profile
                

                9、格式化namenode

                hdfs namenode -format
                

                10、启动集群并测试

                # 启动hadoop
                start-all.sh
                # 查看进程
                jps
                

                主节点进程

                ResourceManager
                NodeManager
                Jps
                DataNode
                SecondaryNameNode
                NameNode
                

                从节点

                DataNode
                NodeManager
                

                从节点

                DataNode
                NodeManager
                

                二、Hadoop安装zookeeper(Centos 7系统)

                1、安装zookeeper

                tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz
                

                2、配置环境变量

                export ZK_HOME=/opt/zookeeper
                export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZK_HOME/bin
                

                3、更改文件名字zoo.cfg

                cd conf                      #进入zookeep的conf文件夹
                mv zoo-sample.cfg zoo.cfg    #将zoo-sample.cfg改名为zoo.cfg
                

                4、修改zoo.cfg配置文件

                # The number of milliseconds of each tick
                tickTime=2000
                # The number of ticks that the initial 
                # synchronization phase can take
                initLimit=10
                # The number of ticks that can pass between 
                # sending a request and getting an acknowledgement
                syncLimit=5
                # the directory where the snapshot is stored.
                # do not use /tmp for storage, /tmp here is just 
                # example sakes.
                dataDir=D:\zookeeper\data
                # the port at which the clients will connect
                clientPort=2181
                # the maximum number of client connections.
                # increase this if you need to handle more clients
                #maxClientCnxns=60
                #
                # Be sure to read the maintenance section of the 
                # administrator guide before turning on autopurge.
                #
                # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
                #
                # The number of snapshots to retain in dataDir
                #autopurge.snapRetainCount=3
                # Purge task interval in hours
                # Set to "0" to disable auto purge feature
                #autopurge.purgeInterval=1
                ## Metrics Providers
                #
                # https://prometheus.io Metrics Exporter
                #metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
                #metricsProvider.httpPort=7000
                #metricsProvider.exportJvmInfo=true
                #server.1 = 主机ip(主机映射名):A:B
                #server.2 = 主机ip(主机映射名):A:B
                #server.3 = 主机ip(主机映射名):A:B
                server.1 = 主机ip(主机映射名):2888:3888
                server.2 = 主机ip(主机映射名):2888:3888
                server.3 = 主机ip(主机映射名):2888:3888
                

                配置文件相关说明

                tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
                initLimit:LF初始通信时限,集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。
                syncLimit:LF同步通信时限,集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。
                dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
                clientPort:客户端连接端口,这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求
                autopurge.snapRetainCount:保留数量。
                autopurge.purgeInterval:清理时间间隔,单位:小时。
                server.N = YYY:A:B,其中N表示服务器编号,YYY表示服务器的IP地址,A为LF通信端口,表示该服务器与集群中的leader交换的信息的端口。B为选举端口,表示选举新leader时服务器间相互通信的端口(当leader挂掉时,其余服务器会相互通信,选择出新的leader)。一般来说,集群中每个服务器的A端口都是一样,每个服务器的B端口也是一样。但是当所采用的为伪集群时,IP地址都一样,只能时A端口和B端口不一样。
                

                5、创建myid文件

                #在dataDir=D:\zookeeper\data文件下创建myid
                vim myid
                #在myid中填写数字序号,序号和zoo.cfg中server序号相同
                

                6、分发zookeeper

                scp -r /opt/zookeeper/ root@worker1:/opt/
                scp -r /opt/zookeeper/ root@worker2:/opt/
                

                7、zookeeper基本命令

                zkServe.sh start        #开启zookeeper服务
                zkServer.sh status      #关闭zookeeper服务
                

                三、Hadoop高可用搭建(Centos 7系统)

                1、修改配置文件

                修改core-site.xml

                
                    
                   
                    
                        fs.defaultFS
                        hdfs://my-hdfs
                    
                    
                     
                   
                        hadoop.tmp.dir
                        file:/opt/app/hadoop/tmp
                   
                    
                     
                    
                        hadoop.http.staticuser.user
                        root
                    
                    
                     
                    
                        ha.zookeeper.quorum
                        master:2181,worker1:2181,worker2:2181
                    
                
                

                修改hdfs-site.xml

                
                    
                    
                    
                        dfs.nameservices
                        my-hdfs
                    
                    
                    
                    
                        dfs.ha.namenodes.my-hdfs
                        nn1,nn2
                    
                    
                    
                    
                        dfs.namenode.rpc-address.my-hdfs.nn1
                        master:8020
                    
                    
                        dfs.namenode.rpc-address.my-hdfs.nn2
                        worker1:8020
                    
                    
                    
                    
                        dfs.namenode.http-address.my-hdfs.nn1
                        master:9870
                    
                    
                        dfs.namenode.http-address.my-hdfs.nn2
                        worker1:9870
                    
                    
                    
                    
                        dfs.namenode.shared.edits.dir
                        qjournal://master:8485;worker1:8485;worker2:8485/my-hdfs
                    
                    
                    
                    
                        dfs.journalnode.edits.dir
                        /usr/local/program/hadoop/datas/qjm
                    
                    
                    
                        
                                dfs.namenode.name.dir
                                /usr/hadoop3/hdfs/name
                        
                    
                        
                                dfs.datanode.data.dir
                                /usr/hadoop3/hdfs/data
                        
                    
                    
                    
                        dfs.client.failover.proxy.provider.my-hdfs
                        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.automatic-failover.enabled
                        true
                    
                    
                    
                    
                        dfs.replication
                        3
                    
                    
                    
                         
                                dfs.namenode.secondary.http-address
                                master:9868
                         
                
                

                修改mapred-stie.xml

                
                    
                    
                    
                        mapreduce.framework.name
                        yarn
                    
                    
                    
                     
                             mapreduce.application.classpath
                             /opt/hadoop3.3.6/share/hadoop/mapreduce/*:/opt/hadoop-3.3.6/share/hadoop/mapreduce/lib/*
                     
                    
                    
                    
                        mapreduce.jobhistory.address
                        master:10020
                    
                    
                    
                    
                        mapreduce.jobhistory.webapp.address
                        master:19888
                    
                    
                    
                    
                        mapreduce.jobhistory.done-dir
                        /history/done
                    
                    
                    
                    
                        mapreudce.jobhistory.intermediate.done-dir
                        /history/done/done_intermediate
                    
                    
                    
                	
                		yarn.app.mapreduce.am.env
                		HADOOP_MAPRED_HOME=/usr/local/program/hadoop
                	
                	
                		mapreduce.map.env
                		HADOOP_MAPRED_HOME=/usr/local/program/hadoop
                	
                	
                		mapreduce.reduce.env
                		HADOOP_MAPRED_HOME=/usr/local/program/hadoop
                	
                
                

                修改yarn-site.xml文件

                
                    
                    
                        yarn.resourcemanager.ha.enabled
                        true
                    
                    
                    
                        yarn.resourcemanager.cluster-id
                        my-hdfs
                    
                    
                    
                        yarn.resourcemanager.ha.rm-ids
                        rm1,rm2
                    
                    
                    
                        yarn.resourcemanager.hostname.rm1
                        master
                    
                    
                        yarn.resourcemanager.hostname.rm2
                        worker1
                    
                    
                    
                    
                        yarn.resourcemanager.webapp.address.rm1
                        master:8088
                    
                    
                        yarn.resourcemanager.webapp.address.rm2
                        worker1:8088
                    
                    
                    
                    
                        yarn.resourcemanager.zk-address
                        master:2181,worker1:2181,worker2:2181
                    
                     
                    
                        yarn.nodemanager.aux-services
                        mapreduce_shuffle
                    
                    
                    
                    
                        yarn.log-aggregation-enable
                        true
                    
                     
                    
                        yarn.log.server.url
                        http://master:19888/jobhistory/logs
                    
                    
                    
                        yarn.log-aggregation.retain-seconds
                        86400
                    
                    
                    
                    
                        yarn.resourcemanager.recovery.enabled
                        true
                    
                    
                    
                        yarn.resourcemanager.store.class
                        org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore
                    
                        
                        
                                yarn.nodemanager.vmem-check-enabled
                                false
                        
                
                

                2、分发文件

                # 分发hadoop配置好的文件
                scp -r /opt/hadoop/ root@worker1:/opt/
                scp -r /opt/hadoop/ root@worker2:/opt/
                

                3、第一次启动顺序

                启动zookeeper

                zkServer.sh start    #三个节点都要启动
                zkServer.sh status   #查看状态受否正常
                

                4、启动JournalNode

                hdfs --daemon start journalnode   #三个节点都要启动
                

                5、格式化namenode

                hdfs namenode -format    #格式化namenode,主节点格式化
                #格式化前清除目录数据,data文件,name文件
                

                6、格式化ZKFC,启动ZKFC

                hdfs zkfc -formatZK   #格式化ZKFC,主节点格式化
                hdfs --daemon start zkfc   #启动ZKFC,主节点启动
                

                7、启动namenode

                hdfs --daemon start namenode   #主节点启动
                

                8、启动副节点namenode

                hdfs namenode -bootstrapStandby    #副节点启动namenode,同步namenode
                

                9、启动其他节点

                start-all.sh
                

                3、其次启动顺序

                hdfs --daemon start zkfc   #主节点启动
                zkServer.sh start          #三个节点都要启动
                start-all.sh start         #主节点启动
                

                4、查看节点个数

                主节点

                [root@node001 hadoop]# jps
                18946 QuorumPeerMain
                25123 NameNode
                26628 DFSZKFailoverController
                26182 DataNode
                27368 ResourceManager
                27561 NodeManager
                24666 JournalNode
                27965 Jps
                

                副节点

                [root@node002 hadoop]# jps
                26515 Jps
                25939 NameNode
                21860 QuorumPeerMain
                26055 DataNode
                26217 DFSZKFailoverController
                26398 NodeManager
                25247 JournalNode
                

                其它节点

                [root@node003 hadoop]# jps
                28421 NodeManager
                27783 DataNode
                28727 Jps
                24650 QuorumPeerMain
                27583 JournalNode
                

网友评论

搜索
最新文章
热门文章
热门标签