在CentOS上搭建HDFS(Hadoop分布式文件系统)集群需要以下几个步骤:
在所有服务器上安装Java:
sudo yum install java-1.8.0-openjdk-devel -y
在所有服务器上下载并解压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
sudo mv hadoop-3.3.1 /usr/local/hadoop
编辑Hadoop配置文件,主要修改以下几个文件:
hadoop-env.sh
在/usr/local/hadoop/etc/hadoop/hadoop-env.sh
中设置Java环境变量:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export HADOOP_HOME=/usr/local/hadoop
core-site.xml
在/usr/local/hadoop/etc/hadoop/core-site.xml
中配置HDFS的默认文件系统:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value>
</property>
</configuration>
hdfs-site.xml
在/usr/local/hadoop/etc/hadoop/hdfs-site.xml
中配置HDFS的相关参数:
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/data/datanode</value>
</property>
</configuration>
yarn-site.xml
在/usr/local/hadoop/etc/hadoop/yarn-site.xml
中配置YARN的相关参数:
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>resourcemanager</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
mapred-site.xml
在/usr/local/hadoop/etc/hadoop/mapred-site.xml
中配置MapReduce的相关参数:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
在所有服务器上生成SSH密钥并配置无密码登录:
ssh-keygen -t rsa
ssh-copy-id hadoop@namenode
ssh-copy-id hadoop@datanode1
ssh-copy-id hadoop@datanode2
在NameNode上启动HDFS:
start-dfs.sh
在ResourceManager上启动YARN:
start-yarn.sh
访问ResourceManager Web界面(通常是http://resourcemanager:8088)和NameNode Web界面(通常是http://namenode:50070)来验证集群状态。
确保防火墙允许Hadoop所需的端口:
sudo firewall-cmd --permanent --zone=public --add-port=9000/tcp
sudo firewall-cmd --permanent --zone=public --add-port=8088/tcp
sudo firewall-cmd --permanent --zone=public --add-port=50070/tcp
sudo firewall-cmd --reload
在所有服务器上编辑~/.bashrc
或/etc/profile
文件,添加以下内容:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
然后执行:
source ~/.bashrc
完成以上步骤后,你的HDFS集群应该已经成功搭建并运行。