大数据之三 hadoop HDFS集群完全分布式搭建

本文详细介绍如何在四台虚拟机上搭建HDFS完全分布式集群,包括静态IP配置、防火墙关闭、时间同步、SSH免密登录设置、JDK及Hadoop环境配置等关键步骤。

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

完全分布式

多台服务器,每台服务器启动表示不同角色的不同进程,组成HDFS集群
现在以四台虚拟机为例,主机名分别为node01,node02,node03,node04.
node01–>NameNode
node02–>SecondaryNameNode DateNode
node03–>DateNode
node04–>DataNode

完全分布式搭建步骤

  1. 首先确保各节点都配置好静态IP
  2. 配置各节点的hosts,修改/etc/hosts文件
[root@node01 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.23.130 node01
192.168.23.131 node02
192.168.23.133 node03
192.168.23.134 node04

  1. 关闭各节点的防火墙
    使用 service iptables status命令查看当前防火墙状态
    使用 service iptables stop暂时关闭防火墙(防火墙会在下次开机时启动)
    使用 chkconfig iptables off永久关闭防火墙(该命令在下次重启时生效)

  2. 时间同步
    首先在各个节点上使用yum install ntp安装ntp命令
    执行ntpdate ntp1.aliyun.com来同步时间(这里使用阿里云服务器的时间)

  3. 配置SSH免密登录
    在所有节点上执行ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    在node01节点上执行以下命令(将node01的公钥加入到其他节点的白名单中)

ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node02
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node03
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node04
  1. 所有节点配置JDK
    所有节点在 /etc/profile 中配置JDK环境变量
export JAVA_HOME=/opt/zgl/jdk1.8.0_151		<!-- 你的JDK的实际位置 -->
export PATH=$PATH:$JAVA_HOME/bin
  1. 在node01节点(即NameNode节点)配置hadoop
    修改hdfs-site.xml配置文件
    <property>
            <name>dfs.replication</name>
            <value>3</value>	<!-- 总存储分数(备份数+1)-->
    </property>
    
    <property>     
     <name>dfs.namenode.secondary.http-address</name>
         <value>node02:50090</value>	   <!-- SecondaryNameNode的位置 -->
    </property>

修改core-site.xml配置文件

<property>
        <name>fs.defaultFS</name>		<!--  HDFS文件默认地址前缀(简化实际访问时路径书写) -->
        <value>hdfs://node01:9000</value>
</property>
<property>
        <name>hadoop.tmp.dir</name>			<!-- HDFS文件存储位置 -->
        <value>/var/abc/hadoop/cluster</value>
</property>

修改slaves配置文件
配置DataNode节点,注意每行写一个

node02
node03
node04

修改hadoop-env.sh配置文件

    # The java implementation to use.
    export JAVA_HOME=/opt/zgl/jdk1.8.0_151
    # 在hadoop-env.sh 配置一条hadoop配置文件所在目录
    export HADOOP_CONF_DIR=/opt/zgl/hadoop-2.6.5/etc/hadoop

刷新配置 source hadoop-env.sh

  1. 将配置好的hadoop安装包分发到其他节点上
    使用 scp 命令将hadoop安装包分发到其他节点,注意其他节点提前建好目录且与node01目录(名称,层级)保持一致
    eg: node01 /opt/zgl/hadoop-2.6.5 其他节点 /opt/zgl
scp -r hadoop-2.6.5 root@node02:/opt/zgl/
scp -r hadoop-2.6.5 root@node03:/opt/zgl
scp -r hadoop-2.6.5 root@node04:/opt/zgl/
  1. 关闭所有节点上的HDFS相关进程
stop-dfs.sh
  1. 在node01节点执行格式化NameNode
hdfs namenode -format
  1. 在node01节点上启动HDFS
start-dfs.sh
  1. 在各节点上运行jps命令查看节点是否启动
[root@node01 ~]# jps
2408 NameNode
3545 Jps

[root@node02 ~]# jps
2225 DataNode
2290 SecondaryNameNode
4283 Jps

[root@node03 ~]# jps
3252 Jps
2110 DataNode

[root@node04 ~]# jps
4662 Jps
2111 DataNode

这里我们也可以通过hadoop提供的 web UI 来进行查看
打开浏览器,输入http://192.168.23.130:50070(因为主机 hosts 文件中并未配置node01,所以这里不能使用 http://node01:50070来访问),然后我们就来到如下页面
node01 WEB UI
在 Summary 中可以看到 Live Nodes(存活节点数),点击 Live Nodes可以进入节点详情页
Live Nodes
Live Nodes详情页

思维导图

完全分布式搭建思维导图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值