首页 > 其他分享 >Hadoop高可用搭建

Hadoop高可用搭建

时间:2024-11-04 19:19:44浏览次数:1  
标签:可用 hadoop dfs Hadoop sh master node1 namenode 搭建

搭建前准备(检查是否满足以下条件)

1、关防火墙

service firewalld stop

2、时间同步

yum install ntp
ntpdate -u s2c.time.edu.cn
或者
date -s 20180503

3、免密钥 (远程执行命令)

在两个主节点生成密钥文件
ssh-keygen -t rsa
ssh-copy-id ip

master-->master,node1,node2
node1-->master,node1,node2

4、停止hadoop集群

stop-all.sh

开始搭建

1、修改hadoop配置文件

修改配置文件中的以下内容,复制的时候注意修改成自己的主机名和ip地址

vim core-site.xml
<configuration>
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://cluster</value>
	</property>
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/usr/local/soft/hadoop-3.1.2/tmp</value> 
	</property>
	<property>
		<name>fs.trash.interval</name>
		<value>1440</value>
	</property>
	<property>
	      <name>ha.zookeeper.quorum</name>
	      <value>master:2181,node1:2181,node2:2181</value>
	</property>
</configuration>
vim hdfs-site.xml
<configuration>
<!-- 指定hdfs元数据存储的路径 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/soft/hadoop-3.1.2/data/namenode</value>
</property>

<!-- 指定hdfs数据存储的路径 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/soft/hadoop-3.1.2/data/datanode</value>
</property>

<!-- 数据备份的个数 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>

<!-- 关闭权限验证 -->
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>

<!-- 开启WebHDFS功能(基于REST的接口服务) -->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>

<!-- //////////////以下为HDFS HA的配置////////////// -->
<!-- 指定hdfs的nameservices名称为mycluster -->
<property>
<name>dfs.nameservices</name>
<value>cluster</value>
</property>

<!-- 指定cluster的两个namenode的名称分别为nn1,nn2 -->
<property>
<name>dfs.ha.namenodes.cluster</name>
<value>nn1,nn2</value>
</property>

<!-- 配置nn1,nn2的rpc通信端口 -->
<property>
<name>dfs.namenode.rpc-address.cluster.nn1</name>
<value>master:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.cluster.nn2</name>
<value>node1:8020</value>
</property>

<!-- 配置nn1,nn2的http通信端口 -->
<property>
<name>dfs.namenode.http-address.cluster.nn1</name>
<value>master:9870</value>
</property>
<property>
<name>dfs.namenode.http-address.cluster.nn2</name>
<value>node1:9870</value>
</property>

<!-- 指定namenode元数据存储在journalnode中的路径 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://master:8485;node1:8485;node2:8485/cluster</value>
</property>

<!-- 指定journalnode日志文件存储的路径 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/usr/local/soft/hadoop-3.1.2/data/journal</value>
</property>

<!-- 指定HDFS客户端连接active namenode的java类 -->
<property>
<name>dfs.client.failover.proxy.provider.cluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>

<!-- 配置隔离机制为ssh -->
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</value>
</property>

<!-- 指定秘钥的位置 -->
<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>
</configuration>

在hadoop-env.sh文件中配置HDFS_JOURNALNODE_USER
找到合适位置添加即可

vim hadoop-env.sh
export HDFS_JOURNALNODE_USER=root
export HDFS_ZKFC_USER=root

2、同步到其它节点

改成自己的路径

cd /usr/local/soft/hadoop-3.1.2/etc/hadoop
scp ./* node1:`pwd`
scp ./* node2:`pwd`

3、删除hadoop数据存储目录下的文件 每个节点都需要删除

rm -rf /usr/local/soft/hadoop-3.1.2/tmp

4、启动zookeeper 三台都需要启动

zkServer.sh start
zkServer.sh status

5、启动JN 存储hdfs元数据

三台JN上执行 启动命令:

hadoop-daemon.sh start journalnode

image-20241104172111708

6、格式化 在一台NN上执行,这里选择master

hdfs namenode -format

7、启动当前的NN

hadoop-daemon.sh start namenode

image-20241104172413228

8、执行同步 没有格式化的NN上执行 在另外一个namenode上面执行 这里选择node1

hdfs namenode -bootstrapStandby

image-20241104172536059

9、格式化ZK在master上面执行

!!一定要先把zookeeper集群正常启动起来再格式化

hdfs zkfc -formatZK

10、启动hdfs集群,在master上执行

start-dfs.sh

image-20241104175855218

image-20241104175950850

image-20241104180018125

image-20241104180146494

将master中的NameNode杀死,刷新页面发现node1变成了活跃状态

image-20241104180325678

image-20241104180412844
再重新启动集群,刷新页面发现master变为备用(不活跃)状态
image-20241104180537649

image-20241104180607308

后续使用的时候步骤:

1、开启虚拟机
2、每台机器先启动zk
3、在master上执行start-dfs.sh
4、关闭高可用hdfs stop-dfs.sh

标签:可用,hadoop,dfs,Hadoop,sh,master,node1,namenode,搭建
From: https://www.cnblogs.com/bjynjj/p/18526040

相关文章

  • 踏上Java之旅:环境搭建指南
    编程爱好者们!今天我要和大家分享一个非常基础但重要的主题——Java环境的搭建。对于初学者而言,正确的环境配置是学习Java的第一步,也是至关重要的一步。接下来,我会手把手教你如何在自己的电脑上配置Java开发环境。第一步:下载并安装JDKJavaDevelopmentKit(JDK)是Java编程语......
  • 汽车行业AI知识库搭建指南:重要性+方法
    在汽车行业,大型车企面临着员工众多、价值链长、技术密集和知识传播难等挑战。如何通过有效的知识沉淀与应用,提升各部门协同效率,快速响应客户咨询,降低销售成本,并开启体系化、可持续性的知识管理建设,成为汽车企业发展的关键。一、汽车企业知识管理的现状与挑战汽车企业及......
  • 大数据导论及分布式存储HadoopHDFS入门
    思维导图数据导论数据是什么?进入21世纪,我们的生活就迈入了"数据时代"作为21世纪的新青年,"数据"一词经常出现。数据无时无刻的在影响着我们的现实生活什么是数据?数据又如何影响现实生活?数据:一种可以被鉴别的对客观事件进行记录的符号。简单来说就是:对人类的行为......
  • vite+vue3.x+uni搭建项目
    vite-uniapp-template......
  • 使用最新版的wvp和ZLMediaKit搭建Gb28181测试服务器
    目录说明安装1.安装nodejs简介安装步骤2.安装java环境3.安装mysql安装修改密码4.安装redis5.安装编译器6.安装cmake7.安装依赖库8.编译ZLMediaKit9.编译wvp-GB28181-pro配置1.ZLMediaKit配置2.wvp-GB28181-pro配置2.1.配置ZLMediaKit连接信息2.2.28181服务器的配置2.3.配置web服务......
  • nginx服务器搭建
    1.下载nginx下载地址:nginx:download2.上传到服务器,然后解压执行命令:tar-zxvfnginx-1.26.1.tar.gz3.初始化Nginx进入Nginx的根目录,执行命令:./configure(1)假如进行configure时报错执行命令yum-yinstallpcre-devel下载依赖,然后再进行configure。(2)如果还报错,可以......
  • SpringBoot3+Vue3+ElementPlus搭建后台系统脚手架 | 小蚂蚁云
     项目介绍基于SpringBoot3、SpringSecurity、MybatisPlus、Vue3、TypeScript、Vite、ElementPlus、MySQL等技术栈实现的单体前后端分离后台管理系统;后端基于Java语言采用SpringBoot3、SpringSecurity、MybatisPlus、MySQL等主流技术栈,前端基于Vue3、TypeScript、Vite等技术栈......
  • 智谱AI Emu3环境搭建&推理测试
    ​引子OpenAI前首席科学家、联合创始人IlyaSutskever曾在多个场合表达观点:只要能够非常好的预测下一个token,就能帮助人类达到通用人工智能(AGI)。虽然,下一token预测已在大语言模型领域实现了ChatGPT等突破,但是在多模态模型中的适用性仍不明确。多模态任务仍然由扩散模型(如StableD......
  • 如何搭建题库管理小序❓
    土著刷题小......
  • 苍穹外卖心得-环境搭建-nginx-大佬可跳过
    一开始环境搭建的很好,结果突然登陆的时候就登陆不进去了,看到弹幕说的方法几乎都试了,sql我怎么想也不可能错啊,后来我就感觉是我的nginx的问题,之前自学的时候安装过nginx,怀疑是不是nginx的问题,于是就去学了一上午的nginx,虽然并没有起到很大左右,不过了解到了原理还是很有意思的:可......