在 CentOS 上启动 HDFS 集群,通常是在已经安装并配置好 Hadoop 的前提下进行的。下面按常规步骤说明(以 Hadoop 3.x 为例,Hadoop 2.x 类似)。
确保以下文件已正确配置(以 $HADOOP_HOME 为例):
etc/hadoop/core-site.xmletc/hadoop/hdfs-site.xmletc/hadoop/workers(或 slaves)etc/hadoop/hadoop-env.sh示例:
<!-- core-site.xml -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value>
</property>
<!-- hdfs-site.xml -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
export JAVA_HOME=/usr/java/jdk1.8.0_xxx
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
systemctl stop firewalld
systemctl disable firewalld
⚠️ 只做一次,且只能在 NameNode 上执行
hdfs namenode -format
在 NameNode 节点执行:
start-dfs.sh
该命令会:
workers 文件)# 启动 NameNode
hdfs --daemon start namenode
# 启动 DataNode
hdfs --daemon start datanode
# 启动 SecondaryNameNode(如有)
hdfs --daemon start secondarynamenode
在 所有 DataNode 节点 上执行:
hdfs --daemon start datanode
jps
应看到:
http://namenode:9870
(Hadoop 3.x,2.x 是 50070)
hdfs dfs -ls /
hdfs dfs -mkdir /test
hdfs dfs -put file.txt /test
stop-dfs.sh
或:
hdfs --daemon stop namenode
hdfs --daemon stop datanode
使用非 root 用户启动 Hadoop:
chown -R hadoop:hadoop /opt/hadoop
start-dfs.sh 依赖 SSH:
ssh-keygen
ssh-copy-id datanode1
ssh-copy-id datanode2
检查:
netstat -tunlp | grep 9000
如果你愿意,可以告诉我:
我可以给你更精确的启动命令。