下面以 CentOS 7/8 为例,系统性地说明 HDFS(Hadoop 分布式文件系统) 的基本配置流程。假设你要搭建一个 单 NameNode + 多 DataNode 的伪分布式或完全分布式环境。
HDFS 依赖 Java:
yum install -y java-1.8.0-openjdk-devel
java -version
配置 JAVA_HOME:
vi /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
hostnamectl set-hostname namenode
/etc/hosts 示例:
192.168.1.10 namenode
192.168.1.11 datanode1
192.168.1.12 datanode2
su - hadoop
ssh-keygen -t rsa
ssh-copy-id datanode1
ssh-copy-id datanode2
wget https://archive.apache.org/dist/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
配置环境变量:
vi /etc/profile
export HADOOP_HOME=/opt/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
source /etc/profile
配置文件路径:
cd $HADOOP_HOME/etc/hadoop
hadoop-env.shexport JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export HDFS_NAMENODE_USER=hadoop
export HDFS_DATANODE_USER=hadoop
export HDFS_SECONDARYNAMENODE_USER=hadoop
core-site.xml<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value>
</property>
</configuration>
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>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
workers(Hadoop 3.x)vi workers
datanode1
datanode2
(伪分布式写 localhost)
hdfs namenode -format
start-dfs.sh
jps
正常应看到:
Web UI:
http://namenode:9870
hdfs dfs -mkdir /test
hdfs dfs -put file.txt /test
hdfs dfs -ls /
hdfs dfs -cat /test/file.txt
chown -R hadoop:hadoop /opt/hadoop
systemctl stop firewalld
systemctl disable firewalld
检查:
如果你需要:
可以直接告诉我你的使用场景。