HDFS完全分布式搭建步骤

本文详细介绍Hadoop分布式集群的搭建过程,包括集群规划、时间同步、环境变量配置、免密登录设置、核心配置文件调整及常见问题解决,助力高效构建大数据处理平台。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.准备阶段

  • 分布式集群规划

准备4个Linux操作系统,并配置好IP地址,将NameNode在Hadoop1节点上启动,SecondaryNameNode和DataNode在Hadoop2节点上启动,其余两个DataNode分别在Hadoop3和Hadoop4节点上启动。**

主机名IP地址NameNodeSecondaryNameNodeDataNode
Hadoop1192.168.23.133启动
Hadoop2192.168.23.130启动启动
Hadoop3192.168.23.132启动
Hadoop4192.168.23.131启动

2.操作阶段

(1)为了不产生数据延迟首先使4台Linux系统的时间同步
①各个节点安装ntp :

yum install ntp

②安装完成后每个节点都执行如下命令从而达到时间同步

/*ntp1.aliyun.com为阿里的时间服务器*/
ntpdate ntp1.aliyun.com

(2)创建文件夹用来放置Hadoop和JDK的压缩包,然后输入以下命令解压压缩包

tar -zxvf Hadoop-2.6.5.gz
tar -zxvf jdk-1.8.0_151_linux-x64_bin.gz

配置Hadoop和JDK的环境变量
输入命令

vim ~/.bashrc

在文件最后添加

/*配置Hadoop环境变量*/
export HADOOP_HOME=/hpe/hadoop/Hadoop-2.6.5
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

/*配置JDK环境变量*/
export JAVA_HOME=/hpe/hadoop/jdk1.8.0_151
export PATH=$PATH:$JAVA_HOME/bin  

输入命令使环境变量生效

source ~/.bashrc

(3)配置免密登录
Hadoop1节点和其他节点之间进行免密访问
Hadoop1->Hadoop1
Hadoop1->Hadoop2
Hadoop1->Hadoop3
Hadoop1->Hadoop4
①修改hosts文件,做好ip之间的映射,输入以下命令

vim /etc/hosts

在hosts文件中添加以下代码,实现主机名的映射

192.168.23.133 Hadoop1
192.168.23.130 Hadoop2
192.168.23.132 Hadoop3
192.168.23.131 Hadoop4

③在所有节点执行以下命令

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

②在Hadoop1节点执行,将Hadoop1的公钥加入到其他节点的白名单中

ssh-copy-id -i ~/.ssh/id_rsa.pub root@Hadoop1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@Hadoop2
ssh-copy-id -i ~/.ssh/id_rsa.pub root@Hadoop3
ssh-copy-id -i ~/.ssh/id_rsa.pub root@Hadoop4

(4)修改hdfs-site.xml的配置文件

切换hdfs-site.xml所在的盘符,输入vim hdfs-site.xml,在其中添加如下代码
<property>
        <name>dfs.replication</name>
        <value>3</value> //Block副本数+1
</property>
<property>   
  
<name>dfs.namenode.secondary.http-address</name>
     <value>Hadoop2:50090</value> //使secondaryNamenode在Hadoop2系统上启动,50090是设置的端口号
</property>

(5)修改core-site.xml配置文件

输入vim core-site.xml,在其中添加如下代码
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://Hadoop1:9000</value> //设置默认前缀
</property>
<property>
        <name>hadoop.tmp.dir</name>
        <value>/var/abc/hadoop/cluster</value> //初始化生成文件夹的路径
</property>

(6)修改slaves配置文件

此部分设置的是DataNode在哪个节点启动
输入vim slaves,添加
Hadoop2
Hadoop3
Hadoop4
切记有空格,且不能在一行 

(7)将配置好的安装包分发到其他节点上

scp -r hadoop-2.6.5 root@Hadoop2:/hpe/hadoop/
scp -r hadoop-2.6.5 root@Hadoop3:/hpe/hadoop/
scp -r hadoop-2.6.5 root@Hadoop4:/hpe/hadoop/

(8)将所有的HDFS相关的进程关闭

stop-dfs.sh

(9)格式化NameNode(创建目录以及文件)在Hadoop1节点执行

hdfs namenode -format

(10)启动HDFS

start-dfs.sh

如出现下图,则HDFS完全分布式搭建成功

存活节点数为3,证明启动成功
Lives Nodes为3,证明启动成功。

3.搭建过程中遇见的问题

1).待Linux系统安装好后没有进行IP配置导致节点之间无法正常通信。
2).没有关闭防火墙,输入jps后每个节点正常显示启动的角色,但是页面无法访问。
3).hosts文件配置有误,主要原因是命令前有空格。
4).在配置好安装包分发到其他节点上以后,修改了Hadoop1节点的配置文件,导致secondaryNamenode角色启动失败。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值