前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据面试题(二):Hadoop的联邦机制核心高频面试题

大数据面试题(二):Hadoop的联邦机制核心高频面试题

原创
作者头像
Lansonli
发布2022-12-12 22:38:46
3160
发布2022-12-12 22:38:46
举报
文章被收录于专栏:Lansonli技术博客

​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

代码语言:javascript
复制
<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>

五、操作

代码语言:javascript
复制
# 创建联邦,不指定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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ​Hadoop的联邦机制核心高频面试题
    • 一、为什么会出现联邦
      • 二、联邦的实现
        • 三、主要优点
          • 四、配置
            • 五、操作
            相关产品与服务
            对象存储
            对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档