如何安装hadoop:单机伪分布式实操可直接落地流程

如何安装hadoop:单机伪分布式实操可直接落地流程

前段时间赶实训环境搭建,硬磕了整整一下午如何安装hadoop,从纯净的CentOS7系统起步,踩遍新手最容易犯的低级错误,最后慢慢调试出一套零冗余、能直接跑通的单机伪分布式安装步骤。

最开始完全没注意环境适配问题,随手在服务器装了最新的JDK17,想着新版本性能更好,结果解压完Hadoop安装包,准备配置环境变量的时候,各类兼容报错疯狂弹出。折腾好久才搞明白,Hadoop3.x系列只稳定适配JDK8,高版本JDK会直接出现编译不兼容、进程无法启动的问题。当即卸载了已安装的高版本Java,重新安装JDK8,手动配置好全局的JAVA_HOME环境变量,这一步基础环境才算彻底稳住,这也是很多人安装失败的根源。

防火墙和selinux必须关掉。

没关闭防护机制之前,所有的节点通信都会被拦截,哪怕配置全部正确,也无法正常启动集群。当时就是忽略了这个细节,白白浪费了半小时排查问题。直接执行systemctl stop firewalld关闭防火墙,再用setenforce 0临时关闭selinux,永久关闭则需要修改系统配置文件,重启系统生效,简单两步就能规避绝大多数通信拦截问题,是安装前必须做的前置操作。

SSH免密登录配置是最磨人的环节,也是伪分布式安装的核心步骤,跳过这一步,后续启动集群会反复弹窗要求输入密码,集群直接无法正常运行。系统默认自带SSH服务,不需要额外安装,直接输入ssh-keygen命令生成密钥,全程回车不设置任何密码,保证密钥生成无阻碍。之后执行ssh-copy-id localhost将密钥同步到本地主机,当时手敲命令的时候无意识多打了一个空格,反复执行都提示拷贝失败,盯着终端界面排查了好久,才发现这个不起眼的失误,删除多余空格重新执行,免密配置才彻底成功。

准备好基础环境后,开始处理Hadoop安装包,我用的是业内最稳定的3.3.4版本,提前上传到服务器后,用解压命令将安装包解压到/usr/local目录下。解压完成后需要修改文件夹的读写权限,一开始直接用root权限解压操作,导致后续普通用户启动集群时一直提示权限不足,无法读取配置文件。后来给整个Hadoop文件夹赋予755权限,开放基础读写执行权限,权限报错的问题才彻底解决。

核心配置文件不需要堆砌多余参数,新手最容易踩的坑就是照搬网上的全套复杂配置,画蛇添足导致报错。只需要修改四个核心配置文件,core-site.xml配置文件核心端口和临时目录,hdfs-site.xml设置文件副本数为1(单机模式必备),mapred-site.xml指定运行框架,yarn-site.xml配置资源调度参数,所有配置只保留基础必要内容,多余参数全部删除,避免参数冲突。

格式化HDFS只能做一次。

配置文件全部修改保存后,就可以执行namenode格式化命令。刚开始不懂规则,报错之后就反复执行格式化指令,完全不知道多次格式化会导致节点ID错乱,直接把整个环境搞废了。后来才反应过来,HDFS格式化仅需执行一次,多次操作会造成集群数据标识冲突,只能删除临时文件夹,重新解压安装包从头配置。一次性执行hdfs namenode -format,看到格式化成功的日志输出,就代表核心初始化完成。

最后依次执行start-dfs.sh和start-yarn.sh启动集群,输入jps命令查看进程,能看到NameNode、DataNode、ResourceManager等全部核心进程,就说明Hadoop已经完整安装成功。整个流程没有复杂操作,所有报错基本都是细节疏漏导致,没有任何技术门槛,只要避开适配、权限、格式化这几个坑,新手也能一次性装通。

调试完所有进程正常运行的时候,窗外已经完全黑了,只是草草截了一张jps进程界面的图,没有备份任何配置文件。

了解更多百科知识请访问 百科