Linux的企业-Hadoop(namenode,yarn 的高可用)Hbase 分布式部署

本文涉及的产品
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介:

接上篇后续配置


一.配置环境

redhat6.5

server1 172.25.29(50).1  hadoop master nfs

server2 172.25.29(50).2  zookeeper nfs

server3 172.25.29(50).3  zookeeper nfs

server4 172.25.29(50).4  zookeeper nfs

server5 172.25.29(50).5  高可用备机 nfs

使用 nfs 共享同步配置文件,之前配置好java运行环境


二.Hadoop  name node节点高可用配置

1.配置Zookeeper 集群,至少三台


bfd778b0aeede0e7acfac6b4eaceef25.png

46c4348a9db23221393e176c9a12ec10.png


c77529a698ff806b4deed4e15e6121ef.png

bf71f7a909c77128ecb7bd7aa1fdc474.png

72d62cdc46cd74a34e6bf0449df2211a.png


2.在各节点启动zookeeper发现服务

cfc141804e8a9eec4e1e36839b6b82bf.png

b3da95e88976e4ee1919774407409f10.png

9ac479a1da9a0fa1ecbc68e631a41f63.png


3.Hadoop 配置

2452288ac13d45b780a4e066ee47df13.png

1579809a82ae1d5800b46b78e2c9a9b8.png


编辑 hdfs-site.xml 文件:
<configuration>
<!-- 指定 hdfs 的 nameservices 为 masters,和 core-site.xml 文件中的设置保持一
致 -->
<property>
<name>dfs.nameservices</name>
<value>masters</value>
</property>
<!-- masters 下面有两个 namenode 节点,分别是 h1 和 h2 (名称可自定义)
-->
<property>
<name>dfs.ha.namenodes.masters</name>
<value>h1,h2</value>
</property>
<!-- 指定 h1 节点的 rpc 通信地址 -->
<property>
<name>dfs.namenode.rpc-address.masters.h1</name>
<value>172.25.29.1:9000</value>
</property>
<!-- 指定 h1 节点的 http 通信地址 -->
<property>
<name>dfs.namenode.http-address.masters.h1</name>
<value>172.25.29.1:50070</value>
</property>
<!-- 指定 h2 节点的 rpc 通信地址 -->
<property>
<name>dfs.namenode.rpc-address.masters.h2</name>
<value>172.25.29.5:9000</value>
</property>
<!-- 指定 h2 节点的 http 通信地址 -->
<property>
<name>dfs.namenode.http-address.masters.h2</name>
<value>172.25.29.5:50070</value>
</property>
<!-- 指定 NameNode 元数据在 JournalNode 上的存放位置 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://172.25.29.2:8485;172.25.29.3:8485;172.25.29.4:8485/masters</value>
</property>
<!-- 指定 JournalNode 在本地磁盘存放数据的位置 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/tmp/journaldata</value></property>
<!-- 开启 NameNode 失败自动切换 -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!-- 配置失败自动切换实现方式 -->
<property>
<name>dfs.client.failover.proxy.provider.masters</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvid
er</value>
</property>
<!-- 配置隔离机制方法,每个机制占用一行-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</value>
</property>
<!-- 使用 sshfence 隔离机制时需要 ssh 免密码 -->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
<!-- 配置 sshfence 隔离机制超时时间 -->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
</configuration>


a72b68aef37003aa4874428e9b3eb6b5.png


4.主机之间设置免密

ff26e66f218d2c68de047d80f4c5a236.png


5.格式化之前删除tmp下的数据,以免影响后面的操作

a2b5a14d83d804c5c82072dec0bac800.png

ae40504ebe602db5ba727249d4a61feb.png

f70ed1b84e6fd245fd23854af9063b90.png

4a5fe2410717ee26fc90815ef2bd09a4.png

e7686e0e900d3d9ee6a2670bd000a1e1.png


6.在三个 DN 上依次启动 journalnode(第一次启动 hdfs 必须先启动 journalnode)

0bf5054623ffb151abd469db4f925279.png

5c4c1f9f0d63f0af4cac38a5bf7624e0.png

9cc7651972050083c36101374fc13778.png


7.格式化 HDFS 集群


d907732941bdda933b450d5a25ab6bbb.png

365d7c2ac26439ae9458a5718e92d1cd.png

358ae043cb2c01b5808837901b30b2a9.png


8.启动 hdfs 集群

3f5c2c98853128d3a13baddf5299a1f6.png


ab540e37db0ce53b29b77bfa8b69ccd1.png

556e530b836ecd124b62ade558f569a5.png

c9fb3cb2a81357f1f4df8bfcc008eb41.png

17f2afbd900f89049f1eea3d498f8e05.png

e5fdc5f1b882bf52f7928f5f8220adfa.png


9.web登陆172.25.29.1:50070

38168cdfad3c60a27ece8ead23af7181.png

c9583dc017b164afcdd82fb4cea5e0cf.png



测试:关闭server1的name node进程,master切换到5上

server1 kill -9 3184

server1宕掉,server5接管

a44e087d6073f5a077e9315d69527124.png

79c5b781ddc7f2f2eeebba9fa3cd8b6a.png

c0c71806bf46321c7039103d5fca09ce.pngcfbe400423b411f55a235c2717752b87.png



三.Hadoop yarn 的高可用

1.在hadoop/etc/hadoop下编辑 mapred-site.xml 文件

e3fcba2bb7ff33365cda369e28dd772a.png



2.在hadoop/etc/hadoop下编辑 yarn-site.xml 文件
<configuration>
<!-- 配置可以在 nodemanager 上运行 mapreduce 程序 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 激活 RM 高可用 -->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property><!-- 指定 RM 的集群 id -->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>RM_CLUSTER</value>
</property>
<!-- 定义 RM 的节点-->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!-- 指定 RM1 的地址 -->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>172.25.29.1</value>
</property>
<!-- 指定 RM2 的地址 -->
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>172.25.29.5</value>
</property>
<!-- 激活 RM 自动恢复 -->
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<!-- 配置 RM 状态信息存储方式,有 MemStore 和 ZKStore-->
<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</
value>
</property>
<!-- 配置为 zookeeper 存储时,指定 zookeeper 集群的地址 -->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>172.25.29.2:2181,172.25.29.3:2181,172.25.29.4:2181</value>
</property>
</configuration>



3.启动 yarn 服务

4b5283c4a21c340afe9aa6e1d87edea8.png


server5 RM2 上需要手动启动

3a3579fed1d3c2cc4eaa6f9354b5b7d4.png


4.测试

0d0b408d2d275aacae3b741a23c38080.png

341f33b4563b5bc8c4b1865f54a77b65.png



在server1上 kill -9 3593 进程,master切换到server5上

d75f7ac4a2713e0f94d83cd7d518a4a5.png

17bb3790a2a0cab6186356312bc93d38.png

5cdb85c845e5a2c6c06d5ee69dedbdbf.png


四.Hbase 分布式部署

1.hbase 配置


101eaa329968ad6565dac8a46cad4a59.png


指定 java 目录

指定 hadoop 目录,否则 hbase无法识别 hdfs 集群配置

c2f95bc1d2b192e97e296b8e1e3cb55d.png


2.vim hbase-site.xml
<configuration>
<!-- 指定 region server 的共享目录,用来持久化 HBase。这里指定的 HDFS 地址
是要跟 core-site.xml 里面的 fs.defaultFS 的 HDFS 的 IP 地址或者域名、端口必须一致。 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://masters/hbase</value>
</property>
<!-- 启用 hbase 分布式模式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- Zookeeper 集群的地址列表,用逗号分割。默认是 localhost,是给伪分布式用
的。要修改才能在完全分布式的情况下使用。 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>172.25.29.2,172.25.29.3,172.25.29启动 hbase.4</value>
</property>
<!-- 指定数据拷贝 2 份,hdfs 默认是 3 份。 -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!-- 指定 hbase 的 master -->
<property><name>hbase.master</name>
<value>h1</value>
</property>
</configuration>



d0866759381e9dd3880a2064b1a6210b.png

ec923be5b2ded3edf30d84d25b57c14c.png

3.启动 hbase

3068c367a4b46c25c4b58afd40050a92.png

544b37f637b8e8b7cfd79e0a69a8aef6.png

2a0af1b1d7f389a846e0f1cb66d9556e.png

429587b88023e1a2c9a966f02a652852.png

b4442e59e7da681ea0052f3900085d4e.png

7471a64e73c8fdc93b13fb2ace8c0ad0.png


4.备节点手动运行

12e267b239cbf7f911457e3b91e6d758.png


5.查看配置结果

76c5f1d04b5ba50951b9af3206fc540d.png

d63f3b4c53e56207fc2cc225a49607e4.png

2b516bfca6a486ed398bef8a74b5bdcb.png





      本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1975957,如需转载请自行联系原作者





相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
&nbsp; 相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情:&nbsp;https://cn.aliyun.com/product/hbase &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
2月前
|
Ubuntu Linux 测试技术
Linux系统之部署轻量级Markdown文本编辑器
【10月更文挑战第6天】Linux系统之部署轻量级Markdown文本编辑器
102 1
Linux系统之部署轻量级Markdown文本编辑器
|
2月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
68 2
|
2月前
|
搜索推荐 Linux 测试技术
Linux系统之部署homer静态主页
【10月更文挑战第11天】Linux系统之部署homer静态主页
82 41
Linux系统之部署homer静态主页
|
2月前
|
运维 监控 Linux
Linux系统之部署Linux管理面板1Panel
【10月更文挑战第20天】Linux系统之部署Linux管理面板1Panel
94 3
Linux系统之部署Linux管理面板1Panel
|
2月前
|
Web App开发 资源调度 网络协议
Linux系统之部署IP工具箱MyIP
【10月更文挑战第5天】使用Docker部署Radicale日历和联系人应用Linux系统之部署IP工具箱MyIP
101 1
Linux系统之部署IP工具箱MyIP
|
2月前
|
Linux Shell 异构计算
在linux上部署yolov5和安装miniconda3
这篇文章介绍了在Linux系统上部署YOLOv5并安装Miniconda3的步骤,包括使用wget命令下载Miniconda安装脚本、安装Miniconda、初始化Conda环境、添加镜像源等。
99 3
在linux上部署yolov5和安装miniconda3
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
58 2
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
37 3
|
2月前
|
Java Linux 网络安全
NIFI在Linux服务区上的部署配置过程是什么?
【10月更文挑战第21天】NIFI在Linux服务区上的部署配置过程是什么?
53 2
|
2月前
|
存储 数据可视化 Java
震惊!如何在linux下部署项目,部署/运行jar包 超详细保姆级教程!
如何在Linux系统下部署和运行Java项目jar包,包括传输文件到Linux、使用nohup命令运行jar包、查看端口状态、杀死进程和查看项目运行状态,以及如何解决“没有主清单属性”的错误。
522 1
震惊!如何在linux下部署项目,部署/运行jar包 超详细保姆级教程!