Hadoop的搭建思路
前面,我们已经搭建过单节点的“伪分布式”,现在来分享一下我的搭建思路
因为我现在已经搭建好了多节点的“完全分布式”,发现这个思路很通用,包括在其他很高级的技术里,是非常相通的
后面,还有两次将这个“伪分布式”升级为“完全分布式”,再到“HA模式”;在这两次过程中,动手亲自体会这个代入感
明天会更新:由“伪分布式”到“完全分布式”的搭建过程,务必先熟悉一下流程步骤
思路
官网导读:先过一遍文档,看要干什么,大致理清步骤是什么
细节可以不知道,但是步骤一定不能错,前后依赖关系不要错,每一步发生之前一定要做什么
因为步骤对的时候,再去查细节,搭的时候才能一次成功,绝不是搭一遍失败、搭一遍失败,讲究的是“单位时间内”能干成功什么
强调:步骤是最重要的,因为有依赖关系
步骤总结(伪分布式)
- 基础设施(通用的)
- 平台:最好是 GNU/Linux ,环境、网络、必须软件
- Linux 系统的配置
- IP 及 主机名
- 闭:防火墙 & selinux
- 设置hosts映射
- 时间同步
- 安装环境(Java)
- 设置SSH免密
- 应用的搭建:部署配置
- 部署路径
- 配置文件
- Hadoop需要Java环境(应该没说过为什么,在下面解释一下)
- 各角色在哪里启动
- NN:core-site.xml:fs.defaultFS hdfs://node01:9000
- DN:slaves:node01
- ……
- 角色启动时的细节配置:文件存放的地方(目录)
- dfs.namenode.name.dir
- dfs.datanode.data.dir
- ……
- 格式化 / 初始化 和 运行
- 格式化:格式掉旧的,生成新的空的文件
- Fsimage
- VERSION
- 运行:启动角色进程
- start-dfs.sh
加载我们的配置文件,通过ssh 免密的方式去启动相应的角色 - jps命令 看启动的JVM进程
- start-dfs.sh
- 格式化:格式掉旧的,生成新的空的文件
- 命令行使用 和 验证知识点
补充解释
为什么要给Hadoop单独配置JAVA_HOME,不是给系统配过JAVA_HOME了吗,它去系统找不可以吗?
因为NN要想使用hadoop的配置文件去启动别节点,那么NN要用ssh免密登录别节点,需要Java命令启动进程
问题就出在ssh登录,ssh登录的Shell,并不会加载/etc/profile,所以里面的JAVA_HOME对Hadoop脚本来说相当于没有
所以要单独给Hadoop-env.sh配置一个JAVA_HOME