下面给你一份在 CentOS 上配置 HDFS(Hadoop 分布式文件系统)的标准步骤,适用于 Hadoop 3.x(2.x 也类似)。假设你已经有一台或多台 CentOS 机器,这里先以单 NameNode + 多 DataNode 为例说明。
yum install -y java-1.8.0-openjdk 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 master
vi /etc/hosts
192.168.1.10 master
192.168.1.11 slave1
192.168.1.12 slave2
su - hadoop
ssh-keygen -t rsa
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
测试:
ssh slave1
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 /etc/profile
export HADOOP_HOME=/opt/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
source /etc/profile
以下配置文件都在:
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://master:9000</value>
</property>
</configuration>
vi hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hadoop/datanode</value>
</property>
</configuration>
创建目录:
mkdir -p /data/hadoop/namenode
mkdir -p /data/hadoop/datanode
chown -R hadoop:hadoop /data/hadoop
vi workers
slave1
slave2
scp -r /opt/hadoop slave1:/opt/
scp -r /opt/hadoop slave2:/opt/
su - hadoop
hdfs namenode -format
⚠️ 只能执行一次,重复会丢数据
start-dfs.sh
查看进程:
jps
浏览器访问:
http://master:9870
hdfs dfs -mkdir /test
hdfs dfs -put /etc/hosts /test
hdfs dfs -ls /test
firewall-cmd --add-port=9870/tcp --permanent
firewall-cmd --add-port=9000/tcp --permanent
firewall-cmd --reload
chown -R hadoop:hadoop /opt/hadoop
安装 Java
配置 SSH
安装 Hadoop
配置 core-site.xml / hdfs-site.xml
格式化 NameNode
启动 HDFS
如果你需要:
可以直接告诉我你的环境,我可以给你定制版步骤。