目录
1. hadoop102中的操作
1.1修改配置文件core-site.xml
1.2 修改配置文件hdfs-site.xml
1.3 修改每一台机器的HADOOP_HOME 的环境变量
2.分发:将/opt/ha/hadoop-3.1.3 分发到103 和 104
2.1启动journalnode服务
2.2格式化
2.3同步nn1的元数据信息并启动访问
前准备工作:
1. 在/opt/module/下创建文件夹 ha
mkdir /opt/module/ha
2. 将目前的hadoop安装目录拷贝到 /opt/module/ha
cp -r hadoop-3.1.3/ ha/
3. 删除一些多余的目录文件 保证是一个初始化集群的状态
rm -rf data/ logs/ abc.txt /……/ wcinput/ wcoutput/
正式开始搭建集群
fs.defaultFS
hdfs://mycluster
hadoop.tmp.dir
/opt/module/ha/hadoop-3.1.3/data
hadoop.http.staticuser.user
atguigu
hadoop.proxyuser.atguigu.hosts
*
hadoop.proxyuser.atguigu.groups
*
hadoop.proxyuser.atguigu.groups
*
dfs.namenode.name.dir
file://${hadoop.tmp.dir}/name
dfs.datanode.data.dir
file://${hadoop.tmp.dir}/data
dfs.journalnode.edits.dir
${hadoop.tmp.dir}/jn
dfs.nameservices
mycluster
dfs.ha.namenodes.mycluster
nn1,nn2,nn3
dfs.namenode.rpc-address.mycluster.nn1
hadoop102:8020
dfs.namenode.rpc-address.mycluster.nn2
hadoop103:8020
dfs.namenode.rpc-address.mycluster.nn3
hadoop104:8020
dfs.namenode.http-address.mycluster.nn1
hadoop102:9870
dfs.namenode.http-address.mycluster.nn2
hadoop103:9870
dfs.namenode.http-address.mycluster.nn3
hadoop104:9870
dfs.namenode.shared.edits.dir
qjournal://hadoop102:8485;hadoop103:8485;hadoop104:8485/mycluster
dfs.client.failover.proxy.provider.mycluster
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
dfs.ha.fencing.methods
sshfence
dfs.ha.fencing.ssh.private-key-files
/home/atguigu/.ssh/id_rsa
打开 /etc/profile.d/my_evn.sh 修改如下:
HADOOP_HOME=/opt/ha/hadoop-3.1.3
修改103和104的 环境变量:HADOOP_HOME=/opt/ha/hadoop-3.1.3
在102、103、104 各个JournalNode节点上,输入以下命令启动journalnode服务
hdfs --daemon start journalnode
在 hadoop102的 nn1 上,对其进行格式化,并启动
hdfs namenode -format
hdfs --daemon start namenode
分别在 hadoop103的nn2 和 hadoop104的nn3上,同步nn1的元数据信息
hdfs namenode -bootstrapStandby
分别在 hadoop103上启动nn1 和 hadoop104上启动nn2
hdfs --daemon start namenode
通过web地址访问nn1 nn2 nn3
http:hadoop102:9870
http:hadoop103:9870
http:hadoop104:9870
在每台机器上启动DN
hdfs --daemon start datanode
将其中的一个nn切换成Active状态
hdfs haadmin -transitionToActive --forcemanual nn1
查看是否Active
hdfs haadmin -getServiceState nn1
hadoop102 : Namenode Datanode JournalNode ZKFC ZK
hadoop103 : Namenode Datanode JournalNode ZKFC ZK
hadoop104 : Namenode Datanode JournalNode ZKFC ZK
1.在core-site.xml文件中增加
ha.zookeeper.quorum
hadoop102:2181,hadoop103:2181,hadoop104:2181
2. 在hdfs-site.xml中增加
dfs.ha.automatic-failover.enabled
true
3. 修改后分发配置文件
my_rsync /opt/module/ha/hadoop-3.1.3/etc/hadoop
1. 关闭HDFS集群
stop-dfs.sh
2. 启动Zookeeper集群
zk.sh start
3. 初始化HA在Zookeeper中状态
hdfs zkfc -formatZK
4. 启动HDFS服务
start-dfs.sh
5. 可以去zkCli.sh客户端查看Namenode选举锁节点内容
get /hadoop-ha/mycluster/ActiveStandbyElectorLock
6. 测试故障自动转移
-- 6.1 将当前状态为Active的namenode 杀死
-- 6.2 刷新另外两台namenode的web端,关注状态
-- 6.3 最后可以到zk中验证锁内容的名称
六、加入 YARN HA 集群规划:
hadoop102 : Namenode Datanode JournalNode ZKFC ZK ResourceManager NodeManager
hadoop103 : Namenode Datanode JournalNode ZKFC ZK ResourceManager NodeManager
hadoop104 : Namenode Datanode JournalNode ZKFC ZK ResourceManager NodeManager
七、YARN HA 集群搭建步骤
1. 修改yarn-site.xml
yarn.resourcemanager.ha.enabled
true
yarn.resourcemanager.cluster-id
cluster-yarn1
yarn.resourcemanager.ha.rm-ids
rm1,rm2,rm3
yarn.resourcemanager.hostname.rm1
hadoop102
yarn.resourcemanager.webapp.address.rm1
hadoop102:8088
yarn.resourcemanager.address.rm1
hadoop102:8032
yarn.resourcemanager.scheduler.address.rm1
hadoop102:8030
yarn.resourcemanager.resource-tracker.address.rm1
hadoop102:8031
yarn.resourcemanager.hostname.rm2
hadoop103
yarn.resourcemanager.webapp.address.rm2
hadoop103:8088
yarn.resourcemanager.address.rm2
hadoop103:8032
yarn.resourcemanager.scheduler.address.rm2
hadoop103:8030
yarn.resourcemanager.resource-tracker.address.rm2
hadoop103:8031
yarn.resourcemanager.hostname.rm3
hadoop104
yarn.resourcemanager.webapp.address.rm3
hadoop104:8088
yarn.resourcemanager.address.rm3
hadoop104:8032
yarn.resourcemanager.scheduler.address.rm3
hadoop104:8030
yarn.resourcemanager.resource-tracker.address.rm3
hadoop104:8031
yarn.resourcemanager.zk-address
hadoop102:2181,hadoop103:2181,hadoop104:2181
yarn.resourcemanager.recovery.enabled
true
yarn.resourcemanager.store.class
org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore
2. 将yarn-site.xml文件进行分发
my_rsync /opt/module/ha/hadoop-3.1.3/etc/hadoop/yarn-site.xml
3. 在任意的机器上启动yarn
start-yarn.sh
4. 通过访问web地址验证
5. 测试Yarn故障自动转移
联邦架构(了解)
1.当集群中数据量超级大时,NameNode的内存成了性能的瓶颈,所以提出了联邦机制
2.联邦机制原理:
将NameNode划分成不同的命名空间并进行编号。不同的命名空间之间相互隔离互不干扰。
在DataNode中创建目录,此目录对应命名空间的编号。由此,
编号相同的数据由对应的命名空间进行管理
128G * 1024(M) * 1024(KB) * 1024(bety) / 150 = xxx
xxx * 256M = yyy
yyy / 1024(G) / 1024(TB) / 1024(PB) = 200 左右PB的数据