当前位置: 代码迷 >> 综合 >> 大数据之HDFS完全分布式搭建
  详细解决方案

大数据之HDFS完全分布式搭建

热度:90   发布时间:2024-02-02 00:17:19.0

完全分布式搭建是在上一篇伪分布式搭建的基础上搭建的,基础hdfs搭建查看上篇详情。

目录

        角色定义

服务器配置

ssh免密

hdfs配置文件

分发到其他机器

格式化&启动

验证

思考

角色定义

服务器NameNodesecondaryNameNodeDataNodenode01*node02**node03*node04*

 

 


 

  • 服务器配置

1. 创建同node01一样的其他三台服务器 node02,node03, node04,创建方式参照大数据之Linux环境搭建文章。

2. 停止node01 服务器上的HDFS伪分布式进程

  • ssh免密

#    设置免密是为了集群启动时,start-dfs.sh脚本管理集群,在node01启动,就将node01的公钥分发给其他三台机器,node01就可以对其他三台进行免密登陆。#    操作 (将node01 的公钥分发给其他机器,并同意命名为node01.pub)#    在node01:
$    scp /root/.ssh/id_dsa.pub  node02:/root/.ssh/node01.pub
$    scp /root/.ssh/id_dsa.pub  node03:/root/.ssh/node01.pub
$    scp /root/.ssh/id_dsa.pub  node04:/root/.ssh/node01.pub#    分别在node02-node04进行操作:
$    cd ~/.ssh
$    cat node01.pub >> authorized_keys
  • hdfs配置文件

#    在node01上先将之前的伪分布式hdfs文件备份
$    cp -r /opt/bigdata/hadoop /opt/bigdata/hadoop_local$    cd $HADOOP_HOME/etc/hadoop$    vi hdfs-site.xml<configuration><property><name>dfs.replication</name><value>2</value></property><property><name>dfs.namenode.name.dir</name><value>/var/bigdata/hadoop/full/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>/var/bigdata/hadoop/full/dfs/data</value></property><property><name>dfs.namenode.secondary.http-address</name><value>node02:50090</value></property><property><name>dfs.namenode.checkpoint.dir</name><value>/var/bigdata/hadoop/full/dfs/secondary</value></property></configuration>#    定义DataNode服务器
$    vi slavesnode02node03node04
  • 分发到其他机器

#    将node01上配置好的hdfs分发到node02-node04三台机器上
$    cd /opt
$    scp -r ./bigdata/hadoop-2.6.5  node02:`pwd`
$    scp -r ./bigdata/hadoop-2.6.5  node03:`pwd`
$    scp -r ./bigdata/hadoop-2.6.5  node04:`pwd`
  • 格式化&启动

#    格式化<仅在集群搭建时候执行一次,切勿重复执行>
$    hdfs    namenode -format#    启动
$    start-dfs.sh
  • 验证

#    在node01
$    cd /var/bigdata/hadoop/full/dfs/name/current
$    ll
#    查看有无fsimage和edits$    cat VERSIONnamespaceID=11****40clusterID=CID-*********-ce2b69c7f658cTime=0storageType=NAME_NODEblockpoolID=BP-*****-1595910068876layoutVersion=-63#    在node02
$    cd /var/bigdata/hadoop/full/dfs
$    ll
#    查看是否存在data和secondary两个文件目录
$    cd /secondary/current
$    ll
$    cat VERSIONnamespaceID=11****40clusterID=CID-****-ce2b69c7f658cTime=0storageType=NAME_NODEblockpoolID=BP-****-1595910068876layoutVersion=-63#    在node02-node04验证DataNode
$    cd /var/bigdata/hadoop/full/dfs/data/current
$    cat VERSIONstorageID=DS-****-2d900c512332clusterID=CID-****-ce2b69c7f658cTime=0datanodeUuid=c8c8d695-****-0ada39a4c710storageType=DATA_NODElayoutVersion=-56#    查看clusterId是否都相同
  • 思考

优点:主从集群,机构相对简单,主从协作,主单点,数据一致性好掌握

问题:

1.namenode单点故障,造成集群整体不可用

2.单点压力过大,内存受限

解决方案:

1.单点故障: 采用高可用方案HA(High Avaliable), 多个namenode,主备切换

2.压力过大,内存受限:采用联邦机制Federation,对元数据进行分片,用多个namenode管理不同的元数据