大数据面试题(二):Hadoop的联邦机制核心高频面试题
2023-02-18 16:26:54 时间
Hadoop的联邦机制核心高频面试题
一、为什么会出现联邦
Hadoop的NN所使用的资源受所在服务的物理限制,不能满足实际生产需求。
二、联邦的实现
采用多台NN组成联邦。NN是独立的,NN之间不需要相互调用。NN是联合的,同属于一个联邦,所管理的DN作为block的公共存储。
如下图:
图中概念:
- block pool的概念,每一个namespace都有一个pool,datanodes会存储集群中所有的pool,block pool之间的管理是独立的,一个namespace生成一个block id时不需要跟其它namespace协调,一个namenode的失败也不会影响到datanode对其它namenodes的服务。
- 一个namespace和它的block pool作为一个管理单元,删除后,对应于datanodes中的pool也会被删除。集群升级时,这个管理单元也独立升级。
- 这里引入clusterID来标示集群所有节点。当一个namenode format之后,这个id生成,集群中其它namenode的format也用这个id。
三、主要优点
1、命名空间可伸缩性——联合添加命名空间水平扩展。DN也随着NN的加入而得到拓展。
2、性能——文件系统吞吐量不是受单个Namenode限制。添加更多的Namenode集群扩展文件系统读/写吞吐量。
3、隔离——隔离不同类型的程序,一定程度上控制资源的分配。
四、配置
联邦的配置是向后兼容的,允许在不改变任何配置的情况下让当前运行的单节点环境转换成联邦环境。新的配置方案确保了在集群环境中的所有节点的配置文件都是相同的。
第一步:配置属性dfs.nameservices,用于datanodes们识别namenodes。
第二步:为每个namenode加入这个后缀。
conf/hdfs-site.xml
<configuration>
<property>
<name>dfs.nameservices</name>
<value>ns1,ns2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ns1</name>
<value>nn-host1:rpc-port</value>
</property>
<property>
<name>dfs.namenode.http-address.ns1</name>
<value>nn-host1:http-port</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address.ns1</name>
<value>snn-host1:http-port</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ns2</name>
<value>nn-host2:rpc-port</value>
</property>
<property>
<name>dfs.namenode.http-address.ns2</name>
<value>nn-host2:http-port</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address.ns2</name>
<value>snn-host2:http-port</value>
</property>
.... Other common configuration ...
</configuration>
五、操作
# 创建联邦,不指定ID会自动生成
$HADOOP_HOME/bin/hdfs namenode -format [-clusterId <cluster_id>]
# 升级Hadoop为集群
$HADOOP_HOME/bin/hdfs start namenode --config $HADOOP_CONF_DIR -upgrade -clusterId <cluster_ID>
# 扩展已有联邦
$HADOOP_HOME/bin/hdfs dfsadmin -refreshNamenodes <datanode_host_name>:<datanode_rpc_port>
# 退出联邦
$HADOOP_HOME/sbin/distribute-exclude.sh <exclude_file>
$HADOOP_HOME/sbin/refresh-namenodes.sh
相关文章
- 面霸告诉你这些技术面试的非技术性经验,让你的面试成功率显著提升
- 基于SpringBoot AOP面向切面编程实现Redis分布式锁
- 时序数据库为万物互联打下坚实的数仓基石
- 银丰新融:搭建名单监控管理系统,落实“三反”政策
- 养殖场新来了个“AI管家”
- Open Harmony移植:build lite配置目录全梳理
- 什么是隐私计算,它是怎样保护我们的隐私安全?
- 动手实操丨RC522射频卡模块与IC卡完成充值消费查询的技术实现思路
- 云图说 | 华为云医疗智能体EIHealth,AI赋能基因组研究
- What?构造的查询语句会导致堆栈溢出
- 开发一个不需要重写成Hive QL的大数据SQL引擎
- npm install xxxx --legacy-peer-deps命令是什么?
- 聊聊如何在华为云IoT平台进行产品开发
- 敏捷开发中如何从容应对需求变更?
- 解析数仓OLAP函数:ROLLUP、CUBE、GROUPING SETS
- 基于场景文字的多模态融合的图像分类
- 分享一个JDK批量异步任务工具CompletionService,超好用
- STM32+华为云IOT制作酒驾监控系统:上车就监控
- 源码解析Synchronous Queue 这种特立独行的队列
- 揭秘华为云GaussDB(for Influx):最佳实践之数据建模