Hadoop集群搭建(HA)

三台机器:mini1,mini2,mini3

zookeeper的配置

       1.解压安装zookeeper

        2.在/etc/profile文件中配置ZK_HOME,路径为zookeeper解压地址

        2.去zookeeper目录下的conf目录下,把xx.xx.cfg改名为  zoo.cfg

        3.配置zoo.cfg

tickTime=2000
initLimit=5
syncLimit=2
dataDir=/home/zkdata
clientPort=2181
server.1=mini1:2888:3888
server.2=mini2:2888:3888
server.3=mini3:2888:3888

去/home/zkdata(上面自己设置的目录)

vi myid 写你的序号(上面文件中配置的)

测试zookeeper

zkServer.sh start 
jps查看进程

Hadoop的配置

          1.解压hadoop到某个目录

          2.在环境变量中加入HADOOP_HOME

          3.配置hadoop相关配置文件:   cd  ${HADOOP_HOME}/etc/hadoop/

core-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
 
<configuration>
        <!--指定hdfs的命名空间-->
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://qf</value>
        </property>

        <property>
                <name>hadoop.tmp.dir</name>
                <value>/home/hahadoopdata/tmp</value>
        </property>
        <property>
                <name>io.file.buffer.size</name>
                <value>4096</value>
        </property>
        <!--指定zk的集群地址,用来协调namenode服务-->
        <property>
                <name>ha.zookeeper.quorum</name>
                <value>mini1:2181,mini2:2181,mini3:2181</value>
        </property>
        <property>
                <name>ipc.client.connect.max.retries</name>
                <value>100</value>
        </property>
        <property>
                <name>ipc.client.connect.retry.interval</name>
                <value>10000</value>
        </property>
</configuration>

把 hadoop-env.sh文件中的 JAVA_HOME改成自己的路径

配置 hdfs-site.xml

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>

  <property>
    <name>dfs.block.size</name>
    <value>134217728</value>
  </property>

  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/home/hahadoopdata/dfs/name</value>
  </property>

  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/home/hahadoopdata/dfs/data</value>
  </property>



  <!--指定hdfs的虚拟服务名-->
  <property>
    <name>dfs.nameservices</name>
    <value>qf</value>
  </property>

  <!--指定hdfs的虚拟服务名下的namenode-->
  <property>
    <name>dfs.ha.namenodes.qf</name>
    <value>nn1,nn2</value>
  </property>  
  <!--指定namenode的内部通信地址-->
  <property>
    <name>dfs.namenode.rpc-address.qf.nn1</name>
    <value>mini1:9000</value>
  </property>
  <property>
    <name>dfs.namenode.rpc-address.qf.nn2</name>
    <value>mini2:9000</value>
  </property>

  <!--指定namenode的web ui通信地址-->  
  <property>
    <name>dfs.namenode.http-address.qf.nn1</name>
    <value>mini1:50070</value>
  </property>
  <property>
    <name>dfs.namenode.http-address.qf.nn2</name>
    <value>mini2:50070</value>
  </property>

  <!--指定journalnode数据共享目录-->
  <property>
    <name>dfs.namenode.shared.edits.dir</name>
    <value>qjournal://mini1:8485;mini2:8485;mini3:8485/qf</value>
  </property>

   <!--存放journalnode本地存放目录-->
   <property>
    <name>dfs.journalnode.edits.dir</name>
    <value>/home/hahadoopdata/journal/data</value>
  </property>
  <!--开启namenode失败是否自动切换-->
   <property>
    <name>dfs.ha.automatic-failover.enabled</name>
    <value>true</value>
  </property>

   <!--指定namanode失败进行自动切换的主类-->
   <property>
     <name>dfs.client.failover.proxy.provider.qf</name>
     <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
   </property>
   <!--指定脑裂时,采用某种方式杀死期中一个-->
  <!--防止多个namenode,同active(脑裂)-->
   <property>
    <name>dfs.ha.fencing.methods</name>
    <value>sshfence</value>
  </property>
  
  <property>
    <name>dfs.ha.fencing.ssh.private-key-files</name>
    <value>/home/hadoop/.ssh/id_rsa</value>
  </property>  
   <property>
    <name>dfs.ha.fencing.ssh.connect-timeout</name>
    <value>30000</value>
  </property>
</configuration>

配置yarn-site.xml

<configuration>
    <!-- 开启RM高可用 -->
    <property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value>
    </property>

    <!-- 指定RM的cluster id -->
    <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>stj</value>
    </property>

    <!-- 指定RM的名字 -->
    <property>
        <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>rm1,rm2</value>
    </property>

    <!-- 分别指定RM的地址 -->
    <property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>mini1</value>
    </property>

    <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>mini2</value>
    </property>

   <!-- 分别指定RM的网络通信地址 -->
    <property>
        <name>yarn.resourcemanager.webapp.address.rm1</name>
        <value>mini1:8088</value>
    </property>
<!-- 分别指定RM的网络通信地址 -->
    <property>
        <name>yarn.resourcemanager.webapp.addressrm2</name>
        <value>mini2:8088</value>
    </property>

    <!-- 指定zk集群地址 -->
    <property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>mini1:2181,mini2:2181,mini3:2181</value>
    </property>  
</configuration>

 配置 mapred-site.xml

<configuration>

  <property>
    <name>mapreduce.framework.name</name>
        <value>yarn</value>
        <final>true</final>
  </property>
  <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
  </property>
</configuration>

配置slaves

mini1
mini2
mini3

 配置好一台之后,用scp命令传到另外两台。

 

第一次的启动顺序

启动zk
zkServer.sh start

jps查看
2674 Jps
2647 QuorumPeerMain

启动journalnode服务
hadoop-daemon.sh start journalnode


全部的机器
 jps查看
2739 JournalNode
2788 Jps
2647 QuorumPeerMain


挑选两个namenode之中的一台来格式化
hdfs namenode -format


然后启动刚刚格式化完成的namenode
hadoop-daemonsh start namenode

在另一台namenode的机子上拉取元数据
hdfs namenode -bootstrapStandby

格式化zkfc(在namenode节点)
hdfs zkfc -formatZK

启动hdfs
start-dfs.sh

查看50070端口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值