在 CentOS 上启动 HDFS,通常是以 Hadoop 集群 的方式运行。下面按 最常见场景(Hadoop 伪分布式或完全分布式) 给你一个完整、可操作的启动流程。
确认 Hadoop 已安装,例如:
$HADOOP_HOME
# 常见路径
/usr/local/hadoop
/opt/hadoop
检查版本:
hadoop version
Hadoop 启动脚本依赖 SSH。
ssh localhost
如果不能免密登录,执行:
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
java -version
Hadoop 3.x 推荐 JDK 8 或 11。
路径一般在:
$HADOOP_HOME/etc/hadoop/
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</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
确认 JAVA_HOME:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
只在第一次执行一次!
hdfs namenode -format
看到类似 successfully formatted 即成功。
start-dfs.sh
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
(Hadoop 3.x 使用 hdfs --daemon start)
jps
应至少看到:
http://localhost:9870
(Hadoop 2.x 是 50070,3.x 是 9870)
hdfs dfs -ls /
hdfs dfs -mkdir /test
hdfs dfs -put /etc/hosts /test
hdfs dfs -ls /test
stop-dfs.sh
rm -rf /data/hadoop/datanode/*
hdfs namenode -format
start-dfs.sh
netstat -tunlp | grep 9000
systemctl stop firewalld
systemctl disable firewalld
# 1. 格式化
hdfs namenode -format
# 2. 启动
start-dfs.sh
# 3. 验证
jps
hdfs dfs -ls /
如果你愿意,我可以:
直接告诉我你的 Hadoop 版本和 CentOS 版本 即可。