一、HDFS Router-based Federation
官方文档见:
Apache Hadoop 3.4.0 – HDFS Router-based Federationhttps://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs-rbf/HDFSRouterFederation.html
二、集群规划
本次测试采用6台虚拟机创建了2套HDFS集群,操作系统版本为centos7.6,Hadoop版本为3.3.4,其中Namenode采用HA高可用架构。
集群 | IP地址 | 主机名 | fc zk | HDFS | router | statestore zk |
ClusterA ccns | 192.168.121.101 | node101.cc.local | server.1 | NameNode DataNode JournalNode | ||
ClusterA ccns | 192.168.121.102 | node102.cc.local | server.2 | NameNode DataNode JournalNode | ||
ClusterA ccns | 192.168.121.103 | node103.cc.local | server.3 | DataNode JournalNode | dfsrouter | |
ClusterB ccns02 | 192.168.121.104 | node104.cc.local | server.1 | NameNode DataNode JournalNode | server.1 | |
ClusterB ccns02 | 192.168.121.105 | node105.cc.local | server.2 | NameNode DataNode JournalNode | server.1 | |
ClusterB ccns02 | 192.168.121.106 | node106.cc.local | server.3 | DataNode JournalNode | dfsrouter | server.1 |
三、配置ClusterA集群
1、配置core-site.xml
2、配置hdfs-site.xml
注意:
1、rbf服务会监听namenode的jxm数据,需要请求web地址获取监控数据,如果因为HDFS安全模式仅开放https的web访问即dfs.http.policy为HTTPS_ONLY,需要配置dfs.namenode.https-address项,而不能配置dfs.namenode.http-address
2、rbf服务启动后需要
3、配置hdfs-rbf-site.xml
从Hadoop-3.3.0 及以后版本,RBF作为一个单独模块从HDFS独立出来了,配置文件为hdfs-rbf-site.xml,其中Router主要的端口有3个:
- dfs.federation.router.rpc-address: Router的默认RPC端口8888, Client发送RPC到此
- dfs.federation.router.admin-address: Router的默认routeradmin命令端口8111
- dfs.federation.router.https-address: Router的默认UI地址50072
注意:
1、默认router的namespace需要配置为本集群的服务名称,ClusterA集群为ccns,CluserB集群就应该为ccns02
2、选择zk来作为statestore需要配置hadoop.zk.address,用来指定zk地址
3、dfs.federation.router.monitor.localnamenode.enable配置为false,因为rbf跟namenode不是在同个节点,监听时就会从配置文件中查找namenode的web地址,而不是查找localhost
4、dfs.federation.router.monitor.namenode配置所有需要监听的namenode
5、需要指定secret manager相关配置,不然rbf启动时,secret manager启动报错zookeeper connectione string为null,导致rbf启动失败,相关配置项如下:dfs.federation.router.secret.manager.class,zk-dt-secret-manager.zkAuthType,zk-dt-secret-manager.zkConnectionString,zk-dt-secret-manager.kerberos.keytab,zk-dt-secret-manager.kerberos.principal
四、配置ClusterB集群
1、配置core-site.xml
2、配置hdfs-site.xml
与ClusterA集群配置基本相同,可参考。
3、配置配置hdfs-rbf-site.xml
与ClusterA集群配置基本相同,唯一区别在于默认router的namespace需要配置为本集群的服务名称,ClusterA集群为ccns,ClusterB集群就应该时ccns02
五、启动集群服务
1、初始化ClusterB集群
因为ClusterA之前验证中已创建好,所以本次除了修改其配置文件后重启之外,为了不丢失其上已有数据,只需要初始化ClusterB集群,相关步骤可参考新建集群部分的内容。
注意:clusterId可以在data目录下/opt/hadoop/hadoop-3.3.4/data/namenode/current/VERSION文件中查询获得。
2、启动router服务
Router WebUI:https://192.168.121.103:50072/
3、配置挂载目录
通过routeradmin命令增删改查路由表,dfsrouteradmin命令只能在 router所在节点执行
通过router查看