下面给你一个Linux 下 HDFS 集群搭建的核心思路与步骤(以 Hadoop 3.x 为例,最常用)。如果你只是想“快速理解怎么搭”,看前半部分即可;后面是实操步骤。
一个最基础的 HDFS 集群包含:
| 角色 | 作用 |
|---|---|
| NameNode (NN) | 管理元数据(文件目录、块信息) |
| DataNode (DN) | 真正存储数据 |
| SecondaryNameNode | 辅助 NN(不是热备) |
| ResourceManager / NodeManager | YARN(可选,算集群用) |
最小集群结构:
示例:
192.168.1.10 namenode
192.168.1.11 datanode1
192.168.1.12 datanode2
java -version
推荐 JDK 8 或 11
useradd hadoop
NameNode 要能免密登录所有节点:
ssh-keygen
ssh-copy-id datanode1
ssh-copy-id datanode2
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -zxvf hadoop-3.3.6.tar.gz
mv hadoop-3.3.6 /opt/hadoop
vi /etc/profile
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
core-site.xml<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value>
</property>
</configuration>
hdfs-site.xml<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/data/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/data/data</value>
</property>
</configuration>
workers(Hadoop 3)vi $HADOOP_HOME/etc/hadoop/workers
datanode1
datanode2
hdfs namenode -format
start-dfs.sh
jps
应看到:
Web 页面:
http://namenode:9870
hdfs dfs -mkdir /test
hdfs dfs -put file.txt /test
hdfs dfs -ls /test
如果你愿意,可以告诉我:
我可以直接给你一套可复制的集群配置。