下面给你一个**在 CentOS 上部署 HDFS(Hadoop 分布式文件系统)**的完整实操指南,适用于 Hadoop 3.x,适合学习和生产环境入门。
示例:
| 主机名 | 角色 |
|---|---|
| master | NameNode + DataNode |
| slave1 | DataNode |
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 关闭 SELinux
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
hostnamectl set-hostname master
vi /etc/hosts
192.168.1.10 master
192.168.1.11 slave1
所有节点都要配置
useradd hadoop
passwd hadoop
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
验证:
java -version
su - hadoop
cd /opt
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=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
生效:
source ~/.bashrc
以下配置文件在:
cd $HADOOP_HOME/etc/hadoop
vi hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export HADOOP_HOME=/opt/hadoop
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/data/datanode</value>
</property>
</configuration>
vi workers
master
slave1
ssh-keygen -t rsa
ssh-copy-id master
ssh-copy-id slave1
测试:
ssh slave1
hdfs namenode -format
start-dfs.sh
查看进程:
jps
应看到:
浏览器访问:
http://master:9870
hdfs dfs -mkdir /test
hdfs dfs -put /etc/hosts /test
hdfs dfs -ls /test
hadoop-env.sh 中 Java 路径| 模式 | 适用 |
|---|---|
| 伪分布式 | 学习、测试 |
| 完全分布式 | 生产 |
如果你需要:
可以直接告诉我,我可以给你定制方案。