一、本周做了什么?
本周学习重点聚焦于Hadoop完全分布式环境的搭建与基础操作,这是向真正分布式集群迈进的关键一步。日均学习时间保持稳定,解决问题效率有所提升。
学习与编码:
学习时长: 保持 日均约2小时。
敲代码/实践: 日均 约1.5小时。核心活动为搭建和操作分布式集群:
SSH 免密登录配置: 在准备的多台虚拟机节点上,成功配置了主节点(Master)到所有从节点(Slave)的SSH免密登录。掌握了ssh-keygen生成密钥对、ssh-copy-id分发公钥的流程,并理解了其对于集群管理脚本(如start-dfs.sh)自动化操作的基础性作用。
Hadoop 完全分布式安装与配置: 这是本周的核心任务。在成功配置SSH的基础上,完成了Hadoop完全分布式环境的部署:
环境准备: 规划节点角色(NameNode, DataNode, ResourceManager, NodeManager等),确保网络互通、主机名映射、防火墙设置正确。
配置文件修改: 系统性地修改了core-site.xml(指定FS默认URI)、hdfs-site.xml(配置副本数、NameNode/DataNode数据目录)、mapred-site.xml(指定MapReduce运行框架为YARN)、yarn-site.xml(配置ResourceManager地址、NodeManager附加服务)、workers(列出所有DataNode主机名)。深刻理解了每个参数在分布式环境中的意义。
分发与启动: 将配置好的Hadoop目录分发至所有从节点。首次格式化HDFS(hdfs namenode -format),随后使用脚本启动HDFS和YARN集群。使用jps命令在所有节点逐一验证关键守护进程(NameNode, DataNode, ResourceManager, NodeManager)是否成功启动。
HDFS 命令行操作: 在完全分布式集群正式运行后,重点练习了使用hdfs dfs命令进行分布式文件系统操作:
基础操作:-mkdir, -ls, -put(从本地系统上传文件到HDFS), -get(从HDFS下载文件到本地), -cat, -cp, -mv, -rm。
查看信息:-df(查看磁盘使用情况), -du(查看目录/文件大小)。
权限管理:-chmod, -chown。
观察文件块信息:-ls -h /path/to/file 查看文件块分布。
解决问题: 日均耗时 约0.5小时。问题主要集中在环境配置层面:
SSH配置过程中,因权限问题(~/.ssh目录或authorized_keys文件权限过松)导致免密登录失败。
配置文件中的主机名或IP地址笔误,导致节点无法识别或连接。
首次启动时,因临时目录权限问题导致DataNode启动失败。
辅导任务: 持续进行 约3个下午 的辅导。
二、下周计划?
目标在稳定的分布式集群上开展实际应用与计算。
学习/实践: 保持 日均2小时,确保 1.5小时以上 动手操作。
MapReduce 分布式运行: 将之前编写的示例程序(如WordCount)打包成JAR,在完全分布式集群上运行,观察任务被分发到不同节点执行的过程和结果。
YARN 监控与管理: 通过YARN的Web UI界面监控提交作业的运行状态、资源使用情况以及日志查看。
HDFS 深入:
实践设置不同文件的副本数。
观察文件块在不同DataNode上的实际分布情况。
尝试模拟DataNode宕机,体验HDFS的容错性(数据是否仍可访问)。
生态工具初探: 开始了解Hive或HBase的基本概念和架构,为后续学习做准备。
辅导: 预计继续 2-3个下午。
三、本周遇到的问题?
SSH 配置细节: authorized_keys文件及~/.ssh目录的权限要求非常严格(必须为600和700),权限设置不当会直接导致免密登录失败,这是初期遇到的主要障碍。
配置一致性要求: 完全分布式环境下,所有节点的配置文件必须完全一致。任何节点上的配置差异都可能导致服务启动失败或行为异常,需仔细核对和同步。
网络与主机名解析: 集群节点间主机名必须能够正确解析(通过hosts文件或DNS),且防火墙需放行相关端口,否则节点间无法通信,服务启动后会迅速挂掉。
进程启动顺序与日志查看: 首次启动集群时,若某个节点进程未成功启动(如DataNode),需要熟练查看对应节点的日志文件(在logs目录下) 来定位问题,这是排查故障的关键手段。
理解与实践差距: 虽然理论上理解分布式架构,但亲手搭建和管理一个多节点集群带来的体感完全不同,对“分布式”有了更具体和深刻的认识,尤其是配置的精确性和节点协同的重要性。
总结: 第六周成功实现了从伪分布式到完全分布式的跨越,独立完成了多节点Hadoop集群的搭建与基础配置,并掌握了HDFS命令行操作。核心体会:分布式系统的威力建立在精确无误的配置和稳定的网络环境之上;日志是排查分布式问题的生命线;亲手搭建是理解集群管理的最佳方式。下周将开始在真正的集群上运行计算任务,深入体验分布式计算的魅力。继续探索!
