在 Linux 上配置 HDFS(Hadoop Distributed File System) 时,有很多细节容易踩坑。下面从系统环境、用户权限、网络、配置文件、目录权限、常见坑几个方面总结注意事项。
export JAVA_HOME=/usr/java/jdk1.8.0_xxx
export PATH=$JAVA_HOME/bin:$PATH
java -version
localhost 作为集群节点名/etc/hosts 必须一致:192.168.1.10 namenode
192.168.1.11 datanode1
192.168.1.12 datanode2
hostname
hadoop)useradd hadoop
ssh-keygen -t rsa
ssh-copy-id hadoop@datanode1
chown -R hadoop:hadoop /data/hadoop
Permission denied
通常在 $HADOOP_HOME/etc/hadoop/
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</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>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
⚠ 注意:
1datanode1
datanode2
常见端口:
systemctl stop firewalld
或放行:
firewall-cmd --add-port=9870/tcp --permanent
ntpdate cn.pool.ntp.org
hdfs namenode -format
⚠ 注意:
start-dfs.sh
hdfs dfsadmin -report
Web:
http://namenode:9870
| 问题 | 原因 |
|---|---|
| DataNode 不显示 | 多次格式化 NameNode |
| Permission denied | 目录权限不对 |
| Cannot assign address | hosts / 主机名错误 |
| Safe mode | 刚启动或磁盘异常 |
| 端口被占用 | 防火墙或别的进程 |
如果你愿意,我可以:
你可以直接说你用的是 Hadoop 几版本 + 单节点还是集群。