hadoop+zookeeper+hbase分布式集群搭建

Dior ·
更新时间:2024-11-10
· 694 次阅读

目录

 

0.安装CentOS7

1.修改CentOS7基础配置(3台主机都配置)

2.安装JDK(3台主机都配置)

3.安装hadoop-2.7.5(3台主机都配置)

4.通过master启动hadoop

5.配置ssh免登陆(3台主机都配置)

6.安装zookeeper-3.4.5

7.安装hbase-2.1.0(3台主机都配置)

8.启动hbase

0.安装CentOS7

VMWare安装3台CentOS7,避免windows现有的网关冲突,设置VM网络适配器的网关、子网等
        例如,网关设置为192.168.2.2,子网192.168.2.0,子网掩码255.255.255.0
        主机名    IP
                master    192.168.2.200
                slave1    192.168.2.201
                slave2    192.168.2.202


1.修改CentOS7基础配置(3台主机都配置)

1.1修改主机名
        vim /etc/sysconfig/network
        
        NETWORKING=yes
        HOSTNAME=master     ###另外两个是slave1,slave2
        GATEWAY=192.168.2.2

    1.2修改IP
        vim /etc/sysconfig/network-scripts/ifcfg-ens33
        
            TYPE=Ethernet
            PROXY_METHOD=none
            BROWSER_ONLY=no
            BOOTPROTO=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=fdfc6d7b-e680-40a4-ba3e-60ec5b9b9fc2
            DEVICE=ens33
            ONBOOT=yes
            
            #3个主机的mac地址,ip地址不同
            HWADDR=00:50:56:3b:37:b4
            IPADDR=192.168.2.200
            NETMASK=255.255.255.0
            GATEWAY=192.168.2.2
            DNS1=192.168.2.2
            DNS2=8.8.8.8
            
    1.3修改主机名和IP的映射关系
        vim /etc/hosts
            
        127.0.0.1 localhost

        192.168.2.200 master
        192.168.2.201 slave1
        192.168.2.202 slave2
    
    1.4关闭防火墙
        #查看防火墙状态
        systemctl status firewalld.service
        #关闭防火墙
        systemctl stop firewalld.service
        #查看防火墙开机启动状态
        systemctl is-enabled firewalld.service
        #关闭防火墙开机启动
        systemctl disabled firewalld.service
    
    1.5重启
        reboot
        
    1.6主机之间互相ping,及其与windows宿主主机互相ping是否连通
    
    1.7使用ssh客户端连接centOs7,比如secureCrt

2.安装JDK(3台主机都配置)

2.1secureCrt命令窗alt+p 通过sftp从windows上传文件到centos,put d:\xxx\jdk-linux-x64.tar.gz
    
    2.2解压jdk
        #创建文件夹(hadoop为新建用户)
        mkdir /home/hadoop/app
        #解压
        tar -zxvf jdk-linux-x64.tar.gz -C /home/hadoop/app
        
    2.3将java添加到环境变量中
        vim ~/.bashrc
        #在文件最后添加
        export JAVA_HOME=/home/hadoop/app/jdk1.8.0_131
        export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
        
        export PATH=$PATH:$JAVA_HOME/bin
    
        #刷新配置
        source ~/.bashrc


3.安装hadoop-2.7.5(3台主机都配置)

   上传hadoop-2.7.5.tar.gz到centos
    注意:hadoop2.x的配置文件$HADOOP_HOME/etc/hadoop
    需要修改5个配置文件
    3.1配置hadoop依赖的jdk目录
    第一个:hadoop-env.sh
        vim hadoop-env.sh
        
        export JAVA_HOME=/home/hadoop/app/jdk1.8.0_131
        
    第二个:core-site.xml

        
        
            fs.defaultFS
            hdfs://master:9000
        
        
        
            hadoop.tmp.dir
            /home/hadoop/app/hadoop-2.7.5/data
        
        
                
                io.file.buffer.size
                4096
       
        
    第三个:hdfs-site.xml   hdfs-default.xml  (3)
        
       
                dfs.replication
                3
       

       
                dfs.http.address
                master:50070
       

       
                dfs.secondary.http.address
                master:50090
       

       
                dfs.webhdfs.enabled
                true
       

       
                dfs.permissions
                false
       
        
    第四个:mapred-site.xml (mv mapred-site.xml.template mapred-site.xml)
        mv mapred-site.xml.template mapred-site.xml
        vim mapred-site.xml
        
        
            mapreduce.framework.name
            yarn
   
        
    第五个:yarn-site.xml
        
        
            yarn.resourcemanager.hostname
            weekend-1206-01
   
        
   
            yarn.nodemanager.aux-services
            mapreduce_shuffle
     
         
    3.2将hadoop添加到环境变量
    
    vim ~/.bashrc
        export JAVA_HOME=/home/hadoop/app/jdk1.8.0_131
        export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
        
        export HADOOP_HOME=/home/hadoop/app/hadoop-2.7.5
        export HADOOP_PREFIX=$HADOOP_HOME
        export HADOOP_COMMON_HOME=$HADOOP_PREFIX
        export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_PREFIX/lib/native
        export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
        export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop
        export HADOOP_HDFS_HOME=$HADOOP_PREFIX
        export HADOOP_MAPRED_HOME=$HADOOP_PREFIX
        export HADOOP_YARN_HOME=$HADOOP_HOME
        #export HADOOP_ROOT_LOGGER=DEBUG,console
        export LD_LIBRARY_PATH=$HADOOP_PREFIX/lib/native
        
        export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

    source ~/.bashrc


4.通过master启动hadoop

4.1格式化namenode(是对namenode进行初始化)
        hadoop namenode -format
        然后可查看到hadoop.tmp.dir配置值目录下产生初始化存储目录
        
    4.2启动hadoop
        4.2.1先启动HDFS
            sbin/start-dfs.sh
            
            在master jps查看到
            3715 NameNode
            3912 SecondaryNameNode
            
            在slave1 jps可查看到
            2623 DataNode
            
            在slave2 jps可查看到
            2577 DataNode
        
        4.2.2再启动YARN
            sbin/start-yarn.sh
            
            在master jps查看到
            4140 ResourceManager
            
            在slave1 jps可查看到
            2795 NodeManager
            
            在slave2 jps可查看到
            2762 NodeManager
    4.3浏览器查看hadoop管理页面
        http://192.168.2.200:50070 (HDFS管理界面)
        http://192.168.2.200:8088 (MR管理界面)


5.配置ssh免登陆(3台主机都配置)

    #生成ssh免登陆密钥
    #进入到我的home目录
    cd ~/.ssh

    ssh-keygen -t rsa (四个回车)
    执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
    将公钥内容追加到要免登陆的主机上的.ssh目录下的authorized_keys文件后面


6.安装zookeeper-3.4.5

   6.1解压zookeeper-3.4.5.tar.gz
    
    6.2添加zookeeper环境变量并刷新配置
        export ZOOKEEPER_HOME=/home/hadoop/app/zookeeper-3.4.5
        export ZOO_LOG_DIR=$ZOOKEEPER_HOME/logs
        
        export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin
        
    6.3在zookeeper根目录创建data和logs文件夹分别存放zookeeper产生数据和运行日志
    
    6.4更改名称 $ZOOKEEPER_HOME/conf/zoo_sample.cfg 为zoo.cfg
    
    6.5更爱内容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=/home/hadoop/app/zookeeper-3.4.5/data
        #dataLogDir=/home/hadoop/app/zookeeper-3.4.5/logs
        # the port at which the clients will connect
        clientPort=2181
        #
        # 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
        
        server.0=192.168.2.200:2888:3888
        server.1=192.168.2.201:2888:3888
        server.2=192.168.2.202:2888:3888

    6.6在创建的data目录下创建全名的myid 的文件
        各个主机对应的内容是不同的,master的内容是0,slave1的内容是1,slave2的内容是2,分别对应server.x中的x。
        server.A=B:C:D,其中A是一个数字,表示这是第几号server。B是该server所在的IP地址。
        C配置该server和集群中的leader交换消息所使用的端口。D配置选举leader时所使用的端口。
        
    6.7启动zookeeper
        zkServer.sh start-dfs
        
        jps可查看到
        9107 QuorumPeerMain
        
        并且在data和logs目录下有对应的数据产生

7.安装hbase-2.1.0(3台主机都配置)

   7.1添加环境变量    
        export HBASE_HOME=/home/hadoop/app/hbase-2.1.0
        export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin:$HBASE_HOME/bin

    7.2更改hbase-env.sh
        export JAVA_HOME=$JAVA_HOME
        export HBASE_CLASSPATH=$HBASE_HOME/lib
        export HBASE_PID_DIR=$HBASE_HOME/data
        export HBASE_LOG_DIR=$HBASE_HOME/logs
        export HBASE_MANAGES_ZK=false
        
    7.3在hbase根目录下创建两个文件夹 data 和 logs

    7.4更改hbase-site.xml
        
            
              hbase.tmp.dir
              /home/hadoop/app/hbase-2.1.0/data
            
            
              hbase.rootdir
              hdfs://master:9000/hbase
            
            
              hbase.cluster.distributed
              true
            
            
              hbase.zookeeper.quorum
              master,slave1,slave2
            
            
              hbase.zookeeper.property.clientPort
              2181
            
            
              hbase.zookeeper.property.dataDir
              /home/hadoop/app/zookeeper-3.4.5/data
              property from zoo.cfg,the directory where the snapshot is stored
            
        

    7.5regionservers
        master
        slave1
        slave2

    7.6.backup-masters(可选)
        在hbase的conf目录下可能不存在这个文件,那么需要手动创建一个,且需要搭建hive,
        内容写上作为备份节点的主机名,master节点一旦挂了,这个备份节点将成为新的master节点

    7.7拷贝hdfs-site.xml
        将该主机已经搭建好的hadoop的配置文件hdfs-site.xml拷贝到hbase的conf目录下

8.启动hbase

   8.1master启动hbase
        start-hbase.sh 
    

    8.2jps可查看到
        12645 HMaster
        12773 HRegionServer

    8.3slave1 jps可查看到
        3549 HRegionServer

    8.4slave2 jps可查看到
        4018 HRegionServer

    8.5浏览器查看hbase管理页面
        http://192.168.2.200:16010/master-status


作者:github.com/4gnosed



Zookeeper 集群 hadoop hbase

需要 登录 后方可回复, 如果你还没有账号请 注册新账号