hadoop3.2.0集群搭建

说明:本文以HDFS High Availability Using the Quorum Journal Manager模式搭建hadoop3.2.0集群。

环境

  • CentOS7、jdk1.8.0_181、zookeeper3.4.13、hadoop3.2.0
  • 虚拟机安装CentOS7三台,如下: 
hostname IP
storm 192.168.56.200
storm1 192.168.56.201
storm2 192.168.56.202

      注意:安装完成后关闭防火墙,执行如下命令:

             systemctl disable firewalld.service    systemctl stop firewalld.service      systemctl status firewalld.service

  • 安装jdk,省略安装步骤。
  • 三台虚拟机配置免密登录,省略配置过程。
配置免密登录可以使用如下命令:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

搭建zookeeper集群

  • zookeeper下载地址:https://archive.apache.org/dist/zookeeper/

hadoop3.2.0集群搭建_第1张图片

  • 上传到虚拟机,解压后修改conf/zoo.cfg文件,配置如下:
tickTime=3000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper-3.4.13/data #此目录自由定义
clientPort=2181
server.1=storm:2888:3888
server.2=storm1:2888:3888
server.3=storm2:2888:3888

     在dataDir定义的目录下创建文件myid,把虚拟机各自对应的id存储到myid,即上面的server.id,每台虚拟机只存储自己的id值即可。

    启动zookeeper:bin/zkServer.sh start,在执行脚本的位置会生成一个日志文件zookeeper.out。

 搭建hadoop

  • 下载hadoop3.2.0地址:https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.2.0/hadoop-3.2.0.tar.gz
  • 修改../hadoop-3.2.0/etc/hadoop下的配置文件:
  • hdfs-site.xml文件配置如下:

        
          dfs.nameservices
          mycluster
        
        
          dfs.ha.namenodes.mycluster
          nn1,nn2, nn3
        
        
          dfs.namenode.rpc-address.mycluster.nn1
          storm:8020
        
        
          dfs.namenode.rpc-address.mycluster.nn2
          storm1:8020
        
        
          dfs.namenode.rpc-address.mycluster.nn3
          storm2:8020
        
        
          dfs.namenode.http-address.mycluster.nn1
          storm:9870
        
        
          dfs.namenode.http-address.mycluster.nn2
          storm1:9870
        
        
          dfs.namenode.http-address.mycluster.nn3
          storm2:9870
        
        
        
          dfs.namenode.shared.edits.dir
          qjournal://storm:8485;storm1:8485;storm2:8485/mycluster
        
        
          dfs.client.failover.proxy.provider.mycluster
          org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
        
        
          dfs.ha.fencing.methods
          sshfence
        

        
         dfs.ha.fencing.ssh.private-key-files
         /root/.ssh/id_rsa
        
        
          dfs.journalnode.edits.dir
          /dfs/jn/
        
        
          dfs.ha.automatic-failover.enabled
          true
        
        
          dfs.blocksize
          67108864
        
        
          dfs.replication
          1
        

  • core-site.xml文件配置如下:

        
          fs.defaultFS
          hdfs://mycluster
        
        
          ha.zookeeper.quorum
          storm:2181,storm1:2181,storm2:2181
        
        
          hadoop.tmp.dir
          /tmp/hadoop
        
        
          io.file.buffer.size
          131072
        

  • yarn-site.xml文件配置如下:

        
          yarn.resourcemanager.ha.enabled
          true
        
        
          yarn.resourcemanager.cluster-id
          mycluster
        
        
          yarn.resourcemanager.ha.rm-ids
          rm1,rm2
        
        
          yarn.resourcemanager.hostname.rm1
          storm
        
        
          yarn.resourcemanager.hostname.rm2
          storm1
        
        
          yarn.resourcemanager.webapp.address.rm1
          storm:8088
        
        
          yarn.resourcemanager.webapp.address.rm2
          storm1:8088
        
        
          hadoop.zk.address
          storm:2181,storm1:2181,storm2:2181
        
        
          yarn.nodemanager.aux-services
          mapreduce_shuffle
        

  • mapred-site.xml文件配置如下:

        
          mapreduce.framework.name
          yarn
        

    workers文件件配置如下:

storm
storm1
storm2
  • hadoop-env.sh文件配置如下:
export JAVA_HOME=添加自己的JAVA_HOME
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_JOURNALNODE_USER=root
export HDFS_ZKFC_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

初始化与启动

三台虚拟机所有配置完成后,依次执行如下命令:

->  ../bin/hdfs --daemon start journalnode  # 三台虚拟机都执行该命令
执行完成后会在hadoop根目录下生成logs目录,查看执行日志

->  ../bin/hdfs namenode -format  # 在其中一台namenode虚拟机执行即可
执行完成后,在core-site.xml配置文件中hadoop.tmp.dir配置的目录会生成,把生成的目录复制到其他的namenode节点配置的位置。

->  ../bin/hdfs zkfc -formatZK   # 在其中一台namenode虚拟机执行即可
执行完成后,将在ZooKeeper中创建一个znode,自动故障转移系统存储数据。

->  ../sbin/start-dfs.sh
启动HDFS

->  ../sbin/start-yarn.sh
启动yarn

 

你可能感兴趣的:(Big,Data)