1. 环境准备
在Debian系统上配置HDFS前,需完成基础环境准备:安装Java(建议Java 8及以上,通过apt install openjdk-11-jdk安装)、下载Hadoop(从Apache官网获取对应版本的tar.gz文件,如hadoop-3.3.15)、解压至指定目录(如/usr/local/hadoop)。同时,需规划集群角色(NameNode、DataNode、JournalNode等),确保节点间网络互通(可通过ping命令验证)。
2. 配置Hadoop环境变量
编辑全局环境变量文件(如/etc/profile或用户级~/.bashrc),添加Hadoop关键变量:JAVA_HOME(指向Java安装路径,如/usr/lib/jvm/java-11-openjdk-amd64)、HADOOP_HOME(指向Hadoop解压目录,如/usr/local/hadoop)、PATH(包含$HADOOP_HOME/bin和$HADOOP_HOME/sbin)。执行source /etc/profile使配置生效。
3. 配置HDFS核心配置文件
HDFS的关键配置文件位于$HADOOP_HOME/etc/hadoop目录下,需修改以下文件:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value> <!-- 单NameNode模式;高可用模式改为集群名如hdfs://mycluster -->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/cache/hadoop/tmp</value> <!-- 临时文件目录 -->
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value> <!-- 数据副本数,根据节点数量调整 -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/hdfs/namenode</value> <!-- NameNode元数据存储目录 -->
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hadoop/hdfs/datanode</value> <!-- DataNode数据存储目录 -->
</property>
</configuration>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>resourcemanager</value> <!-- ResourceManager节点主机名 -->
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value> <!-- Shuffle服务 -->
</property>
</configuration>
```。
4. 格式化NameNode
NameNode是HDFS的核心元数据管理节点,首次启动前需格式化(清除旧元数据):
hdfs namenode -format
格式化后,会在dfs.namenode.name.dir指定的目录下生成fsimage(元数据镜像)和edits(操作日志)文件。
5. 启动HDFS服务
在NameNode节点上执行以下命令启动HDFS集群:
$HADOOP_HOME/sbin/start-dfs.sh
启动后,可通过jps命令查看NameNode、DataNode进程是否运行(NameNode节点显示NameNode进程,DataNode节点显示DataNode进程)。
6. 验证HDFS配置
hdfs dfsadmin -report命令查看集群状态(包括DataNode数量、存储容量、数据副本数等);hdfs dfs -mkdir /test
hdfs dfs -put /usr/src/linux-source-2.6.27/Doc*/memory-barriers.txt /test
hdfs dfs -ls /test
若文件成功上传并列出,说明HDFS配置正常。7. 高可用性配置(可选,但推荐)
若需提升HDFS可靠性,可配置高可用性(HA),关键步骤包括:
core-site.xml,添加ZooKeeper地址:<property>
<name>ha.zookeeper.quorum</name>
<value>zoo1:2181,zoo2:2181,zoo3:2181</value>
</property>
hdfs-site.xml,配置主备NameNode、共享编辑日志目录(JournalNode负责存储):<property>
<name>dfs.nameservices</name>
<value>mycluster</value> <!-- 集群名 -->
</property>
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value> <!-- 主备NameNode标识 -->
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>nn1:8020</value> <!-- 主NameNode RPC地址 -->
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>nn2:8020</value> <!-- 备NameNode RPC地址 -->
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://zoo1:8485;zoo2:8485;zoo3:8485/mycluster</value> <!-- JournalNode共享目录 -->
</property>
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> <!-- 客户端故障转移代理 -->
</property>
hadoop-daemons.sh start journalnode