首页 > 其他分享 >Hadoop HA部署

Hadoop HA部署

时间:2023-12-31 17:22:06浏览次数:29  
标签:opt 部署 Hadoop module hadoop etc export HA

实现Hadoop高可用性部署

Hadoop High Availability(HA)是一种设计模式,用于确保在Hadoop分布式文件系统(HDFS)和资源管理器(ResourceManager)等关键组件中发生故障时,系统能够继续提供服务。HA的目标是减小单点故障对系统可用性的影响,使Hadoop集群在面临硬件故障或其他问题时能够保持稳定运行。

Hadoop是一个用于分布式存储和处理大规模数据的框架。在生产环境中,确保Hadoop集群的高可用性是至关重要的。本文将介绍如何配置Hadoop的高可用性(HA)部署。

准备工作

• JDK

• ZooKeeper

配置ZooKeeper

1、解压

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

2、配置环境变量

vi /etc/profile

export ZOOKEEPER_HOME=/opt/module/apache-zookeeper-3.5.7-bin
export PATH=$PATH:$ZOOKEEPER_HOME/bin

source /etc/profile

3、编辑zoo.cfg文件

在ZooKeeper的配置文件中指定集群中的每个节点和端口。

cd /opt/module/apache-zookeeper-3.5.7-bin/conf/

cp zoo_sample.cfg zoo.cfg

vi zoo.cfg

# 对照添加或修改以下内容
tickTime=2000
dataDir=/opt/module/apache-zookeeper-3.5.7-bin/zkdata     #zkdata需要自行创建
clientPort=2181
initLimit=5
syncLimit=2
server.1=bigdata1:2888:3888
server.2=bigdata2:2888:3888
server.3=bigdata3:2888:3888

4、配置myid

cd /opt/module/apache-zookeeper-3.5.7-bin
# 创建zkdata
mkdir zkdata
cd zkdata

echo 1 > myid

5、分发

# 分发环境变量
scp /etc/profile bigdata2:/etc/profile
scp /etc/profile bigdata2:/etc/profile
# 分发zookeeper
scp -r /opt/module/apache-zookeeper-3.5.7-bin/ bigdata2:/opt/module/
scp -r /opt/module/apache-zookeeper-3.5.7-bin/ bigdata3:/opt/module/

分发完成以后,刷新一下从节点的环境变量,并修改从节点的myid配置,将其修改为2、3,三台机子的myid不可重复。

6、启动zookeeper

# 三台机子同时启动
zkServer.sh start
# 查看状态
zkServer.sh status

Hadoop HA部署

1、解压

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

2、配置环境变量

vi /etc/profile

export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export HDFS_JOURNALNODE_USER=root
export HDFS_ZKFC_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

source /etc/profile

3、修改配置文件

♦ 修改hadoop-env.sh文件

cd $HADOOP_HOME/etc/hadoop

vi hadoop-env.sh

export JAVA_HOME=/opt/module/jdk1.8.0_212

♦ 修改core-site.xml文件

# 这个配置项定义了 Hadoop 中的默认文件系统。
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://mycluster</value>
</property>
# 此配置项指定了 Hadoop 运行时使用的临时目录。
<property>
  <name>hadoop.tmp.dir</name>
  <value>/opt/module/hadoop-3.1.3/tmp</value>
</property>
# 此配置项用于配置 Hadoop 的高可用性设置中所使用的 ZooKeeper 服务器的地址。
<property>
<name>ha.zookeeper.quorum</name>
 <value>bigdata1:2181,bigdata2:2181,bigdata3:2181</value>
</property>

♦ 修改hdfs-site.xml文件

# 定义HDFS集群的名称服务名称
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
# 定义HDFS集群中名字节点的ID,这里是nn1和nn2
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>
# 指定了nn1和nn2名字节点的RPC地址。
<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>
# 指定了nn1和nn2名字节点的HTTP地址。
<property>
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>master:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.mycluster.nn2</name>
<value>slave1:50070</value>
</property>
# 指定了共享编辑日志的目录。
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://master:8485;slave1:8485;slave2:8485/cluster</value>
</property>
# 定义了一个类,用于为HDFS客户端提供故障转移(failover)代理。
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</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>
# 启用或禁用自动故障转移。
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>

♦ 修改mapred-site.xml文件

<property>
   <name>mapreduce.framework.name</name>
   <value>yarn</value>
</property>

♦ 修改yarn-site.xml文件

# 启用或禁用 ResourceManager 的高可用性(High Availability)。
<property>
   <name>yarn.resourcemanager.ha.enabled</name>
   <value>true</value>
 </property>
 # 定义 YARN 集群的唯一标识符。
 <property>
   <name>yarn.resourcemanager.cluster-id</name>
   <value>cluster1</value>
 </property>
 # 定义了 ResourceManager 的标识符,这里是 rm1 和 rm2。
 <property>
   <name>yarn.resourcemanager.ha.rm-ids</name>
   <value>rm1,rm2</value>
 </property>
 # 定义了 rm1 和 rm2 ResourceManager 的主机名(或 IP 地址)。
 <property>
   <name>yarn.resourcemanager.hostname.rm1</name>
   <value>master</value>
 </property>
 <property>
   <name>yarn.resourcemanager.hostname.rm2</name>
   <value>slave1</value>
 </property>
 # 指定了用于 ResourceManager HA 的 Apache ZooKeeper 服务器的地址。
 <property>
   <name>yarn.resourcemanager.zk-address</name>
   <value>master:2181,slave1:2181,slave2:2181</value>
 </property>
# 启用或禁用 NodeManager 对物理内存的检查。
<property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
</property>
# 启用或禁用 NodeManager 对虚拟内存的检查。
<property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
</property>


♦ 修改workers文件

bigdata1
bigdata2
bigdata3

4、分发

# 分发环境变量
scp /etc/profile bigdata2:/etc/profile
scp /etc/profile bigdata2:/etc/profile
# 分发hadoop
scp -r /opt/module/hadoop-3.1.3/ bigdata2:/opt/module/
scp -r /opt/module/hadoop-3.1.3/ bigdata3:/opt/module/

5、格式化

# 每个节点需要先启动journalnode 
hadoop-daemon.sh start journalnode

# 格式化zkfc
hdfs zkfc -formatZK

# 格式化hadoop 
hadoop namenode -format

6、启动Hadoop并查看进程

start-all.sh

# 查看nn2的进程状态
 hdfs haadmin -getServiceState nn2
# 查看rm2的进程状态
 yarn rmadmin -getServiceState rm2
# 在三台节点查看进程
 jps

标签:opt,部署,Hadoop,module,hadoop,etc,export,HA
From: https://www.cnblogs.com/zyanch/p/17937754

相关文章

  • 【C 语言基础】get四子——getc()、getchar()、getch() 和 getche() 的区别
    所有这些函数都从输入中读取一个字符并返回一个整数值。返回整数以容纳用于指示失败的特殊值。EOF值通常用于此目的。1.getc()    它从给定的输入流中读取单个字符,并在成功时返回相应的整数值(通常是读取字符的ASCII值)。失败时返回EOF。    语法:intgetc(FILE*stream)......
  • 无涯教程-Java 正则 - Matcher reset(CharSequence input)函数
    java.util.regex.Matcher.reset(CharSequenceinput)方法使用新的输入序列重置此匹配器。Matcherreset-声明publicMatcherreset(CharSequenceinput)input - 新的输入字符序列。Matcherreset-返回值这个匹配器。Matcherreset -示例下面的示例显示java.uti......
  • P2898 [USACO08JAN] Haybale Guessing G 题解
    题目传送门前置知识二分答案|并查集解法对条件的合法性判断其他题解已经讲得很明白了,这里不再赘述。这里主要讲一下用并查集实现黑白染色问题。以下内容称被覆盖为黑色,不被覆盖为白色。本题因为是单向染色,即从白到黑,故可类似luoguP1840ColortheAxis和D的并查集或......
  • Oracle数据库统计信息_执行计划_sharedpool等的知识梳理
    Oracle数据库统计信息_执行计划_sharedpool等的知识梳理背景最近有项目出现了年底业务量增加时卡顿的情况.同事多次发现执行SQL缓慢.但是重新执行统计信息更新后问题就优化的现象.12月份上半月解决测试环境的SQLServer卡顿时基本上也是这个套路重建索引,添加必要索引的方......
  • Scrapy部署相关
    安装scrapyd服务pipinstallscrapyd-ihttps://pypi.tuna.tsinghua.edu.cn/simple官方文档安装pipinstallscrapyd-client官方文档scrapy-deploy部署建setup.pyfromsetuptoolsimportsetup,find_packagessetup(name='project',version='1.0'......
  • Keras and Transfer Learning: Harnessing PreTrained Models for Your Projects
    1.背景介绍Keras是一个开源的深度学习框架,由Google的TensorFlow团队开发。它提供了许多预训练的模型,可以用于各种项目。在这篇文章中,我们将讨论Keras和传输学习的基本概念,以及如何利用预训练模型来完成自己的项目。传输学习是一种机器学习方法,它涉及到在一种任务上训练的模......
  • Hazelcast 的事务处理与一致性保证
    1.背景介绍在现代分布式系统中,事务处理和一致性保证是非常重要的问题。Hazelcast是一个高性能的分布式计算平台,它提供了一种高效的事务处理和一致性保证机制。在这篇文章中,我们将深入探讨Hazelcast的事务处理和一致性保证机制,并分析其核心概念、算法原理、实现细节以及未来发展......
  • Attention Mechanisms in Speech Synthesis: A Revolution in Voice Technology
    1.背景介绍自从深度学习技术在语音合成领域取得了显著的进展,语音合成技术的发展得到了重大的推动。在这一过程中,注意力机制(AttentionMechanisms)发挥了关键作用,为语音合成技术提供了新的思路和方法。本文将从多个角度深入探讨注意力机制在语音合成中的应用和影响。1.1语音合成的发......
  • PyCharm 中执行命令提示 command not found(终端运行appium正常)
    前提本地终端中执行adb或者其它命令是ok的复制本地的$PATH值打开终端或者iTerm执行命令echo$PATH 打开PyCharm替换下PyCharm中的$PATH值即可(EditConfigurations-->Environmentvariables)  PATH换成appium的安装路径#查看路径,终端运行whichappium 正......
  • Charles如何打断点
    1)点击pxoey->breakpointsettings2)添加要抓取的网页信息保存3)打开charles断点4)页面触发请求,找到对应的请求5)勾选breakpoints6)修改响应内容eg:修改错误码,修改完成后,点击"Execute"7)修改完成ps:测试完成后,记得关闭断点......