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

本文详细介绍如何在多台服务器上搭建Hadoop的完全分布式环境,包括角色定义、服务器配置、SSH免密设置、HDFS配置文件修改、集群格式化与启动等关键步骤,以及如何验证搭建成功。

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

目录

        角色定义

服务器配置

ssh免密

hdfs配置文件

分发到其他机器

格式化&启动

验证

思考

 

角色定义

服务器NameNodesecondaryNameNodeDataNode
node01*  
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 slaves
            node02
            node03
            node04
  • 分发到其他机器

#    将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 VERSION
        namespaceID=11****40
        clusterID=CID-*********-ce2b69c7f658
        cTime=0
        storageType=NAME_NODE
        blockpoolID=BP-*****-1595910068876
        layoutVersion=-63

#    在node02
$    cd /var/bigdata/hadoop/full/dfs
$    ll
#    查看是否存在data和secondary两个文件目录
$    cd /secondary/current
$    ll
$    cat VERSION
        namespaceID=11****40
        clusterID=CID-****-ce2b69c7f658
        cTime=0
        storageType=NAME_NODE
        blockpoolID=BP-****-1595910068876
        layoutVersion=-63

#    在node02-node04验证DataNode
$    cd /var/bigdata/hadoop/full/dfs/data/current
$    cat VERSION
        storageID=DS-****-2d900c512332
        clusterID=CID-****-ce2b69c7f658
        cTime=0
        datanodeUuid=c8c8d695-****-0ada39a4c710
        storageType=DATA_NODE
        layoutVersion=-56


#    查看clusterId是否都相同

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>

  • 思考

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

问题:

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

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

解决方案:

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

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

 

### Hadoop 完全分布式安装与配置教程 #### 准备工作 为了成功部署Hadoop集群,在开始之前需确认所有节点的操作系统均为Linux,并关闭防火墙以及SELinux,确保时间同步服务已开启。此外,还需准备无密码SSH登录环境以便于各节点间通信。 #### 配置Java环境 由于Hadoop基于Java开发,因此需要先安装JDK并设置JAVA_HOME变量指向解压后的目录位置[^1]。 ```bash export JAVA_HOME=/usr/local/jdk1.8.0_291 export PATH=$PATH:$JAVA_HOME/bin ``` #### 下载并解压Hadoop包 前往Apache官方网站下载稳定版本的Hadoop压缩文件至服务器上任意路径下,之后将其解压到指定目录内完成初步安装过程。 #### 修改核心配置文件core-site.xml 此文件位于`$HADOOP_HOME/etc/hadoop/`目录之下,主要定义了NameNode地址及其他全局参数: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://namenode_host:9000</value> </property> </configuration> ``` #### 调整HDFS配置文件hdfs-site.xml 同样处于上述相同的位置,用来设定DataNodes存储副本数量等属性: ```xml <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration> ``` #### 设置YARN资源管理器配置文件yarn-site.xml 该文档负责规划计算框架如何分配任务给不同机器执行: ```xml <configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>resourcemanager_host</value> </property> </configuration> ``` #### 启动Hadoop集群 当一切就绪后,可以依次启动各个组件来检验整个系统的运行状况。通常情况下会按照如下顺序操作:start-dfs.sh -> start-yarn.sh。 通过以上步骤即可搭建起一套完整的Hadoop伪分布模式实例;对于真实生产环境中多台物理机组成的集群而言,则还需要进一步调整网络连接、磁盘挂载方式等方面的内容以满足实际需求。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值