Ubuntu上配置HDFS的关键注意事项
java -version
验证安装。配置JAVA_HOME
环境变量(如export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
),确保Hadoop能定位Java路径。sudo apt install ntp
)或使用ntpdate
校准时间(如sudo ntpdate cn.pool.ntp.org
)。hadoop
),并赋予sudo权限。避免使用root用户运行Hadoop,提升安全性。fs.defaultFS=hdfs://namenode:9000
),确保所有节点使用统一命名服务。dfs.replication
):生产环境建议3副本(dfs.replication=3
),单机测试可设为1;dfs.namenode.name.dir
、dfs.datanode.data.dir
),目录需提前创建并赋权(如sudo mkdir -p /path/to/data && sudo chown -R hadoop:hadoop /path/to/data
);dfs.nameservices
(集群名称)、dfs.ha.namenodes.mycluster
(NameNode列表)、dfs.namenode.shared.edits.dir
(JournalNode共享目录)等参数。yarn.resourcemanager.hostname=resourcemanager
)和Shuffle服务(yarn.nodemanager.aux-services=mapreduce_shuffle
),确保MapReduce任务能正常运行。ssh-keygen -t rsa
),并将公钥复制到目标节点(ssh-copy-id user@datanode-ip
)。测试免密登录(ssh user@datanode-ip
),避免启动集群时因密码提示失败。hdfs namenode -format
,初始化元数据目录。注意:格式化会清除已有数据,仅首次启动或元数据损坏时使用。hdfs --daemon start journalnode
,并在其中一个NameNode上执行hdfs namenode -initializeSharedEdits
初始化共享编辑日志;另一个NameNode通过hdfs namenode -bootstrapStandby
同步元数据。hdfs --daemon start journalnode
。dfs.ha.fencing.methods
(如sshfence
)和dfs.ha.fencing.ssh.private-key-files
(SSH私钥路径),确保故障NameNode能被及时隔离,避免脑裂问题。ha.zookeeper.quorum
),用于协调NameNode的主备切换。启动ZooKeeper服务(zkServer.sh start
)并验证状态(zkServer.sh status
)。hdfs --daemon start namenode
),最后启动DataNode(start-dfs.sh
)。若配置了YARN,还需启动ResourceManager(start-yarn.sh
)。jps
命令查看关键进程:NameNode、DataNode、SecondaryNameNode(或Standby NameNode)、ResourceManager、NodeManager。缺少进程需检查日志($HADOOP_HOME/logs
)排查错误。http://namenode-ip:50070
),查看集群状态、存储容量、DataNode列表等信息。scp
),避免节点配置不一致。sudo ufw allow 9000; sudo ufw allow 50070
)。