hadoop高可用集群的搭建

一.HDFS-HA 集群配置

1.1 配置 HDFS-HA 集群

  • 1.HDFS 高可用集群规划,请保证 Hadoop 完全分布式和 ZooKeeper 完全分布式环境已经安装完成。
    hadoop集群搭建
hadoop110 hadoop111
NameNode NameNode
  • 2.在 hadoop110 配置 core-site.xml :
<!-- 默认节点为namenode集群 --> <property>   <name>fs.defaultFS</name>   <value>hdfs://mycluster</value> </property> <!-- hdfs的临时文件的目录  --> <property>    <name>hadoop.tmp.dir</name>    <value>/opt/install/hadoop/hdfsTmp</value> </property> <!-- 其他机器的root用户可访问 --> <property>    <name>hadoop.proxyuser.root.hosts</name>    <value>*</value> </property> <!-- 其他root组下的用户都可以访问 --> <property>         <name>hadoop.proxyuser.root.groups</name>         <value>*</value> </property> 
  • 3.在 hadoop110 配置 hdfs-site.xml
<!-- 设置数据块应该被复制的份数 --> <property>   <name>dfs.replication</name>   <value>3</value> </property> <property>   <name>dfs.namenode.secondary.http-address</name>   <value>hadoop111:50090</value> </property> <!-- 完全分布式集群名称 --> <property>         <name>dfs.nameservices</name>         <value>mycluster</value> </property> <!-- 集群中 NameNode 节点都有哪些,这里是 nn1和nn2可自定义--> <property>         <name>dfs.ha.namenodes.mycluster</name>         <value>nn1,nn2</value>  </property>  <!-- nn1 的 RPC 通信地址 -->  <property>         <name>dfs.namenode.rpc-address.mycluster.nn1</name>         <value>hadoop110:9000</value> </property>  <!-- nn2 的 RPC 通信地址 -->  <property>         <name>dfs.namenode.rpc-address.mycluster.nn2</name>         <value>hadoop111:9000</value> </property>  <!-- nn1 的 http 通信地址 -->  <property>         <name>dfs.namenode.http-address.mycluster.nn1</name>         <value>hadoop110:50070</value> </property> <!-- nn2 的 http 通信地址 -->  <property>         <name>dfs.namenode.http-address.mycluster.nn2</name>         <value>hadoop111:50070</value> </property>  <!-- 指定 NameNode 元数据在 JournalNode 上的存放位置要把所有机器加进去 -->  <property>         <name>dfs.namenode.shared.edits.dir</name>         <value>qjournal://hadoop110:8485;hadoop111:8485;hadoop112:8485/mycluster</value> </property>  <!-- 配置隔离机制,即同一时刻只能有一台服务器对外响应 -->  <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>  <!-- 声明 journalnode 服务器存储目录-->  <property>         <name>dfs.journalnode.edits.dir</name>         <value>/opt/install/hadoop/data/jn</value> </property>  <!-- 关闭权限检查-->  <property>         <name>dfs.permissions.enable</name>         <value>false</value> </property>  <!-- 访问代理类:client,mycluster,active 配置失败自动切换实现方 式-->  <property>         <name>dfs.client.failover.proxy.provider.mycluster</name>         <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> 

注意修改完配置文件将这俩文件用scp命令全部发送到其他机器上

1.2 启动 HDFS-HA 集群

  • 1.在各个 JournalNode 节点上,输入以下命令启动 journalnode 服务: hadoop-daemon.sh start journalnode
  • 2.在[nn1]上,对其进行格式化,并启动,格式化只在第一次启动时需要以后不需要: hdfs namenode -format , hadoop-daemon.sh start namenode
  • 3.在[nn2]上,同步 nn1 的元数据信息,只在第一次启动时需要,以后不需要: hdfs namenode -bootstrapStandby
  • 4.启动[nn2]: hadoop-daemon.sh start namenode
  • 5.查看 web 页面显示,如下:
    hadoop高可用集群的搭建
    hadoop高可用集群的搭建
  • 6.在[nn1]上,启动所有 datanode : hadoop-daemons.sh start datanode
  • 7.将[nn1]切换为 Active : hdfs haadmin -transitionToActive nn1
  • 8.查看是否 Active :hdfs haadmin -getServiceState nn1,效果如下:
    hadoop高可用集群的搭建
  • 9.刷新hadoop110网页,效果如下:
    hadoop高可用集群的搭建

1.3 配置 HDFS-HA 自动故障转移

  • 1.在 hdfs-site.xml 中增加
<property>   	<name>dfs.ha.automatic-failover.enabled</name>   	<value>true</value>  </property>  
  • 2.在 core-site.xml 文件中增加
<property>   	<name>ha.zookeeper.quorum</name>   	<value>hadoop110:2181,hadoop111:2181,hadoop112:2181</value>  </property>  
  • 3.启动

  • 1)关闭所有 HDFS 服务: stop-dfs.sh

  • 2)启动 Zookeeper 集群,即在所有机器输入如下命令: zkServer.sh start

  • 3)初始化 HA 在 Zookeeper 中状态: hdfs zkfc -formatZK

  • 4)启动 HDFS 服务: start-dfs.sh

  • 5)在各个 NameNode 节点上启动 DFSZK Failover Controller,先在哪台机器启动,哪个机器的NameNode就是Active NameNode :
    hadoop-daemon.sh start zkfc,启动后如下:
    hadoop高可用集群的搭建
    hadoop高可用集群的搭建

  • 4.验证

  • 1)将 Active NameNode 进程 kill: kill -9 namenode 的进程 id

  • 2)将 Active NameNode 机器断开网络: service network stop

二、YARN-HA 配置

2.1 配置 YARN-HA 集群

  • 1.规划集群
hadoop110 hadoop111
ResourceManager ResourceManager
  • 2.yarn-site.xml 修改:
<!-- reducer获取数据方式 --> <property>     <name>yarn.nodemanager.aux-services</name>     <value>mapreduce_shuffle</value> </property> <!--启用 resourcemanager ha-->  <property>    <name>yarn.resourcemanager.ha.enabled</name>     <value>true</value>  </property>  <!--声明两台 resourcemanager 的地址-->  <property>         <name>yarn.resourcemanager.cluster-id</name>         <value>cluster-yarn1</value>  </property>  <property>     <name>yarn.resourcemanager.ha.rm-ids</name>     <value>rm1,rm2</value>  </property>  <property>          <name>yarn.resourcemanager.hostname.rm1</name>          <value>hadoop110</value>  </property>  <property>         <name>yarn.resourcemanager.hostname.rm2</name>         <value>hadoop111</value>  </property> <!--指定 zookeeper 集群的地址--> <property>         <name>yarn.resourcemanager.zk-address</name>         <value>hadoop110:2181,hadoop111:2181,hadoop112:2181</value> </property> <!--启用自动恢复--> <property>         <name>yarn.resourcemanager.recovery.enabled</name>         <value>true</value> </property> <!--指定 resourcemanager 的状态信息存储在 zookeeper 集群--> <property>         <name>yarn.resourcemanager.store.class</name>         <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value> </property> <!-- 日志聚集功能使用 --> <property>     <name>yarn.log-aggregation-enable</name>     <value>true</value> </property> <!-- 日志保留时间设置7天 --> <property>     <name>yarn.log-aggregation.retain-seconds</name>     <value>604800</value> </property> 

配置完用scp命令将文件发送到其他机器

  • 3.启动 yarn
  • 1)在 hadoop110 中执行:start-yarn.sh
  • 2)在 hadoop111 中执行:yarn-daemon.sh start resourcemanager
  • 3)查看服务状态: yarn rmadmin -getServiceState rm1,如下:
    hadoop高可用集群的搭建
区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » hadoop高可用集群的搭建

提供最优质的资源集合

立即查看 了解详情