当前位置: 首页 / 技术分享 / 正文
大数据高可用集群部署(一)HA的配置

2022-11-17

quorumpeermain journalnode datanode

  守护进程布局

  qianfeng01: NameNode、DataNode、JournalNode、QuorumPeerMain、ZKFC qianfeng02: NameNode、DataNode、JournalNode、QuorumPeerMain、ZKFC qianfeng03: DataNode、JournalNode、QuorumPeerMain

  现在,先停止HDFS的进程,修改如下的配置文件吧!

  hdfs-site.xml

<!-- 注意: 高可用的集群,没有SecondaryNameNode的存在,因此在这个文件中之前存在的SecondaryNameNode的配置需要删除 -->
<configuration>
<!-- 配置NameNode的逻辑名称 -->
<!-- 注意: 后面的很多参数配置都是需要使用到这个名称的 -->
<property>
<name>dfs.nameservices</name>
<value>supercluster</value>
</property>

<!-- 配置两个NameNode的唯一标识符 -->
<property>
<name>dfs.ha.namenodes.supercluster</name>
<value>nn1,nn2</value>
</property>

<!-- 针对每一个NameNode,配置自己的RPC通信地址和端口 -->
<property>
<name>dfs.namenode.rpc-address.supercluster.nn1</name>
<value>qianfeng01:9820</value>
</property>
<property>
<name>dfs.namenode.rpc-address.supercluster.nn2</name>
<value>qianfeng02:9820</value>
</property>

<!-- 针对每一个NameNode,配置WebUI的地址和端口 -->
<property>
<name>dfs.namenode.http-address.supercluster.nn1</name>
<value>qianfeng01:9870</value>
</property>
<property>
<name>dfs.namenode.http-address.supercluster.nn2</name>
<value>qianfeng02:9870</value>
</property>

<!-- 定义journalnode进程的数据存储的父路径, 目录在上面已经定义好了的:journalData -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/usr/local/hadoop-3.3.1/tmp</value>
</property>

<!-- 配置journalnode的服务器地址和存储目录(数目为奇数个) -->
<!-- 服务器地址使用分号“;”作为分隔符-->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://qianfeng01:8485;qianfeng02:8485;qianfeng03:8485/journalData</value>
</property>

<!-- 指定客户端连接Active的namenode节点的java类型 -->
<property>
<name>dfs.client.failover.proxy.provider.supercluster</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>
<!--为了使该防护选项起作用,它必须能够在不提供密码的情况下SSH到目标节点。因此,还必须配置以下属性-->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<!-- 免密登陆超时时间,超过此时间未连接上,则登陆失败,此配置可选-->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>

<!-- 支持自动容灾属性 -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>

<!-- 块的副本数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>

core-site.xml

<configuration>
<!--注意:使用到的是在hdfs-site.xml中配置的逻辑名称 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://supercluster</value>
</property>

<!-- hdfs的数据保存的路径,被其他属性所依赖的一个基础路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-3.3.1/tmp</value>
</property>

<!-- ZooKeeper服务的地址 -->
<property>
<name>ha.zookeeper.quorum</name>
<value>qianfeng01:2181,qianfeng02:2181,qianfeng03:2181</value>
</property>

</configuration>

  hadoop-env.sh

  # 添加两行

  export HDFS_JOURNALNODE_USER=root

  export HDFS_ZKFC_USER=root

  分发配置文件到其他节点

  [root@qianfeng01 ~]# cd $HADOOP_HOME/etc

  [root@qianfeng01 hadoop]# scp -r hadoop qianfeng02:$PWD

  [root@qianfeng01 hadoop]# scp -r hadoop qianfeng03:$PWD

好程序员公众号

  • · 剖析行业发展趋势
  • · 汇聚企业项目源码

好程序员开班动态

More+
  • HTML5大前端 <高端班>

    开班时间:2021-04-12(深圳)

    开班盛况

    开班时间:2021-05-17(北京)

    开班盛况
  • 大数据+人工智能 <高端班>

    开班时间:2021-03-22(杭州)

    开班盛况

    开班时间:2021-04-26(北京)

    开班盛况
  • JavaEE分布式开发 <高端班>

    开班时间:2021-05-10(北京)

    开班盛况

    开班时间:2021-02-22(北京)

    开班盛况
  • Python人工智能+数据分析 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2020-09-21(上海)

    开班盛况
  • 云计算开发 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2019-07-22(北京)

    开班盛况
在线咨询
试听
入学教程
立即报名

Copyright 2011-2020 北京千锋互联科技有限公司 .All Right 京ICP备12003911号-5 京公网安备 11010802035720号