环境依赖安装
yum install -y java-1.8.0-openjdk-devel
安装,安装后设置环境变量JAVA_HOME
(如export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
),并添加至/etc/profile
使配置生效。/opt/hadoop-3.2.4
),并通过chown -R hadoop:hadoop /opt/hadoop-3.2.4
设置所有权。网络与主机配置
192.168.1.1
,DataNode为192.168.1.2
),编辑/etc/hosts
文件将IP与主机名映射(如192.168.1.1 master
,192.168.1.2 slave1
),确保节点间可通过主机名互相访问。ssh-keygen -t rsa
),并将公钥复制到所有DataNode(ssh-copy-id slave1
),实现节点间无密码通信。时间同步
yum install -y ntp
),在NameNode上启动NTP服务(systemctl start ntpd
),并在所有DataNode上执行ntpdate master
同步时间,避免因时间差异导致数据不一致。HDFS的核心配置文件位于$HADOOP_HOME/etc/hadoop
目录下,主要包括core-site.xml
、hdfs-site.xml
,需根据业务需求调整参数。
core-site.xml(基础配置)
hdfs://<namenode-hostname>:<port>
(如hdfs://master:9000
),是HDFS服务的入口。/tmp/hadoop
),需确保该目录有足够空间且权限正确(chmod -R 755 /tmp/hadoop
)。hdfs-site.xml(HDFS核心参数)
dfs.replication
设置文件副本数量(生产环境建议3个,测试环境可调整为2个),影响数据容错能力。dfs.namenode.name.dir
,如/opt/hadoop/hdfs/namenode
)和DataNode(dfs.datanode.data.dir
,如/opt/hadoop/hdfs/datanode
)的数据存储目录,需使用绝对路径且目录需提前创建。dfs.blocksize
调整HDFS块大小(默认128MB,大数据场景可调整为256MB或512MB,提升并行处理效率)。高可用性(HA)配置
若需实现NameNode高可用,需额外配置dfs.nameservices
、dfs.ha.namenodes
、dfs.namenode.shared.edits.dir
等参数:
dfs.nameservices
定义集群名称(如mycluster
)。dfs.ha.namenodes.mycluster
指定多个NameNode(如nn1,nn2
),并为每个NameNode配置RPC地址(dfs.namenode.rpc-address.mycluster.nn1
)和HTTP地址(dfs.namenode.http-address.mycluster.nn1
)。dfs.namenode.shared.edits.dir
配置JournalNode的共享目录(如qjournal://jn1:8485;jn2:8485;jn3:8485/mycluster
),用于同步NameNode元数据。dfs.client.failover.proxy.provider.mycluster
(指定故障转移代理)和dfs.ha.fencing.methods
(如sshfence
,用于隔离故障NameNode),确保自动故障切换。YARN集成配置
若使用YARN作为资源管理器,需配置yarn-site.xml
(设置ResourceManager地址yarn.resourcemanager.hostname
)和mapred-site.xml
(指定MapReduce框架为YARNmapreduce.framework.name=yarn
),实现HDFS与YARN的资源协同。
格式化NameNode
首次启动HDFS或在NameNode数据目录变更后,需执行hdfs namenode -format
格式化NameNode(注意:此操作会清除原有数据,仅首次启动需执行)。
启动集群
start-dfs.sh
,启动NameNode、DataNode服务。start-yarn.sh
,启动ResourceManager、NodeManager服务。验证配置
jps
命令检查进程是否启动(NameNode节点应看到NameNode
进程,DataNode节点应看到DataNode
进程)。http://namenode-hostname:50070
),查看集群状态、存储容量等信息。hdfs dfs -mkdir /test
创建目录、hdfs dfs -put localfile /test
上传文件),验证HDFS功能是否正常。/opt/hadoop
、/tmp/hadoop
)需设置为hadoop
用户所有,避免权限问题导致服务异常。core-site.xml
、hdfs-site.xml
等配置文件,避免配置丢失。