在 Linux 上配置 HDFS(Hadoop Distributed File System),一般指 Hadoop 伪分布式环境(单机但启用 HDFS)或 完全分布式集群。下面先给你一个最常用、可直接照做的“伪分布式 HDFS”配置流程,适合学习与测试;如果你需要完全分布式,我也可以单独给你一份。
java -version
如果没有:
# CentOS / Rocky
sudo yum install java-1.8.0-openjdk-devel -y
# Ubuntu
sudo apt install openjdk-8-jdk -y
设置 JAVA_HOME:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
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
mv hadoop-3.3.6 /usr/local/hadoop
编辑 ~/.bashrc:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
生效:
source ~/.bashrc
ssh-keygen -t rsa
ssh-copy-id localhost
ssh localhost
Hadoop 配置文件在:
$HADOOP_HOME/etc/hadoop
hadoop-env.shexport JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
core-site.xml<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml(HDFS 核心)<configuration>
<property>
<name>dfs.replication</name>
<value>1</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>
创建目录:
mkdir -p /usr/local/hadoop/data/namenode
mkdir -p /usr/local/hadoop/data/datanode
hdfs namenode -format
看到 successfully formatted 即可。
start-dfs.sh
检查进程:
jps
应看到:
NameNode
DataNode
SecondaryNameNode
浏览器访问:
http://localhost:9870
hdfs dfs -mkdir /test
hdfs dfs -put /etc/hosts /test
hdfs dfs -ls /test
JAVA_HOME$HADOOP_HOME/logs/
netstat -tunlp | grep 9000
如果你要 多台机器:
JAVA_HOMEworkers(DataNode 列表)core-site.xml 中 fs.defaultFS 指向 NameNodestart-dfs.sh你可以直接告诉我:
我可以给你 一步一步定制版配置。