在 CentOS 上配置 HDFS(Hadoop Distributed File System),通常分为 单机伪分布式 和 完全分布式 两种模式。下面我用 最常用、最稳妥 的方式,一步一步给你讲清楚(以 Hadoop 3.x + CentOS 7/8 为例)。
cat /etc/centos-release
sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
java -version
echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk" >> ~/.bashrc
echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> ~/.bashrc
source ~/.bashrc
sudo useradd hadoop
sudo 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
mv hadoop-3.3.6 hadoop
vi ~/.bashrc
添加:
export HADOOP_HOME=~/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
生效:
source ~/.bashrc
验证:
hadoop version
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
测试:
ssh localhost
以下配置文件均在:
cd $HADOOP_HOME/etc/hadoop
vi hadoop-env.sh
添加:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
vi hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/hadoop_data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/hadoop_data/datanode</value>
</property>
</configuration>
伪分布式 data replication 设为 1
vi workers
内容:
localhost
hdfs namenode -format
✅ 看到 successfully formatted 才算成功
start-dfs.sh
查看进程:
jps
应看到:
http://服务器IP:9870
hdfs dfs -mkdir /test
hdfs dfs -put file.txt /test
hdfs dfs -ls /test
stop-dfs.sh
echo $JAVA_HOME
netstat -tunlp | grep 9000
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
✅ 搭建 YARN(MapReduce)
✅ 配置 完全分布式 HDFS
✅ 对接 Hive / Spark / Flink
✅ 配置 高可用 HDFS(HA)
如果你愿意,我可以:
你现在是 学习 / 测试 / 生产 环境?