HadoopHA搭建

news2024/11/17 9:43:33

主机设置

三台主机关闭防火墙

三台主机关闭SeLinux安全机制 

给每台主机修改主机名 

配置三台主机地址映射

设置免密登录

安装JDK

解压安装

配置jdk的环境变量 

 测试安装成功

分发JDK  

分发配置文件 

ZooKeeper配置 

解压安装

添加ZK环境变量 

分发文件

 启动

 安装配置 Hadoop

解压安装

修改hadoop-env.sh文件 

修改Hadoop配置文件core-site.xml 

HDFS 配置文件hdfs-site.xml 

  MapReduce 配置文件 mapred-site.xml

YARN 配置文件yarn-site.xml 

配置worekers

分发配置好的Hadoop 

进行初始化 

主机设置

三台主机关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

三台主机关闭SeLinux安全机制 

vi /etc/sysconfig/selinux

 将enforcing改为disabled

给每台主机修改主机名 

        分别修改为master、slave1、slave2

hostnamectl set-hostname 主机名

配置三台主机地址映射

vi /etc/hosts

 设置免密登录

mkdir /root/.ssh
touch /root/.ssh/authorized_keys
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys
cd /root/.ssh

        master免密登录master、slave1和slave2

生成秘钥对 

ssh-keygen -t rsa

        输入连敲3次回车

拷贝三台主机公钥 

ssh-copy-id root@主机名

免密登录

#登录
ssh 主机名
#登出
exit

安装JDK

解压安装

        解压安装包到opt目录下

tar -zxvf jdk-8u162-linux-x64.tar.gz -C /opt/

        修改目录名 

mv jdk1.8.0_162 jdk1.8

 

配置jdk的环境变量 

vi /etc/profile
export JAVA_HOME=/opt/module/jdk
export PATH=$PATH:$JAVA_HOME/bin

保存配置 

source /etc/profile

 测试安装成功

java -version

分发JDK  

module]# scp -r /opt/module/jdk/ root@slave1:/opt/module/
module]# scp -r /opt/module/jdk/ root@slave2:/opt/module/

分发配置文件 

scp -r /etc/profile root@slave1:/etc
scp -r /etc/profile root@slave2:/etc
source /etc/profile

ZooKeeper配置 

解压安装

解压

tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt

改名 

mv apache-zookeeper-3.5.7-bin zookeeper-3.5.7

在根目录下创建两个文件夹 

mkdir zlogs
mkdir zdata

配置zoo.cfg文件,在解压后的ZooKeeper目录中找到 conf 目录,复制一份 zoo_sample.cfg 并重命名为 zoo.cfg,修改 zoo.cfg 配置文件中的以下配置项:

cp zoo_sample.cfg zoo.cfg
vi zoo.cfg 

添加:

dataDir=/opt/module/zookeeper/zdata
dataLogDir=/opt/module/zookeeper/zlogs

server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

添加ZK环境变量 

vi /etc/profile

 添加如下:

export ZK_HOME=/opt/module/zookeeper
export PATH=$PATH:$JAVA_HOME/bin:$ZK_HOME/bin

 保存配置环境

source /etc/profile

分发文件

scp -r /opt/module/zookeeper/ root@slave1:/opt/module/
scp -r /opt/module/zookeeper/ root@slave2:/opt/module/
scp -r /etc/profile root@slave1:/etc
scp -r /etc/profile root@slave2:/etc
source /etc/profile

配置 myid:填写上面 server.x 中对应的数字 x,如:1、2、3。每个机子都不一样,

        只需要填写一个数字即可。但是这个数字非常重要,必须保证它的唯一性和正确性,否则可能导致集群运行出现问题。 

在分发的每个zookeeper-3.5.7/data的目录下面创建myid文件 

vim myid

文件内填写规则

master中填1

slave1填2

slave2填3

 启动

zkServer.sh start

注意:集群的每台都需要启动这个命令 

        所有节点上启动ZooKeeper服务,以便加入到集群中。

        这段日志输出表示ZooKeeper服务已经成功启动,并且JMX功能也已经默认开启。 

确认集群中所有节点的信息,以确保它们之间已经建立了有效的连接。可以使用如下命令查看: 

zkServer.sh status

        显示Mode: follower就代表已经正常启动了

 安装配置 Hadoop

解压安装

        解压

tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module

       添加hadoop环境变量

vi /etc/profile
export HADOOP_HOME=/opt/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

        注意:另外两台主机也要进行相应的环境变量设置

 保存配置环境

source /etc/profile

 测试安装成功

hadoop version

修改hadoop-env.sh文件 

cd $HADOOP_HOME/etc/hadoop
vi hadoop-env.sh

写入如下: 

export JAVA_HOME=/opt/module/jdk
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
export HDFS_SECONDARYNAMENODE_USER=root
HDFS_NAMENODE_USER=root
HDFS_DATANODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
YARN_RESOURCEMANAGER_USER=root
YARN_NODEMANAGER_USER=root

修改Hadoop配置文件core-site.xml 

vi core-site.xml
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://mycluster</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
  <value>/opt/module/hadoop-3.1.3/data/tmp</value>
</property>

<property>  
<name>ha.zookeeper.quorum</name>        
 <value>master:2181,slave1:2181,slave2:2181</value>
</property>

HDFS 配置文件hdfs-site.xml 

vi hdfs-site.xml
<property>
  <name>dfs.nameservices</name>
  <value>mycluster</value>
</property>
<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>master:9868</value>
</property>
<property>
  <name>dfs.replication</name>
  <value>3</value>
</property>
<property>
  <name>dfs.ha.fencing.methods</name>
  <value>
    sshfence
    shell(/bin/true)
  </value>
</property>
<property>
  <name>dfs.ha.namenodes.mycluster</name>
  <value>nn1,nn2</value>
</property>
<property>
  <name>dfs.namenode.rpc-address.mycluster.nn1</name>
  <value>master:8020</value>
</property>
<property>
  <name>dfs.namenode.rpc-address.mycluster.nn2</name>
  <value>slave1:8020</value>
</property>
<property>
  <name>dfs.namenode.http-address.mycluster.nn1</name>
  <value>master:9870</value>
</property>
<property>
  <name>dfs.namenode.http-address.mycluster.nn2</name>
  <value>slave1:9870</value>
</property>
<property>
  <name>dfs.namenode.shared.edits.dir</name>
 <value>qjournal://master:8485;slave1:8485;slave2:8485/mycluster</value>
</property>
<property>
  <name>dfs.ha.automatic-failover.enabled</name>
  <value>true</value>
</property>
<property>
  <name>dfs.journalnode.edits.dir</name>
  <value>/opt/module/hadoop-3.1.3/data/journal/</value>
</property>
<property>
  <name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>

  MapReduce 配置文件 mapred-site.xml

vi mapred-site.xml
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>

YARN 配置文件yarn-site.xml 

vi yarn-site.xml
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.resourcemanager.ha.enabled</name>
    <value>true</value>
  </property>
  <property>
    <name>yarn.resourcemanager.cluster-id</name>
    <value>yarn-cluster</value>
  </property>
  <property>
    <name>yarn.resourcemanager.ha.rm-ids</name>
    <value>rm1,rm2</value>
  </property>
  <property>
    <name>yarn.resourcemanager.hostname.rm1</name>
    <value>master</value>
  </property>
<property>
    <name>yarn.resourcemanager.hostname.rm2</name>
    <value>slave1</value>
  </property>
  <property>
  <name>yarn.resourcemanager.zk-address</name>
  <value>master:2181,slave1:2181,slave2:2181</value>
</property>
<property>
    <name>yarn.resourcemanager.recovery.enabled</name>
    <value>true</value>
</property>
<property>
    <name>yarn.resourcemanager.ha.enabled</name>
    <value>true</value>
</property>

配置worekers

vi workers
master
slave1
slave2

分发配置好的Hadoop 

scp -r /opt/module/hadoop-3.1.3/ root@slave1:/opt/module/
scp -r /opt/module/hadoop-3.1.3/ root@slave2:/opt/module/
scp -r /etc/profile root@slave1:/etc
scp -r /etc/profile root@slave2:/etc
source /etc/profile

每个节点需要先启动journalnode 

hadoop-daemon.sh start journalnode

进行初始化 

hdfs namenode -format

格式化zkfc 

hdfs zkfc -formatZK

 将已格式化的namenodetmp目录传给另一个namenode 

scp -r /opt/module/hadoop-3.1.3/ root@slave1:/opt/module/

启动hadoop集群

start-all.sh

查看nn2的进程状态

 hdfs haadmin -getServiceState nn2

查看rm2的进程状态

yarn rmadmin -getServiceState rm2

查看slave1的进程

输入以下命令可以任意切换standby和active的角色

 hdfs haadmin -failover slave1 master

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/692485.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis基础第一篇

一 简介 redis是一个key-value存储系统。和Memcached类似&#xff0c;它支持存储的value类型相对更多&#xff0c;包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash&#xff08;哈希类型&#xff09;。这些数据类型都支持push/pop、add/remove及…

【Python基础函数笔记】random.shuffle()

官方文档&#xff1a;random --- 生成伪随机数 — Python 3.10.11 文档 import random a[[sunny123.com,sunny],[zhangsanjust.cn.com,zhangsan],[lisijust.cn.com,lisi],[wangwujust.cn.com,wangwu]] random.shuffle(a) print(a)random.shuffle()用来打乱列表的。

ubuntu20下安装网络调试助手

1、下载安装包 链接&#xff1a;https://pan.baidu.com/s/1g-IzsYBuicxiRaeo4aNyqw?pwd35wm 提取码&#xff1a;35wm --来自百度网盘超级会员V6的分享 2、安装依赖文件 sudo add-apt-repository ppa:rock-core/qt4 sudo apt install libqt4-declarative 3、安装网络调试工…

如何在 SOLIDWORKS 工程图中显示金折弯线?

今天我们将展示使用多种方法可以使钣金折弯线在SOLIDWORKS工程图中显示&#xff08;或不显示&#xff09;。 在哪里可以找到弯曲线 首先&#xff0c;我们需要知道弯曲线存储/创建/保存的位置。在使用钣金工具生成的零件中&#xff0c;折弯线存储在展开模式特征中。显示/隐藏和…

差值结构的基态和跃迁

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点&#xff0c;AB训练集各由5张二值化的图片组成&#xff0c;让差值结构中有6个1, 行分布是0&#xff0c;1&#xff0c;1&#xff0c;2&#xff0c;2列分布是4&#xff0c;2. 得到数据 差值结构 A-B 迭代次数 共…

win10笔记本电脑总是自动休眠解决办法

1、运行regedit&#xff0c;进入注册表编辑器&#xff1b; 2、在打开的注册表编辑器左侧定位到&#xff1a;计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0&…

软件测试必问的十道面试题

前言 &#xff08;第一个就刷掉一大批人&#xff09; 有很多“会自动化”的同学来咨询技术问题&#xff0c;他总会问到我一些元素定位的问题。元素定位其实都不算自动化面试的问题。 一般我都会问&#xff1a;你是定位不到吗&#xff1f;通常结果都是说确实定位不到。 做自…

100种思维模型之冗余备份系统思维模型-84

冗余备份系统思维&#xff0c;源于工程学&#xff0c;它指的是利用并联模型来提高系统可靠性&#xff0c;即通过备份或者自动防故障设备、措施来应对意外情况。 生活中&#xff0c;我们常说的Plan B、备胎计划等就是一种冗余备份。 01、何谓冗余备份系统思维模型 一、冗余备份…

C++primer(第五版)第三章(字符串、向量和数组)

本章主要介绍了字符串和vector以及数组&#xff0c;但是vector和数组差不多甚至比数组更加强大&#xff0c;完全可以用vector来代替数组&#xff0c;所以尽管书中有介绍数组&#xff0c;但我也不过多记录&#xff0c;有兴趣的小伙伴可以自行查看原书。 3.1命名空间的using声明…

MySQL-SQL InnoDB引擎 (上)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xf…

使用VuePress生成静态网站并部署到github

目录 第一步 安装VuePress第二步 书写博客第二步 部署到github 第一步 安装VuePress VuePress是一个基于Vue驱动的静态网站生成器 相关资料 文档&#xff1a;https://v1.vuepress.vuejs.org/zh/github: https://github.com/vuejs/vuepressvuepress-deploy: https://github.c…

在 CentOS 7/8 上安装 NVIDIA Container Toolkit

文章目录 设置存储库和 GPG 密钥更新包列表后安装 nvidia-container-toolkit 包&#xff08;和依赖项&#xff09;配置 Docker 守护进程以识别 NVIDIA 容器运行时设置默认运行时后&#xff0c;重新启动 Docker 守护进程以完成安装测试 参考官方文档&#xff0c;在 CentOS 7 上…

测试用例设计简单吗?简单!但你有可能栽在这5道S级测试用例设计题上!(附答案)

很多人不知道写测试用例有什么用&#xff0c;而仅仅是像工具人一样&#xff0c;在每次提测之前&#xff0c;把测试用例照着需求文档抄一遍&#xff0c;仿佛像是走个过场。 开发提测之后&#xff0c;就照着测试用例点点点&#xff0c;可能一天就走完用例了&#xff0c;开发代码写…

Spring专家课程Day01_Spring-IOC

​ 文章目录 基础配置1)基础文件结构(Maven项目创建) 一、01_Spring概述_IOC_HelloWorld1.Spring框架的两个核心功能1.1) IOC/DI ,控制反转依赖注入!1.2) AOP,面向切面编程 2.IOC的两种模式2.1)配置文件中配置 Bean2.2)配置文件,组件扫描注解类注解Component 二、02_JavaBean_J…

数睿通2.0功能发布—集成Doris、数仓动态配置、质量任务完善、接入速度优化

文章目录 引言集成 Doris数仓动态配置质量任务完善接入速度优化结语 引言 数睿通 2.0 数据中台迎来了 6 月份的更新&#xff0c;本次更新集成了 Doris 数据库&#xff0c;可用于数据集成&#xff0c;数据开发等模块。过去数仓使用的是 TiDB&#xff0c;新版本可以根据自身需求…

记一次移动九联UNT401H电视盒子免拆刷机(图文详细教程 附所有软件)

文章目录 1.准备1.硬件介绍2.刷机硬件3.相关软件1.刷机软件2.工具软件 2.刷机1.开启adb2.查看IP地址3.写入recovery4.刷入系统 3.系统使用1.首次启动2.安装第三方软件安装blibili tv看IPTV 4.总结附&#xff1a; 声明&#xff1a;本安卓固件&#xff0c;仅供内部测试和技术交流…

vue element UI在button按钮使用 @keyup.enter不生效

如图所示&#xff0c;没效果。在按钮上绑定keyup事件&#xff0c;加上.native覆盖原有封装的keyup事件 解决办法 created () {document.onkeyup e > {if (e.keyCode 13 && e.target.baseURI.match(/login/)) {// 调用登录 验证方法this.submitForm()}}}成功解决&…

Java 使用hutool工具进行导出excel表格(代码很简单)

1.先引入hutool的相关依赖 <!--hutool--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.4</version></dependency><dependency><groupId>org.apache.poi</…

【youcans动手学模型】SqueezeNet 模型-CIFAR10图像分类

欢迎关注『youcans动手学模型』系列 本专栏内容和资源同步到 GitHub/youcans 【youcans动手学模型】SqueezeNet 模型-CIFAR10图像分类 1. SqueezeNet 卷积神经网络模型1.1 模型简介1.2 论文介绍1.3 分析与讨论 2. 在 PyTorch 中定义 SqueezeNet 模型类2.1 定义 Fire Module2.2 …

少有人告诉你!工科硕士对应届生的肺腑之言!

自己是电子信息工科硕士狗一枚&#xff0c;自认为毕业于985院校还可以。刚毕业时&#xff0c;去了一家世界500强公司&#xff0c;校招签约时只说是“技术岗”&#xff0c;没有指定具体岗位。等待毕业的时间里&#xff0c;对新公司、新岗位充满了无限的期待&#xff0c;认为自己…