Linux入门攻坚——92、Hadoop-4-安装与使用-分布式模型

发布时间:2026/9/29 4:24:14

Linux入门攻坚——92、Hadoop-4-安装与使用-分布式模型 分布式模型是真正集群模型由多台机器组成真实集群各节点分工明确。这里测试安装使用Hadoop3.2.4版本。下载hadoop-3.2.4.tar.gz1、JAVA安装部署查询网上资料在Hadoop生产环境中‌强烈推荐使用 RedHat OpenJDK。OpenJDK默认是安装于/usr/lib/jvm/目录下推荐JAVA_HOME直接指向这个目录中安装的JAVA目录。修改/etc/profile.d/java.shsource /etc/profile.d/java.sh此时的JAVA已经切换为OpenJDK了。2、分布式模型的架构图及测试环境资源一般在生产环境中HDFS层的NN节点单独部署于一台机器SNN单独部署于一台机器然后是DN节点YARN层RM单独部署于一台机器NM则部署于各DN节点这是因为RM、NN、SNN在实际生产中负载很重。在实验测试环境中将RM、NN、SNN集中于一台机器只需四台机器。确保JAVA环境在每个节点都已经部署。3、环境准备域名解析配置一个有一个主节点和三个从节点的 Hadoop-YARN 集群。集群中所用的各节点必须有一个惟一的主机名和 IP 地址并能够基于主机互相通信。通过/etc/hosts 文件进行主机解析其中 node0 为主节点其有一个别名为 masternode1、node2 和 node3为从节点。配置hosts文件确保域名解析四个节点相同用户和组HDFS和YARN统一使用hadoop用户和hadoop组创建用户组并指定其组idgroupadd -g 1017 hadoop创建用户并指定用户组useradd -u 1020 -g hadoop hadoop为用户设置密码echo 123456 | passwd --stdin hadoop各节点创建的用户组和用户的id最好是一致。配置秘钥认证方式登录集群模型下数据节点数量众多一般是需要通过 master 节点启动或停止整个集群这就需要在master节点上配置用于运行服务的用户(这里就是上一步创建的hadoop用户)能以密钥认证(passwordless)的方式通过ssh远程连接至各从节点。切换至hadoop用户生成密钥对ssh-keygen -t rsa -P ‘’拷贝公钥到其他节点如到node1节点ssh-copy-id -i .ssh/id_rsa.pub hadoopnode1此时从master节点以hadoop用户访问其他节点时就不需要密码了。所需目录hadoop安装目录及各数据保存目录安装目录依然为/bdapps数据目录/hddata/hadoop/hdfs/{nn,snn,dn}安装hadoop3.2.4tar xvf hadoop-3.2.4.tar.gz -C /bdapps/创建符号链接ln -sv hadoop-3.2.4/ hadoop在hadoop目录下创建logs目录并增加组写权限cd hadoopmkdir logschmod gw logs修改属主属组chown -R hadoophadoop ./*4、配置hadoop各配置文件core-site.xmlHadoop核心的配置文件。将hdfs的地址由localhost改为master用ip也可以即192.168.147.137即配置NameNode的地址。yarn-site.xmlYARN的配置文件将localhost改为master因为测试环境将NNSNNRM放在同一台主机实际生产环境可能是分开的此时要按照实际情况设置。hdfs-site.xml对HDFS的配置如保存副本的数量各节点的数据目录。默认副本数一般是3测试环境只有三个DN节点设置成2mapred-site.xml配置MapReduce使用的资源管理器这里使用的是yarnworkers文件slaves文件给出从节点列表也就是DataNode节点信息。对于3版本使用的是workers配置文件而版本2中使用的是slaves文件。/etc/profile.d/hadoop.shHadoop的环境变量配置文件因为其安装路径被连接到hadoop与前面的伪分布式模型相同将上述配置文件拷贝到其他节点各节点的配置文件相同因为要保持属主属组等属性切换至hadoop用户拷贝su - hadoopcd /bdapps/hadoop/etc/hadoopscp ./* node1:/bdapps/hadoop/etc/hadoop//etc/profile.d/hadoop.sh则使用root用户拷贝scp /etc/profile.d/hadoop.sh node1:/etc/profile.d/5、格式化HDFS在HDFS集群的NN启动之前需要先初始化其用于存储数据的目录。如果hdfs-site.xml中 dfs.namenode.name.dir 属性指定的目录不存在格式化命令会自动创建之如果事先存在要确保其权限设置正确此时格式操作会清除其内部的所有数据并重新 建立一个新的文件系统。需要以 hdfs 用户的身份在 master 节点执行格式化命令测试中统一使用了hadoop用户则以hadoop用户格式化hdfs namenode -format格式化时提示了警告信息WARNING: HADOOP_PREFIX has been replaced by HADOOP_HOME. Using value of HADOOP_PREFIX.在Hadoop3版本中正式用HADOOP_HOME替代旧的HADOOP_PREFIX变量需要在/etc/profile.d/hadoop.sh设置文件中修改一下但不影响使用。5、启动Hadoop进程启动Hadoop-YARN集群的方法有两种一是在各节点分别启动需要启动的服务二是在 master 节点启动整个集群。第一种就是前面的单进程精确控制启动第二种是分模块启动测试使用这一种启动前使用jps查看各节点的进程发现都是只有一个jpsstart-dfs.sh可以看到NN和SNN在主节点启动了DN在三个从节点启动了。停止hdfsstop-dfs.sh6、测试HDFShdfs dfs -mkdir /testhdfs dfs -put /etc/fstab /test/fstabhdfs dfs -ls /test在各DN节点查看到底存在哪些节点上因为设置了副本为2份所以应该在两个DN上有数据fstab数据保存在node1和node2上。7、启动YARNstart-yarn.sh主节点上启动了ResourceManager各从节点启动了NodeManager。至此Hadoop系统启动完毕。查看监听的端口可以直接用浏览器查看http://192.168.147.137:9870这个是9870是在Hadoop3版中NameNode的Web UI监听端口在2版本中此端口为50070可以看到活动节点是3个从上图可以看出在node1和node2上各有一个块这正是上传的fstab文件保存在node1和node2上。yarn的Web UI监听端口还是8088http://192.168.147.137:80888、运行作业测试yarn jar /bdapps/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.4.jar wordcount /test/fstab /test/functions /test/out作业一直没有执行完毕在主节点使用yarn node -list居然没有发现从节点原因应该是从节点在主节点的注册没有成功修改yarn-site.xml文件增加此时重新启动从节点注册成功在主节点使用yarn node -list能够发现从节点再次运行还是出现错误yarn-site.xml中有错误的配置改成如下此时再次重启hadoop执行测试作业成功从Web UI中查看YARN 集群管理命令yarn 命令有许多子命令大体可分为用户命令和管理命令两类。用户命令为 Hadoop-YARN 客户端命令。这些客户端根据 yarn-site.xml 中配置的参数连接至 YARN 服务并按需运行指定的命令。jar 命令通过 YARN 代码运行 jar 文件即向 RM 提交 YARN 应用程序。运行时其会启动 RunJar 类的主方法检查参数列表并校验 jar 文件而后展开 jar 文件并运行之。application 管理 yarn 中的各 application。yarn application options常用选项有-status ApplicationID获取指定 appliction 的状态信息输出格式为 application report 格 式。-list [-appTypes] [-appStates]列出 YARN 上的应用程序列表有两个可选的子选项 -appTypes 和 -appStates。appTypesMAPREDUCE、YARNappStatesALL、NEW、NEW_SAVING、SUBMITTED、ACCEPTED、RUNNING、FINISHED、FAILED、KILLED。-kill ApplicationID终止正在运行或已提交的应用程序。如果指定的应用程序已经完成其状态为 FINISHED、KILLED 或 FAILED则直接输出相应信息否则将向 ResourceManager 发送终止该应用程序的请求。node YARN 集群由运行 NodeManager 进程的 slave 节点及运行 ResourceManager 的 master 组成。ResourceManager会记录各节点的相关信息 。yarn node options常用选项有-listyarn 集群内的node列表可结合-states子选项过滤节点而-all 子选项用于控制显示所有节点。常用的状态有 NEW, RUNNING, UNHEALTHY, DECOMMISSIONED, LOST 和 REBOOTED。-status NodeId以节点报告格式打印指定节点的信息。其中NodeId 参数是一个字 符串是 org.apache.hadoop.yarn.api.records.NodeId 类的一个对象通常由节点的主机名和端 口号组成。logs 用于从已经完成的 YARN 应用程序(即状态为 FAILED、KILLED 或 FINISHED)上获取日 志信息。不过如果需要通过命令行查看日志需要为 YARN 集群启用 log-aggregation 属性 在 yarn-site.xml 配置文件中定义 yarn.log-aggregation-enable 属性的值为 true 即可。yarn logs -applicationId application ID options常用选项-applicationId applicationID必备选项用于从 ResourceManager 获取其详细信息-aapOwner AppOwner可选选项默认为当前用户-nodeAddress NodeAddress -containerId containerID用于获取指定节点上指定容器的相关信息其中 NodeAddress 的格式同 NodeId。classpath 命令用于显示 YARN 集群 CLASSPATH 的值。yarn classpathversion 用于显示当前YARN集群中yarn程序的版本号。yarn version管理命令 resourcemanager/nodemanager/timelineserver 这几个管理理命令主要用于在节点上启动相应的服务。resourcemanager用于启动节点上的 ResourceManager 服务nodemanager用于启动节点上的 NodeManager 服务timelineserver用于启动节点上的 timeline 服务器rmadmin 是 ResourceManager 的客户端程序可用于刷新访问控制策略、调度器队列及注册到 RM 上的节点等。刷新之后结果无需重启集群服务即可生效。yarn rmadmin options常用选项-refreshQueues重载队列的 acl、状态及调用器队列它会根据配置文件中的配置信息重新初始化调用器-refreshNodes为RM刷新主机信息它通过读取RM节点的include和exclude文件来更新集群需要包含或排除的节点列表-refreshUserToGroupsMappings根据配置的Hadoop安全组映射通过刷新组缓存中的信息来更新用户和组之间的映射关系-refreshSuperUserGroupsConfiguration刷新超级用户代理组映射以及更新代理主机和 core-site.xml 配置文件中 hadoop.proxyuser 属性定义的代理组-refreshAdminAcls根据 yarn 站点配置文件或默认配置文件中的 yarn.admin.acl 属性刷 新 RM 的管理 ACL-refreshServiceAcl重新加载服务级别的授权策略文件随后 RM 将重新加载该授权策略文件它会检查 Hadoop 安全授权是否已启用并为 IPC Server、ApplicationMaster、Client 和 Resource tracker 刷新 ACL。DaemonLog用于查看或更新 RM 及 NM 守护进程的日志级别它会在检验管理权限通过后在内部直接连接至“http://host:port/logLevel?logname service”。yarn daemonlog options args常用选项-getLevel host:port name显示指定守护进程的日志级别-setLevel host:port name level设置守护进程的日志级别运行 YARN ApplicationYARN Application应用程序可以是一个简单的 shell 脚本、MapReduce 作业或其它任意类型的作业。需要运行 Application 时客户端需要事先生成一个 ApplicationMaster而后客户端把 application context 提交给 ResourceManager随后 RM 向 AM 分配内存及运行 application 的容器。大体来说此过程可以分成六个阶段。- Application 初始化及提交- 分配内存并启动 AM- AM 注册及资源分配- 启动并监控容器- Application 进度报告- Application 运行完成
延伸阅读

更多相关文章

2026/9/29 4:24:14

IDEA 接入智谱 GLM-4.7 及 config.json 配置指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/29 6:44:20

腾讯云COS MCP Server + CodeBuddy:从idea到上线的完整配置链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/29 6:44:20

Claude Code 介绍:用 TaoToken 统一 Key 打通 CLI AI 编程工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/29 6:44:20

小小小工具配 TaoToken:settings.json 骨架与连通性验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/28 3:03:23

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/9/28 6:05:15

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/28 6:07:41

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/29 0:04:04

AI Evals实战指南:从零搭建LLM应用评估体系与CI/CD集成

1. 为什么AI Evals值得你花时间搞明白做LLM应用的人,迟早会撞上同一堵墙:模型输出飘忽不定,今天答得好好的,明天换个问法就胡说八道。你改了一版提示词,感觉好像好了点,但到底好了多少?说不清。…

2026/9/29 0:04:04

Java采购管理系统实战:从数据库设计到事务一致性

简介:这是一套面向Java Web初学者与课程设计者的采购管理系统完整源码,采用JSP技术搭建,配合MySQL数据库,用于解决企业采购信息的管理问题,适合作为毕业设计、课程大作业或进销存类项目的参考模板。系统实现了用户登录…

2026/9/29 3:53:39

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/26 19:58:38

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/29 6:36:14

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑