1. HA服务器配置

对hdfs做高可用

1.1服务器详情

服务器:centos7

Hadoop:2.6.5

Jdk:1.8

共四台服务器

192.168.1.111 node1

192.168.1.112 node2

192.168.1.113 node3

192.168.1.114 node4

在每台服务器的/etc/hosts文件中添加上边四行内容

服务器分配

NN

DN

ZK

ZKFC

JN

RM

DM

Node1

1

1

1

1

Node2

1

1

1

1

1

1

Node3

1

1

1

1

Node4

1

1

1

Journalnode:需要为奇数个

Zookeeper:需要为奇数个

ZKFS和NN在同台服务器

DM和DN保持一致。

1.2配置免密登录

  • 在每台服务器分别生成各自的公钥私钥

  命令如下

  ssh-keygen –t rsa –P ‘’ –f  ~/.ssh/id_rsa

  此时查看 ~/.ssh目录下,会有两个文件,id_rsa(私钥)、id_rsa.pub(公钥)

  • 将id_rsa.pub文件内容拼接到每台服务器的~/.ssh/authorized_keys文件

  命令如下

  cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

  每台服务器都需要拼接四次,包括本节点及其它三个节点的,配置完成后,即可免密登录其它节点

1.3Hadoop配置

此处使用的hadoop版本为2.6.5

1.3.1  hadoop-env.sh

编辑/etc/hadoop/hadoop-env.sh文件

找到JAVA_HOME配置位置,修改JAVA_HOME如下

export JAVA_HOME= /home/java/jdk1.8.0_144

1.3.2 hdfs-site.xml(/etc/hadoop/hdfs-site.xml)

  • 配置nameservice
  1. <property>
  2. <name>dfs.nameservices</name>
  3. <value>mycluster</value>
  4. </property>
  • 再配置所有namenode的名字 
  1. <property>
  2. <name>dfs.ha.namenodes.mycluster</name>
  3. <value>nn1,nn2</value>
  4. </property>

注意:此处的mycluster和上边指定的服务名一致,nn1 nn2位两个namenode名称

  • 配置RPC协议的端口,两个namenode都要配置
  1. <property>
  2. <name>dfs.namenode.rpc-address.mycluster.nn1</name>
  3. <value>machine1.example.com:</value>
  4. </property>
  5. <property>
  6. <name>dfs.namenode.rpc-address.mycluster.nn2</name>
  7. <value>machine2.example.com:</value>
  8. </property>
  • 配置HTTP协议的端口和主机
  1. <property>
  2. <name>dfs.namenode.http-address.mycluster.nn1</name>
  3. <value>node1:</value>
  4. </property>
  5. <property>
  6. <name>dfs.namenode.http-address.mycluster.nn2</name>
  7. <value>node2:</value>
  8. </property>
  • 配置journalnode
  1. <!-- 配置journalnode -->
  2.  
  3. <property>
  4. <name>dfs.namenode.shared.edits.dir</name>
  5. <value>qjournal://node2:8485;node3:8485;node4:8485/mycluster</value>
  6. </property>

注意:此处的mycluster需要和服务名一样

  • 配置ConfiguredFailoverProxyProvider类,HDFS通过这个类来找到active的namenode
  1. <property>
  2. <name>dfs.client.failover.proxy.provider.mycluster</name>
  3. <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  4. </property>
  • 配置ssh fencing
  1. <property>
  2. <name>dfs.ha.fencing.methods</name>
  3. <value>sshfence</value>
  4. </property>
  5. <property>
  6. <name>dfs.ha.fencing.ssh.private-key-files</name>
  7. <value>/root/.ssh/id_rsa</value>
  8. </property>
  • 配置journalnode的工作目录
  1. <!--配置journalnode的工作目录-->
  2. <property>
  3. <name>dfs.journalnode.edits.dir</name>
  4. <value>/opt/journalnode/data</value>
  5. </property>
  • 开启自动切换(可选),手动切换也可用
  1. <!--开启自动切换(可选)-->
  2. <property>
  3. <name>dfs.ha.automatic-failover.enabled</name>
  4. <value>true</value>
  5. </property>

1.3.3 core-site.xml

  • 配置namenode入口
  1. <!--配置namenode入口-->
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://mycluster</value>
  5. </property>

注意:此处的mycluster需要和hdfs-site.xml文件中的nameservice名称一致

  • 配置zookeeper的集群,zookeeper所在的节点
  1. <!--配置zookeeper的集群-->
  2. <property>
  3. <name>ha.zookeeper.quorum</name>
  4. <value>node1:,node2:,node3:</value>
  5. </property>
  • 配置工作目录hadoop.tmp.dir  默认是在系统的临时目录下/tmp
  1. <!--配置hadoop的工作目录,默认在系统的临时目录下/tmp-->
  2. <property>
  3. <name>hadoop.tmp.dir </name>
  4. <value>/opt/hadoop2</value>
  5. </property>

1.3.4 slaves配置datanode

node2

node3

node4

不需要配master了,因为没有secondarynamenode,journalnode替代了它

2启动hdfs

  • 先将zookeeper启动起来 ./zkServer.sh start
  • 必须先启动journalnode

  需要在node2、3、4启动journalnode

  命令 ./hadoop-daemon.sh start  journalnode

  • 在任意一个namenode上格式化

  在node1上格式化namenode

  ./hdfs namenode –format

  注意centos关闭防火墙一定要用systemctl stop firewalld

  格式化后,在/opt/hadoop2下就会有元数据文件了

  • 将node1上的元数据文件拷贝到node2中

    • 必须先启动node1中的namenode

      ./hadoop-daemon.sh start namenode

    • 在没有格式化namenode的节点上(node2)上执行命令

      ./hdfs namenode –bootstrapStandby

    命令成功执行后,在/opt/hadoop2/下就会有元数据文件了

  • 格式化zk,在任意一台namenode节点上
  1.   hdfs zkfc -formatZK
  • 停止hdfs

  ./stop-dfs.sh

  会停止除了zookeeper之外的所有进程

  • 启动hdfs

  ./start-dfs.sh

  1. [root@localhost sbin]# ./start-dfs.sh
  2.  
  3. Starting namenodes on [node1 node2]
  4.  
  5. node2: starting namenode, logging to /home/hadoop/hadoop-2.6./logs/hadoop-root-namenode-node2.out
  6.  
  7. node1: starting namenode, logging to /home/hadoop/hadoop-2.6./logs/hadoop-root-namenode-node1.out
  8.  
  9. node4: starting datanode, logging to /home/hadoop/hadoop-2.6./logs/hadoop-root-datanode-node4.out
  10.  
  11. node3: starting datanode, logging to /home/hadoop/hadoop-2.6./logs/hadoop-root-datanode-localhost.out
  12.  
  13. node2: starting datanode, logging to /home/hadoop/hadoop-2.6./logs/hadoop-root-datanode-node2.out
  14.  
  15. Starting journal nodes [node2 node3 node4]
  16.  
  17. node4: starting journalnode, logging to /home/hadoop/hadoop-2.6./logs/hadoop-root-journalnode-node4.out
  18.  
  19. node3: starting journalnode, logging to /home/hadoop/hadoop-2.6./logs/hadoop-root-journalnode-localhost.out
  20.  
  21. node2: starting journalnode, logging to /home/hadoop/hadoop-2.6./logs/hadoop-root-journalnode-node2.out
  22.  
  23. Starting ZK Failover Controllers on NN hosts [node1 node2]
  24.  
  25. node2: starting zkfc, logging to /home/hadoop/hadoop-2.6./logs/hadoop-root-zkfc-node2.out
  26.  
  27. node1: starting zkfc, logging to /home/hadoop/hadoop-2.6./logs/hadoop-root-zkfc-node1.out
  28.  
  29. [root@localhost sbin]# jps
  30.  
  31. Jps
  32.  
  33. DFSZKFailoverController
  34.  
  35. QuorumPeerMain
  36.  
  37. NameNode
  • 启动成功

  http://192.168.1.111:50070/

  http://192.168.1.112:50070/

会发现有一个是active  一个是standby

  • 测试

  在hdfs新建一个路径,上传文件

  ./hdfs dfs -mkdir -p /usr/file

  ./hdfs dfs -put /home/java/jdk-8u144-linux-x64.tar.gz /usr/file/

3.配置mapreduce

3.1 mapred-site.xml

  1. <property>
  2. <name>mapreduce.framework.name</name>
  3. <value>yarn</value>
  4. </property>

3.2 yarn-site.xml

  1. <!--resourcemanager在哪台服务器上-->
  2. <property>
  3. <name>yarn.resourcemanager.hostname</name>
  4. <value>node1</value>
  5. </property>
  6. <property>
  7. <name>yarn.nodemanager.aux-services</name>
  8. <value>mapreduce_shuffle</value>
  9. </property>
  10. <property>
  11. <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  12. <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  13. </property>

4.全面启动

  • 需要先将hdfs停掉

  在node1上./stop-dfs.sh

  • 全面启动

  Node1上 ./start-all.sh

jps查看进程

[root@node1 sbin]# jps

6977 NameNode

7603 Jps

3302 QuorumPeerMain

7244 DFSZKFailoverController

7327 ResourceManager

启动成功。

Hadoop-HA配置详细步骤的更多相关文章

  1. OPGL+GLFW+GLEW配置详细步骤

    转载自:https://blog.csdn.net/weixin_40921421/article/details/80211813 本文设计的工具包: 链接:https://pan.baidu.co ...

  2. OPGL+VS2017+GLFW+GLEW配置详细步骤

    OPGL+VS2017+GLFW+GLEW配置详细步骤: https://blog.csdn.net/weixin_40921421/article/details/80211813 原博客地址:ht ...

  3. Apollo 配置详细步骤(Windows环境)

    一. 准备工作 1.下载 apollo 安装包 下载链接:http://activemq.apache.org/apollo/download.html 2.下载 JavaJDK 安装包 ( apol ...

  4. CentOS Hadoop安装配置详细

    总体思路,准备主从服务器,配置主服务器可以无密码SSH登录从服务器,解压安装JDK,解压安装Hadoop,配置hdfs.mapreduce等主从关系. 1.环境,3台CentOS7,64位,Hadoo ...

  5. 【Hadoop】Hadoop HA 部署 详细过程(架构、机器规划、配置文件、部署步骤)

    1.概念.架构 2.配置文件示例.部署步骤 hadoop2.0已经发布了稳定版本了,增加了很多特性,比如HDFS HA.YARN等.最新的hadoop-2.4.1又增加了YARN HA 注意:apac ...

  6. hadoop HA 配置 + zookeeper 服务注册

    环境测试 6台机器 centos6.7 x64 master ( namenode/cluster ) 10.10.100.101 namenode1 10.10.100.105 namenode2 ...

  7. PERC H310 配置详细步骤【阵列RAID创建】【阵列恢复】【阵列池创建】

    机器配置: HP PRO6300 二手淘的201912,HP的主板芯片Intel Q75芯片组,集成显卡(集成显卡与H310阵列卡冲突),CPU Intel I5 3450 [raid5阵列创建] 1 ...

  8. Oracle Stream配置详细步骤

    1 引言 Oracle Stream功能是为提高数据库的高可用性而设计的,在Oracle 9i及之前的版本这个功能被称为Advance Replication.Oracle Stream利用高级队列技 ...

  9. lab_0 清华大学ucore实验环境配置详细步骤!(小白入)

    实验步骤 1.下载项目 从github上 的https://github.com/kiukotsu/ucore下载 ucore lab实验: git clone https://github.com/ ...

随机推荐

  1. 用第三方下载工具下载官方XCode独立安装包的方法

    用第三方下载工具下载官方XCode独立安装包的方法 下载步骤 下载 aria2 工具配置好并启动 (利用其支持配置Cookie并多线程下载的功能.而迅雷则不支持设置Cookie,所以不支持这种需要登录 ...

  2. rbg大神的主页

    http://www.rossgirshick.info/ Ross Girshick (rbg)Research ScientistFacebook AI Research (FAIR) r...@ ...

  3. mac eclipse 删除不用的workspace

    file--->switch workspace---->other 点击 recent workspace--->选中删除即可

  4. oracle中位图索引和B-tree索引的区别

    1.适用系统的不同:位图索引适合OLAP系统,而B-tree索引适合OLTP系统. 2.占用存储空间不同:位图索引只需要很小的存储空间,而B-tree索引需要占用很大的存储空间. 3.创建需要的时间不 ...

  5. Highways - poj 2485 (Prim 算法)

      Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 24383   Accepted: 11243 Description T ...

  6. PMD:Java源代码扫描器

    PMD是一个开源代码分析器.可以查找常见编程缺陷,比如未使用的变量.空catch代码块.不必要的对象创建等.支持Java.JavaScript.PLSQL.Apache Velocity.XML.XS ...

  7. linux VI模式下批量修改文件内容

    1.         :s/vivian/sky/ 替换当前行第一个 vivian 为 sky            :s/vivian/sky/g 替换当前行所有 vivian 为 sky 2.   ...

  8. CentOS 6.4 yum安装LAMP环境

    一.制作连外网的yum源文件 1.  centOS安装完成时是默认存在的,不需要做任何操作,可以直接使用yum 命令进行操作, 默认是在 /etc/yum.repos.d/目录下的 2. 如果你因为制 ...

  9. 在express项目中使用redis

    在express项目中使用redis 准备工作 安装redis 安装redis桌面管理工具:Redis Desktop Manager 项目中安装redis:npm install redis 开始使 ...

  10. Unity框架入门

    介绍Unity框架之前,先要说几个概念DIP依赖倒置原则.IOC控制反转.DI依赖注入 DIP是设计原则之一,定义:上层不应该依赖于底层,两者都依赖于抽象: 抽象不依赖于细节,细节应该依赖于抽象. 像 ...