在 CentOS 上配置 HDFS(Hadoop Distributed File System),通常是以 Hadoop 伪分布式模式(Pseudo-Distributed Mode) 或 完全分布式模式(Fully Distributed Mode) 来部署。下面我给你一个 从零开始的 CentOS + HDFS(伪分布式)配置示例,适合学习和测试环境。
systemctl stop firewalld
systemctl disable firewalld
hostnamectl set-hostname hadoop01
编辑 /etc/hosts:
192.168.1.100 hadoop01
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
java -version
vim /etc/profile
添加:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
生效:
source /etc/profile
useradd hadoop
passwd hadoop
切换用户:
su - hadoop
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -zxvf hadoop-3.3.6.tar.gz -C /opt/
mv /opt/hadoop-3.3.6 /opt/hadoop
vim ~/.bashrc
添加:
export HADOOP_HOME=/opt/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
生效:
source ~/.bashrc
vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
设置:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
vim $HADOOP_HOME/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value>
</property>
</configuration>
vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/dfs/data</value>
</property>
</configuration>
ssh-keygen -t rsa
ssh-copy-id hadoop01
测试:
ssh hadoop01
⚠️ 只执行一次
hdfs namenode -format
start-dfs.sh
检查进程:
jps
应看到:
NameNode
DataNode
SecondaryNameNode
浏览器访问:
http://hadoop01:9870
hdfs dfs -mkdir /test
hdfs dfs -put /etc/hosts /test
hdfs dfs -ls /test
hadoop.tmp.dir 是否有权限netstat -tunlp | grep 9000
chown -R hadoop:hadoop /opt/hadoop
如果是 多节点 HDFS:
hdfs-site.xml 中 dfs.replication > 1workers 文件配置 DataNode 节点如果你需要:
可以直接告诉我你的 节点数量和用途。