在CentOS上配置HDFS(Hadoop分布式文件系统)需要一系列步骤,包括安装Java、配置Hadoop环境变量、设置HDFS相关参数等。以下是一个基本的指南:
Hadoop需要Java运行环境,首先确保你的CentOS系统上已经安装了Java。
sudo yum install java-1.8.0-openjdk-devel
验证Java安装:
java -version
从Apache Hadoop官方网站下载最新版本的Hadoop,并解压到指定目录。
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/
编辑/etc/profile.d/hadoop.sh文件,添加以下内容:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export HADOOP_HOME=/usr/local/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使环境变量生效:
source /etc/profile.d/hadoop.sh
编辑$HADOOP_HOME/etc/hadoop/hdfs-site.xml文件,添加以下配置:
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop-3.3.4/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop-3.3.4/data/datanode</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>
在首次启动HDFS之前,需要对NameNode进行格式化。
hdfs namenode -format
启动HDFS集群:
start-dfs.sh
验证HDFS是否启动成功:
jps
你应该能看到NameNode和DataNode进程。
如果你还需要运行YARN,可以编辑$HADOOP_HOME/etc/hadoop/yarn-site.xml文件,添加以下配置:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
然后启动YARN:
start-yarn.sh
验证YARN是否启动成功:
jps
你应该能看到ResourceManager和NodeManager进程。
确保防火墙允许Hadoop所需的端口。例如,允许8020端口(NameNode)、50010端口(DataNode)等。
sudo firewall-cmd --permanent --zone=public --add-port=8020/tcp
sudo firewall-cmd --permanent --zone=public --add-port=50010/tcp
sudo firewall-cmd --reload
编辑/etc/hosts文件,添加所有节点的IP地址和主机名。
192.168.1.1 master
192.168.1.2 slave1
192.168.1.3 slave2
使用Hadoop命令行工具验证HDFS集群是否正常工作。
hdfs dfs -ls /
如果一切配置正确,你应该能看到HDFS根目录下的文件和目录。
以上步骤提供了一个基本的HDFS配置指南。根据你的具体需求和环境,可能需要进行更多的配置和调整。