在CentOS上搭建HDFS(Hadoop分布式文件系统)集群涉及多个步骤,包括安装Hadoop、配置Hadoop环境、启动HDFS服务等。以下是一个基本的指南:
前提条件
- 操作系统:CentOS 7或更高版本。
- Java环境:Hadoop需要Java环境,建议安装Java 8或更高版本。
- 网络配置:确保所有节点之间可以互相通信,配置好hosts文件。
- 防火墙设置:确保必要的端口(如50010, 50020, 50070, 50075, 50090等)是开放的。
步骤
1. 安装Java
sudo yum install java-1.8.0-openjdk-devel
2. 下载并解压Hadoop
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz tar -xzvf hadoop-3.3.1.tar.gz -C /usr/local/ sudo mv /usr/local/hadoop-3.3.1 /usr/local/hadoop
3. 配置环境变量
编辑/etc/profile.d/hadoop.sh
文件:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
然后使配置生效:
source /etc/profile.d/hadoop.sh
4. 配置Hadoop
编辑$HADOOP_HOME/etc/hadoop/hadoop-env.sh
文件,设置Java路径:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
编辑$HADOOP_HOME/etc/hadoop/core-site.xml
文件,配置HDFS的URI:
fs.defaultFS hdfs://namenode:9000
编辑$HADOOP_HOME/etc/hadoop/hdfs-site.xml
文件,配置HDFS的相关参数:
dfs.replication 3 dfs.namenode.name.dir /usr/local/hadoop/data/namenode dfs.datanode.data.dir /usr/local/hadoop/data/datanode
编辑$HADOOP_HOME/etc/hadoop/mapred-site.xml
文件,配置MapReduce框架:
mapreduce.framework.name yarn
编辑$HADOOP_HOME/etc/hadoop/yarn-site.xml
文件,配置YARN的相关参数:
yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler
5. 格式化HDFS
在NameNode节点上执行:
hdfs namenode -format
6. 启动HDFS集群
在NameNode节点上启动HDFS:
start-dfs.sh
在ResourceManager节点上启动YARN:
start-yarn.sh
7. 验证集群状态
访问ResourceManager Web界面(通常是http://resourcemanager-node:8088),查看集群状态。
注意事项
- 确保所有节点的时间同步。
- 确保所有节点的Hadoop配置文件一致。
- 确保防火墙设置正确,允许必要的端口通信。
通过以上步骤,你应该能够在CentOS上成功搭建一个基本的HDFS集群。根据实际需求,你可能需要进一步调整和优化配置。