Hadoop完全分布式集群——Hadoop 配置

article/2025/10/9 0:09:04

前面已完成VMware虚拟机安装与配置(参考前一篇Hadoop完全分布式集群——VMware虚拟机安装与配置_夏雨和阳阳的博客-CSDN博客),下面将进行Hadoop 配置。

一、slave1、slave2节点配置修改

slave1、slave2节点都需要进行以下操作:

1.开启虚拟机,输入命令:

[root@slave1 ~]#ip addr

[root@slave2 ~]#ip addr

2.修改slave1、slave2虚拟机的IP

[root@slave1 ~]#vi /etc/sysconfig/network-scripts/ifcfg-ens33

[root@slave12 ~]#vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改slave1为IPADDR=192.168.128.131,修改slave2为IPADDR=192.168.128.132。

 3.修改slave1、slave2虚拟机的主机名

[root@slave1 ~]#vi /etc/hostname

[root@slave2 ~]#vi /etc/hostname

主节点为 master,子节点分别为 slave1、slave2。

 4.slave1、slave2虚拟机重启网络服务

[root@slave1 ~]#service network restart

[root@slave2 ~]#service network restart

5.查看slave1、slave2虚拟机 IP、主机名是否修改

[root@slave1 ~]#ip addr

[root@slave2 ~]#ip addr

6.reboot 重启slave1、slave2虚拟机。

root@slave1 ~]#reboot

root@slave2 ~]#reboot

二、 配置master、slave1、slave2虚拟机无密码登录

1.配置 IP 映射(master、slave1、slave2每个节点都需修改)

[root@master ~]#vi /etc/hosts

[root@slave1 ~]#vi /etc/hosts

[root@slave2 ~]#vi /etc/hosts

依次添加如下内容:

192.168.128.130 master

192.168.128.131 slave1

192.168.128.132 slave2

 2.配置 SSH 无密码登录

(1) 使用 ssh-keygen 产生公钥与私钥对。

在master虚拟机输入命令:

[root@master ~]# ssh-keygen -t rsa

执行过程中需要按三次 Enter 键。

生成私有密钥 id_rsa 和公有密钥 id_rsa.pub 两个文件。ssh-keygen 用来生成 RSA类型的密钥以及管理该密钥,参数“-t”用于指定要创建的 SSH 密钥的类型为RSA。

(2)用 ssh-copy-id 将公钥复制到slave1、slave2虚拟机中

[root@master ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub slave1     //依次输入 yes,123456(root 用户的密码)

[root@master ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub slave2     //依次输入 yes,123456(root 用户的密码)

(3)验证是否设置无密码登录

依次输入:
[root@master ~]# ssh slave1      //下图表示无密码登陆slave1成功

[root@master ~]# exit    //下图表示退出slave1

 用同样的方法验证slave2是否设置无密码登录。

(4)配置宿主机SSH 无密码登录master、slave1、slave2虚拟机

 为了便于连接和操作master、slave1、slave2虚拟机,也需要配置SSH 无密码登录。在宿主机上操作如下:

[root@localhost~]#vi /etc/hosts

依次添加如下内容:

192.168.128.130 master

192.168.128.131 slave1

192.168.128.132 slave2

[root@localhost~]# ssh-keygen -t rsa

执行过程中需要按三次 Enter 键。

[root@localhost~]# ssh-copy-id -i /root/.ssh/id_rsa.pub master     //依次输入 yes,123456(root 用户的密码)

[root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub slave1     //依次输入 yes,123456(root 用户的密码)

[root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub slave2     //依次输入 yes,123456(root 用户的密码)

[root@localhost ~]# ssh master

[root@localhost ~]# ssh slave1   

[root@localhost ~]# ssh slave1   

三、安装 jdk(每个节点都需安装)

用的是JDK1.8.0_131版本(jdk-8u131-linux-x64.tar.gz),有需要从百度网盘中下载。

下载链接:https://pan.baidu.com/s/1P2fkRonIVO-DZMNKNgCCKA

提取码:ml01

1. 解压并安装/opt 目录

[root@master opt]#tar -zxvf jdk-8u131-linux-x64.tar.gz

2.修改环境变量

[root@master ~]#vi /etc/profile

添加如下内容:

export JAVA_HOME=/opt/jdk1.8.0_131
export PATH=$PATH:$JAVA_HOME/bin

[root@master ~]#source /etc/profile            //使配置生效

 3.验证 JDK 是否配置成功

[root@master ]#java -version

4.将master上的配置好的JDK分发到slave1、slave2上

[root@master ]#scp -r /opt/jdk1.8.0_131 root@slave1:/opt

[root@master ]#scp -r /opt/jdk1.8.0_131 root@slave2:/opt

5.环境变量配置生效

[root@slave1 ~]#source /etc/profile 

[root@slave2 ~]#source /etc/profile 

6.验证 slave1、slave2中的JDK 是否配置成功

[root@slave1 ~]#java -version

[root@slave2 ~]#java -version

四、 Hadoop2.7.7 安装与配置

用的是Hadoop2.7.7版本(hadoop-2.7.7.tar.gz),有需要从百度网盘中下载。

下载链接:https://pan.baidu.com/s/13Mc6YsbHiZPkbozJUMuahg

提取码:mt1s

1.解压并安装/usr/local目录(主节点进行)

[root@master ]#tar -zxvf hadoop-2.7.7.tar.gz -C /usr/local

解压后即可看到/usr/local/hadoop-2.7.7文件夹。

2.配置 Hadoop

(1)进入目录

[root@master ]#cd /usr/local/hadoop-2.7.7/etc/hadoop

依次修改以下配置文件(使用 vi 命令对文件进行修改 如 vi core-site.xml),修改完按ESC键,输入:wq!保存退出。

注:文件中存在<configuration></configuration>,配置放入其中,且只保留一组的<configuration></configuration>。

(2)修改core-site.xml

[root@master hadoop]#vi xore-site.xml

添加如下内容:

<configuration>
        <property>
        <name>fs.default.name</name>
        <value>hdfs://master:9000</value>
        </property>
        <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop-2.7.7/hdfs/tmp</value>
        </property>
</configuration>

(3)修改hadoop-env.sh

[root@master hadoop]#vi hadoop-env.sh

修改如下内容:

# The java implementation to use.
export JAVA_HOME=/opt/jdk1.8.0_131

(4)修改hdfs-site.xml

[root@master hadoop]#vi hdfs-site.xml

添加如下内容:

<configuration>
        <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop-2.7.7/hdfs/name</value>
        </property>
        <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/hadoop-2.7.7/hdfs/data</value>
        </property>
        <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:50090</value>
        </property>
        <property>
        <name>dfs.replication</name>
        <value>2</value>
        </property>
</configuration>

(5)修改mapred-site.xml

此目录下并没有mapred-site.xml,须复制mapred-site.xml.template生成。命令如下:

[root@master hadoop]#cp mapred-site.xml.template mapred-site.xml

[root@master hadoop]#vi mapred-site.xml

添加如下内容:

<configuration>
        <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        </property>
<!-- jobhistory properties -->
        <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
        </property>
        <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
        </property>
</configuration>

(6)修改yarn-site.xml

[root@master hadoop]#vi yarn-site.xml

添加如下内容:

<configuration>

<!-- Site specific YARN configuration properties -->
        <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
        </property>
        <property>
        <name>yarn.resourcemanager.address</name>
        <value>${yarn.resourcemanager.hostname}:8032</value>
        </property>
        <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>${yarn.resourcemanager.hostname}:8030</value>
        </property>
        <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>${yarn.resourcemanager.hostname}:8088</value>
        </property>
        <property>
        <name>yarn.resourcemanager.webapp.https.address</name>
        <value>${yarn.resourcemanager.hostname}:8090</value>
        </property>
        <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>${yarn.resourcemanager.hostname}:8031</value>
        </property>
        <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>${yarn.resourcemanager.hostname}:8033</value>
        </property>
        <property>
        <name>yarn.nodemanager.local-dirs</name>
        <value>/usr/local/hadoop-2.7.7/yarn/local</value>
        </property>
        <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
        </property>

        <property>
        <name>yarn.nodemanager.remote-app-log-dir</name>
        <value>/usr/local/hadoop-2.7.7/yarn/logs</value>
        </property>

        <property>
        <name>yarn.log.server.url</name>
        <value>http://master:19888/jobhistory/logs/</value>
        <description>URL for job history server</description>
        </property>
        <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
        </property>
        <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
        </property>
        <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
        </property>
        <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>2048</value>
       </property>
        <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>512</value>
        </property>
        <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>4096</value>
        </property>
        <property>
        <name>mapreduce.map.memory.mb</name>
        <value>2048</value>
        </property>
        <property>
        <name>mapreduce.reduce.memory.mb</name>
        <value>2048</value>
        </property>
        <property>
        <name>yarn.nodemanager.resource.cpu-vcores</name>
        <value>1</value>
        </property>
        <property>
        <name>yarn.application.classpath </name>
        <value>
        /usr/local/hadoop-2.7.7/etc/hadoop:/usr/local/hadoop-2.7.7/share/hadoop/common/lib/*:/usr/local/hadoop-2.7.7/share/hadoop/common/*:/usr/local/hadoop-2.7.7/share/hadoop/hdfs:/usr/local/hadoop-2.7.7/share/hadoop/hdfs/lib/*:/usr/local/hadoop2.7.7/share/hadoop/hdfs/*:/usr/local/hadoop-2.7.7/share/hadoop/mapreduce/lib/*:/usr/local/hadoop-2.7.7/share/hadoop/mapreduce/*:/usr/local/hadoop-2.7.7/share/hadoop/yarn:/usr/local/hadoop-2.7.7/share/hadoop/yarn/lib/*:/usr/local/hadoop-2.7.7/share/hadoop/yarn/*
        </value>
        </property>
</configuration>

(7)修改yarn-env.sh

[root@master hadoop]#vi yarn-env.sh

修改如下内容:

# some Java parameters
export JAVA_HOME=/opt/jdk1.8.0_131

(8)修改workers

[root@master hadoop]#vi workers

删除原有 localhost,添加:

master

slave1

slave2

(9)修改slaves

[root@master hadoop]#vi slaves

删除原有 localhost,添加:

slave1

slave2

3.拷贝 hadoop 安装文件到集群 slave1、slave2 节点

[root@master hadoop]#scp -r /usr/local/hadoop-2.7.7 root@slave1:/usr/local
[root@master hadoop]#scp -r /usr/local/hadoop-2.7.7 root@slave2:/usr/local

4.在master、slave1、slave2分别修改配置文件并生效

[root@master ~]#vi /etc/profile        //添加 Hadoop 路径              

添加以下内容:

export HADOOP_HOME=/usr/local/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin

[root@master ~]#source /etc/profile      //配置生效

slave1、slave2 节点操作同上。

5.master节点上格式化 NameNode

[root@master ~]#cd /usr/local/hadoop-2.7.7/bin

[root@master ~]#./hdfs namenode -format

注:hadoop 集群只需要格式化一次即可,后续启动无需格式化。

6.master主节点启动Hadoop

[root@master ~]#cd /usr/local/hadoop-2.7.7sbin

[root@master ~]#./start-dfs.sh

[root@master ~]#./start-yarn.sh

[root@master ~]#./mr-jobhistory-daemon.sh start historyserver

7.使用 jps,查看进程

 

8.slave1、slave2子节点没有datanode进程

 此时须重启子节点,进入子节点对应的sbin目录,执行:

[root@slave1 ~]#cd /usr/local/hadoop-2.7.7/sbin

[root@slave1 sbin]#hadoop-daemon.sh start datanode

[root@slave1 sbin]#hadoop-daemon.sh start tasktracker(该命令可能会失效,所以失效的话就跳过该条命令)

使用jps查看进程已正常显示datanode进程。

9.在宿主机上添加映射

[root@localhost ~]#vi \etc\hosts             //添加 IP 映射
添加如下内容:

192.168.128.130 master
192.168.128.131 slave1
192.168.128.132 slave2

10.在宿主机上用浏览器查看

查看HDFS的NameNode:http://master:50070


 

查看YARN的ResourceManager:http://master:8088

 

 


http://chatgpt.dhexx.cn/article/tx3rtpuJ.shtml

相关文章

简易员工信息管理系统

这是一个虽然简单但很有代表性和借鉴性的管理系统。没有使用现有框架SSH等&#xff0c;使用自有JavaBeanJSPServlet技术。 该系统的源码经过细心打磨&#xff0c;可以作为去Spring框架的简单Web系统开发模板使用&#xff0c;从设计模式、函数式编程、Lambda表达式、业务分层、页…

基于SSH学生请假管理系统

【A-021】基于SSH学生请假管理系统 开发环境&#xff1a; Eclipse/MyEclipse、Tomcat8、Jdk1.8 数据库&#xff1a; MySQL &#xff08;1&#xff09;管理员模块 定义一个最高级管理员&#xff0c;可以对整个系统进行查询修改等操作&#xff0c;浏览修改其他管理员的相关信息…

简单的员工信息管理系统

需求&#xff1a; 做一个简易命令行版本的员工信息管理系统 现有员工&#xff1a;张三&#xff0c;年龄23&#xff0c;工号9527&#xff1b;李四&#xff0c;年龄32&#xff0c;工号&#xff0c;007&#xff1b; 王五&#xff0c;年龄22&#xff0c;工号&a…

员工考勤系统

需求&#xff1a; 一、用户管理 1、用户列表 列表字段&#xff1a;姓名、登录名、性别、手机号、薪资、岗位、角色 列表按钮&#xff1a;编辑、启用、停用、重置密码 搜索条件&#xff1a;用户名、状态&#xff08;启用停用&#xff09; 顶部按钮&#xff1a;新增用户 导入、导…

企业如何利用OA系统轻松管理员工请休假

企业的员工想请个假&#xff0c;为什么人事和员工都在喊难&#xff1f; 员工请假麻烦&#xff1a; 不知道自己还有多少年假没有休&#xff0c;每次都要去人事那里查&#xff0c;有事请假要找领导报备交接工作&#xff0c;填完单子还要找领导签字&#xff0c;如果哪天请假领导出…

JavaEE技术的员工请假管理系统的设计与实现

摘 要 近年来&#xff0c;随着网络产业的飞速发展&#xff0c;人们的日常生活和工作方式也随之发生变化。许多公司正在把常规的工作方式与因特网相融合&#xff0c;借助因特网的力量来提升管理者的工作能力。当前很多员工请假管理系统工作都有很多问题&#xff0c;所以针对员…

人事管理系统如何做好员工考勤管理?

企业考勤管理的主要难题在于考勤、排班、假勤这三块&#xff0c;对于考勤来说&#xff0c;往往存在一些漏打卡、代打卡、打卡慢的情况&#xff1b; 对于排班&#xff0c;存在着多班次混排的情况&#xff0c;对各人员调配、设备调配、轮班作业、生产计划调整等有复杂调配需求&a…

【023】Springboot+vue+mysql员工考勤管理系统(多角色登录、请假、打卡)(含源码、数据库、运行教程)

前排提示&#xff1a;项目源码已放在文末 开发环境&#xff1a;SpringbootMysqlVueNodejsMavenJDK1.8 技术栈&#xff1a;spring-boot、mysql、mybatis-plus、druid连接池。 部分功能及代码介绍&#xff1a; 1.员工类型&#xff1a;部门经理、副总经理、总经理、人事人员、财务…

【024】Vue+Springboot+mysql员工考勤管理系统(多角色登录、请假、打卡)(含源码、数据库、运行教程、实验报告)

前排提示&#xff1a;项目源码已放在文末 基于VueSpringbootmysql员工考勤管理系统(多角色登录、请假、打卡) 开发环境&#xff1a;SpringbootMysqlVueNodejsMavenJDK1.8 技术栈&#xff1a;spring-boot、mysql、mybatis-plus、druid连接池。 与【023】相比&#xff0c;【024…

java企业员工考勤请假工资人事管理系统springboot+vue

springboot是spring家族中的一个全新框架&#xff0c;用来简化spring程序的创建和开发过程。在以往我们通过SpringMVCSpringMybatis框架进行开发的时候&#xff0c;我们需要配置web.xml&#xff0c;spring配置&#xff0c;mybatis配置&#xff0c;然后整合在一起&#xff0c;而…

学生请假管理系统--UML画图

参与者 学生、班主任、学工处、学校领导、教务管理系统 功能 学生 销假请假/续假查看&#xff08;请假/销假/续假&#xff09;进度查询个人请假记录 班主任 查询班级请假记录审批学生请假/销假/续假信息 学工处 审批学生请假/销假/续假信息设置规则查询数据 学校领导 …

员工管理系统

一.项目介绍&#xff1a; 该项目主要是实现了管理员和普通用户登录功能&#xff0c;登录后会出现相应的功能菜单。管理员的功能菜单包括查询、修改、添加用户、删除用户、查询历史记录、退出功能&#xff0c;其中查询分为按人名查找和查找所有&#xff0c;修改可以按照…

ssm员工考勤签到请假管理系统 idea maven

1、管理员账号&#xff1a;abo 密码&#xff1a;abo 2、开发环境为Eclipse/idea&#xff0c;数据库为mysql 使用java语言开发。 3.eclipse配置好tomcat 即可打开首页 idea tomcat部署处 必须用项目名 ,不能带_war 4.数据库连接src\main\resources\config.properties中修改 5…

【员工管理系统】

员工管理系统 前言需求分析系统设计系统框图所需技术 系统实现编写代码测试 前言 这是一个使用epoll实现TCP并发服务器&#xff0c;并让客户端登录服务器可以进行员工的管理&#xff0c;员工的信息存储在sqlite数据库中&#xff0c;对数据库进行增删改查实现对员工的添加&…

一个简单的请假系统

本项目是一个简单的spring项目&#xff0c;使用了springmybatis&#xff0c;实现数据的增&#xff0c;删&#xff0c;查&#xff0c;和poi的基本使用&#xff0c;导出数据库中的请假信息到excel中等一些基本的功能。有很多不足之处欢迎大家指出&#xff0c;后面慢慢学习会慢慢优…

Java项目:JSP员工出差请假考勤管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目为后台管理系统&#xff1b; 管理员角色包含以下功能&#xff1a; 登录,首页,考勤记录增删改查,假期申请记录增删改查,出差申请记录增删…

适合学生写的请假管理系统

学生请假管理系统 可以浅浅的看一下目 录了解一下 第1章 概述 6 1.1案例功能简介 6 1.2大纲 6 1.3总体设计 8 1.4数据库 8 第2章 设计步骤及实现 11 2.1 注册并登录学生请假管理系统 11 2.2 用户管理界面 15 2.3 请假管理界面 18 2.4 公告管理界面 21 2.5 本分源代码的展示 24…

基于javaweb的员工出差请假考勤管理系统(java+jsp+layui+html+servlet+mysql)

基于javaweb的员工出差请假考勤管理系统(javajsplayuihtmlservletmysql) 运行环境 Java≥8、MySQL≥5.7、Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计&#xff0c;大作业&#xff0c;毕业设计&#xff0c;项目练习&#xff0c;学习演示等…

员工请假系统

演示地址&#xff1a; http://222.73.130.227:8100 已有用户及密码&#xff1a; adminleave.com/123 zhangsanqq.com/123 lisiqq.com/123 注意&#xff1a;如果需要对演示系统新添加用户&#xff0c;密码建议使用不常用的&#xff0c;尽管用户信息已使用加密存储 源码下载…

员工考勤管理系统

这里写自定义目录标题 1、需求分析1.1系统概述、产品说明1.2功能需求分析1.3开发使用工具1.4开发原则1.5开发目标1.6项目进度 2、概要设计、项目简介2.1 页面概述2.2设计思路2.3流程图&#xff08;页面结构&#xff09; 3、详细设计3.1页面介绍&#xff08;包含页面截图、功能说…