千家信息网

hadoop2.0中namenode ha如何配置

发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,这篇文章将为大家详细讲解有关hadoop2.0中namenode ha如何配置,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。hdfs的ha,主要的问题是active
千家信息网最后更新 2025年02月08日hadoop2.0中namenode ha如何配置

这篇文章将为大家详细讲解有关hadoop2.0中namenode ha如何配置,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。


hdfs的ha,主要的问题是active和standby的元数据信息同步问题,之前的解决方案有avatar等一系列。共享存储可以采用NFS,bookkeeper等相关存储。在这里我们采用Journal来实现共享存储,主要是因为配置简单。


虚拟机准备:三台,列表如下:


机器名

功能

IP

master1

namenode(active),JournalNode,zookeeper

192.168.6.171

master2

namenode,JournalNode,zookeeper

192.168.6.172

datanode1

datanode,JournalNode,zookeeper

192.168.6.173


软件版本:hadoop 2.4.1 zookeeper3.4.6


下载hadoop2.4.1后,解压,解压zookeeper


第一步先配置zookeeper集群

将zookeeper解压后的文件夹下的conf下的zoo_sample.cfg重命名为zoo.cfg

修改配置

dataDir=/cw/zookeeper/ 我这里修改为/cw/zookeeper/ 确保该文件夹存在


在该文件尾部添加集群配置

server.1=192.168.6.171:2888:3888

server.2=192.168.6.172:2888:3888

server.3=192.168.6.173:2888:3888


将修改后的zookeeper文件夹分发到其他两台机器上


scp -r zookeeper-3.4.6 root@192.168.6.172:/cw/


scp -r zookeeper-3.4.6 root@192.168.6.173:/cw/


配置每台机器的pid

在192.168.6.171机器上执行

echo "1" >> /cw/zookeeper/myid

在192.168.6.172机器上执行

echo "2" >> /cw/zookeeper/myid

在192.168.6.173机器上执行

echo "3" >> /cw/zookeeper/myid


启动zookeeper,每台分别执行

./zkServer.sh start


都启动完成后,可以通过查看日志确认是否启动OK,或者执行 ./zkServer.sh status来查看每一个节点的状态。


---------------------------------------------------华立分割 hadoop开始----------------------------------------------------------------------------配置hadoop的相关参数


hadoop-env.sh主要配置java_home的路径

core-site.xml配置内容如下


fs.defaultFS

hdfs://myhadoop

myhadoop是namespace的id

io.file.buffer.size

131072

ha.zookeeper.quorum

192.168.6.171,192.168.6.172,192.168.6.173


修改hdfs-site.xml

dfs.nameservices

myhadoop对应之前的namespace

Comma-separated list of nameservices.

as same as fs.defaultFS in core-site.xml.


dfs.ha.namenodes.myhadoop

nn1,nn2每一个nn的id编号

The prefix for a given nameservice, contains a comma-separated

list of namenodes for a given nameservice (eg EXAMPLENAMESERVICE).


dfs.namenode.rpc-address.myhadoop.nn1

192.168.6.171:8020

RPC address for nomenode1 of hadoop-test


dfs.namenode.rpc-address.myhadoop.nn2

192.168.6.172:8020

RPC address for nomenode2 of hadoop-test


dfs.namenode.http-address.myhadoop.nn1

192.168.6.171:50070

The address and the base port where the dfs namenode1 web ui will listen on.


dfs.namenode.http-address.myhadoop.nn2

192.168.6.172:50070

The address and the base port where the dfs namenode2 web ui will listen on.



dfs.namenode.servicerpc-address.myhadoop.n1

192.168.6.171:53310

dfs.namenode.servicerpc-address.myhadoop.n2

192.168.6.172:53310



下部分为对应的文件存储目录配置

dfs.namenode.name.dir

file:///cw/hadoop/name

Determines where on the local filesystem the DFS name node

should store the name table(fsimage). If this is a comma-delimited list

of directories then the name table is replicated in all of the

directories, for redundancy.


dfs.namenode.shared.edits.dir

qjournal://192.168.6.171:8485;192.168.6.172:8485;192.168.6.173:8485/hadoop-journal

A directory on shared storage between the multiple namenodes

in an HA cluster. This directory will be written by the active and read

by the standby in order to keep the namespaces synchronized. This directory

does not need to be listed in dfs.namenode.edits.dir above. It should be

left empty in a non-HA cluster.


dfs.datanode.data.dir

file:///cw/hadoop/data

Determines where on the local filesystem an DFS data node

should store its blocks. If this is a comma-delimited

list of directories, then data will be stored in all named

directories, typically on different devices.

Directories that do not exist are ignored.


dfs.ha.automatic-failover.enabled

true

Whether automatic failover is enabled. See the HDFS High

Availability documentation for details on automatic HA

configuration.


dfs.journalnode.edits.dir

/cw/hadoop/journal/


dfs.client.failover.proxy.provider.myhadoop

org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

dfs.ha.fencing.methods

sshfence

dfs.ha.fencing.ssh.private-key-files

/home/yarn/.ssh/id_rsa

the location stored ssh key

dfs.ha.fencing.ssh.connect-timeout

1000

dfs.namenode.handler.count

8


以上所涉及的文件夹需要手工建立,如不存在会出现异常。


以后配置完成后,将配置好的hadoop分发到所有集群节点。同时每一个节点建立需要的文件夹。


下面开始格式化zk节点,执行:./hdfs zkfc -formatZK


执行完毕后,启动ZookeeperFailoverController,用来监控主备节点的状态。


./hadoop-daemon.sh start zkfc 一般在主备节点启动就可以


下一步启动共享存储系统JournalNode
在各个JN节点上启动:hadoop-daemon.sh start journalnode


下一步,在主NN上执行./hdfs namenode -format格式化文件系统


执行完毕后启动主NN./hadoop-daemon.sh start namenode



在备用NN节点先同步NN的元数据信息,执行./hdfs namenode -bootstrapStandby

同步完成后,启动备用NN ./hadoop-daemon.sh start namenode


由于zk已经自动选择了一个节点作为主节点,这里不要手工设置。如想手工设置主备NN可以执行

./hdfs haadmin -transitionToActive nn1


启动所有的datanode


分别打开192.168.6.171:50070和192.168.6.172:50070



可以执行相关的hdfs shell命令来验证集群是否正常工作。

下面来kill掉主节点的NN

kill -9 135415


可以看到已经成功切换。

关于"hadoop2.0中namenode ha如何配置"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

配置 节点 文件 机器 文件夹 存储 集群 手工 篇文章 同步 信息 内容 数据 更多 格式 状态 系统 问题 备用 不错 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 阿里数据库技术第一人 自主开发web服务器 vr软件开发现实虚拟技术 锦江区亿可计算机软件开发部 苹果手机连接服务器时出现问题 简单的说什么是数据库应用系统 数据库怎么备份有约束的表 重汽软件开发中心 网络安全管理警务技术员 密云区网络技术信息接口 数据库数字较大选什么类型 戴尔r730服务器关闭自检 网络安全手写模板 网络安全训练营第21讲 陕西回收服务器主板云主机 软件开发的主要内容怎么写 北邮计算机网络技术1 读秀海量全文数据及资料数据库 儿童软件开发需要的人才 不小心删掉mysql数据库 刘建伟 网络安全 精品课 网络技术是哪个国家的 电脑登录金铲铲显示服务器爆满 维普全文期刊数据库 南京信息软件开发供应商 怎么查询数据库连接数 慧通网络技术有限公司 繁体中文输入法软件开发 服务器电脑如何工作 pop服务器查看端口
0