hadoop集群安装并配置
文章目录
- 1.安装JDK 环境
- 2.系统配置
- 2.1修改本地hosts文件
- 2.2创建hadoop 用户
- 2.2 设置ssh免密(使用hadoop 用户生成)
- 3.安装 hadoop 3.2.4
- 3.1 安装hadoop
- 3.1.1 配置Hadoop 环境变量
- 3.2配置 HDFS
- 3.2.1 配置 workers 文件
- 3.2.2 配置hadoop-env.sh
- 3.2.3 配置core-site.xml
- 3.2.3 配置 hdfs-site.xml
- 3.2.4 启动hdfs
- 3.3 配置MapReduce
- 3.3.1 配置 mapred-env.sh
- 3.3.2配置 mapred-site.xml
- 3.4配置yarn
- 3.4.1配置 yarn-env.sh
- 3.4.2 配置 yarn-site.xml
- 3.4.3启动yarn 集群
- 3.5hadoop集群启动
1.安装JDK 环境
JDK1.8下载链接
使用wget 下载到liunx 主机
#创建文件夹
mkdir /usr/app
# 进入文件夹
cd /usr/app
#下载java
wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz
#解压
tar -zvxf jdk-8u181-linux-x64.tar.gz
#修改名称
mv jdk-8u181-linux-x64 jdk.18
//配置环境变量
vim /etc/profile
export JAVA_HOME=/usr/app/jdk1.8 # java解压的路径
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JRE_HOME=$JAVA_HOME/jre
//加载
source /etc/profile
每台节点都安装jdk
2.系统配置
2.1修改本地hosts文件
配置本地hosts文件,后面我们直接使用hostname 去连接主机 不再输入ip地址
每个节点都执行
#编辑host文件vi /etc/hosts
#文件末尾添加自己的主机和hostname
192.168.56.103 hadoop01
192.168.56.104 hadoop02
192.168.56.105 hadoop03
保存后ping hadoop02 网络正常

2.2创建hadoop 用户
每台机器都指向
#新增用户
useradd hadoop
#设置hadoop 用户密码为 123456
passwd hadoop 123456
#切换到hadoop 用户
su - hadoop
2.2 设置ssh免密(使用hadoop 用户生成)
由于hadoop 一般为集群,我们安装时 直接使用ssh 命令 复制安装 hadoop 效率会更高
我们一般使用ssh 命令时会遇到输入密码验证的问题 我们可以提前配置免密操作
全部节点 执行该命令生成密钥,执行后一直按Enter 即可
#生成密钥
ssh-keygen -t rsa -b 4096
将密钥拷贝到其他两个子节点,命令如下:
ssh-copy-id -i hadoop01
ssh-copy-id -i hadoop02
ssh-copy-id -i hadoop03
结果打印
3.安装 hadoop 3.2.4
国内下载地址 华为镜像
官网下载地址 官网链接
3.1 安装hadoop
在hadoop01 服务器下载hadoop安装包,如果不能连接外网请下载后上传到服务器
cd /usr/app
#下载
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.2.4/hadoop-3.2.4.tar.gz
#解压
tar -zvxf hadoop-3.2.4.tar.gz
mv hadoop-3.2.4 hadoop
3.1.1 配置Hadoop 环境变量
在/etc/profile文件底部追加如下内容
export HADOOP_HOME=/usr/app/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
从hadoop01 将hadoop安装文件夹远程复制到hadoop02、hadoop03
3.2配置 HDFS
配置HDFS集群,我们主要涉及到如下文件的修改
| 修改文件 | 作用 |
|---|---|
| workers | 配置从节点(DataNode)有哪些 |
| hadoop-env.sh | 配置Hadoop的相关环境变量 |
| core-site.xml | Hadoop核心配置文件 |
| hdfs-site.xml | HDFS核心配置文件 |
这些文件均存在与$HADOOP_HOME/etc/hadoop文件夹中。
ps:$HADOOP_HOME是后续我们要设置的环境变量,其指代Hadoop安装文件夹即/app/hadoop
3.2.1 配置 workers 文件
# 进入配置文件目录
cd etc/hadoop
# 编辑workers文件
vim workers
# 填入如下内容
hadoop01
hadoop02
hadoop03
3.2.2 配置hadoop-env.sh
# 填入如下内容
#JAVA_HOME,指明JDK环境的位置在哪
export JAVA_HOME=/usr/jdk
#HADOOP_HOME,指明Hadoop安装位置
export HADOOP_HOME=/usr/hadoop
#HADOOP_CONF_DIR,指明Hadoop配置文件目录位置
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
#HADOOP_LOG_DIR,指明Hadoop运行日志目录位置
export HADOOP_LOG_DIR=$HADOOP_HOME/logs
3.2.3 配置core-site.xml
<configuration>
<!--含义:HDFS文件系统的网络通讯路径
协议为hdfs:// namenode为hadoop01 namenode通讯端口为8020 --><property><name>fs.defaultFS</name><value>hdfs://hadoop01:8020</value></property>
<!--含义:io操作文件缓冲区大小值:131072 bit--><property><name>io.file.buffer.size</name><value>131072</value></property>
</configuration>
3.2.3 配置 hdfs-site.xml
<configuration>
<!--hdfs文件系统,默认创建的文件权限设置 值:700,即:rwx--><property><name>dfs.datanode.data.dir.perm</name><value>700</value></property>
<!--NameNode元数据的存储位置 值:/data/nn,在hadoop01节点的/data/nn目录下 --><property><name>dfs.namenode.name.dir</name><value>/data/nn</value></property><!--NameNode允许哪几个节点的DataNode连接(即允许加入集群)hadoop01,hadoop02,hadoop03,这三台服务器被授权--><property><name>dfs.namenode.hosts</name><value>hadoop01,hadoop02,hadoop03</value></property><!--hdfs默认块大小 值:268435456(256MB) -->
<property><name>dfs.blocksize</name><value>268435456</value></property><!--namenode处理的并发线程数 以100个并行度处理文件系统的管理任务--><property><name>dfs.namenode.handler.count</name><value>100</value></property>
<!--NameNode元数据的存储位置 值:/data/nn,在所有节点的/data/nn目录下--><property><name>dfs.datanode.data.dir</name><value>/data/dn</value></property>
</configuration>
目前,已经基本完成Hadoop的配置操作,可以从hadoop01 将hadoop安装文件夹远程复制到hadoop02、hadoop03
3.2.4 启动hdfs
# 确保以hadoop用户执行
su - hadoop
# 格式化namenode
hadoop namenode -format
# 一键启动hdfs集群
start-dfs.sh
# 一键关闭hdfs集群
stop-dfs.sh
# 如果遇到命令未找到的错误,表明环境变量未配置好,可以以绝对路径执行
/export/server/hadoop/sbin/start-dfs.sh
/export/server/hadoop/sbin/stop-dfs.sh
3.3 配置MapReduce
3.3.1 配置 mapred-env.sh
# 设置JDK路径
export JAVA_HOME=/usr/app/jdk1.8
# 设置JobHistoryServer进程内存为1G
export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
#设置日志级别为INFO
export HADOOP_MAPRED_ROOT_LOGGER=INFORFA
3.3.2配置 mapred-site.xml
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value><description>MapReduce 的运行框架设置为YARN</description></property><property><name>mapreduce.jobhistory.address</name><value>hadoop01:10020</value><description> 历史服务器通讯地址设置为hadoop01:10020</description></property><property><name>mapreduce.jobhistory.webapp.address</name><value>hadoop01:19888</value><description>历史服务器web端口为hadoop01:19888</description></property><property><name>mapreduce.jobhistory.intermediate-done-dir</name><value>/data/mr-history/tmp</value><description>历史信息在hdfs的记录临时路径</description></property><property><name>mapreduce.jobhistory.done-dir</name><value>/data/mr-history/done</value><description>历史信息在hdfs的记录路径</description></property>`在这里插入代码片`
<property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value><description>设置环境变量地址</description>
</property>
<property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value><description>设置环境变量地址</description>
</property>
<property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value><description>设置环境变量地址</description>
</property>
</configuration>
3.4配置yarn
3.4.1配置 yarn-env.sh
#设 置 JDK路径的环境变量
export JAVA_HOME=/usr/jdk1.8
#设置 HADOOP HOME的环境变量
export HADOOP_HOME=/export/server/hadoop
#设置配置文件路径的环境变量
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
#设置日志文件路径的环境变量
export HADOOP_LOG_DIR=$HADOOP_HOME/logs
3.4.2 配置 yarn-site.xml
<configuration>
<property><name>yarn.log.server.url</name><value>http://hadoop01:19888/jobhistory/logs</value><description>历史服务器URL </description>
</property><property><name>yarn.web-proxy.address</name><value>hadoop01:8089</value><description> 代理服务器主机和端口</description></property><property><name>yarn.log-aggregation-enable</name><value>true</value><description> 开启聚合日志</description></property><property><name>yarn.nodemanager.remote-app-log-dir</name><value>/tmp/logs</value><descriptionn>程序日志HDFs的存储路径</description></property><property><name>yarn.resourcemanager.hostname</name><value>node1</value><description>>ResourceManager设置在hadoop01节点</description></property><property><name>yarn.resourcemanager.scheduler.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value><description>选择公平调度</description></property><property><name>yarn.nodemanager.local-dirs</name><value>/data/nm-local</value><description>NodeManger中间数据本地存储路径</description></property><property><name>yarn.nodemanager.log-dirs</name><value>/data/nm-log</value><description>NodeManagers数据日志本地存储路径</description></property><property><name>yarn.nodemanager.log.retain-seconds</name><value>10800</value><description>在NodeManager上保留日志文件的时间</description></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value><description>为MapReduce 程序开启Shuffle服务</description></property>
</configuration>

3.4.3启动yarn 集群
- 一键启动YARN集群
$HADOOP_HOME/sbin/start-yarn.sh
会基于yarn-site.xml中配置的yarn.resourcemanager.hostname来决定在哪台机器上启动resourcemanager
会基于workers文件配置的主机启动NodeManager
- 一键停止YARN集群
$HADOOP_HOME/sbin/stop-yarn.sh
- 在当前机器,单独启动或停止进程
$HADOOP_HOME/bin/yarn --daemon start|stop resourcemanager|nodemanager|proxyserver
start和stop决定启动和停止 可控制resourcemanager、nodemanager、proxyserver三种进程
- 历史服务器启动和停止
$HADOOP_HOME/bin/mapred --daemon start|stop historyserver
3.5hadoop集群启动
一键启动hadoop 集群:
$HADOOP_HOME/sbin/start-all.sh
一键停止hadoop 集群
$HADOOP_HOME/sbin/stop-all.sh
相关文章:
hadoop集群安装并配置
文章目录 1.安装JDK 环境2.系统配置2.1修改本地hosts文件2.2创建hadoop 用户2.2 设置ssh免密(使用hadoop 用户生成) 3.安装 hadoop 3.2.43.1 安装hadoop3.1.1 配置Hadoop 环境变量 3.2配置 HDFS3.2.1 配置 workers 文件3.2.2 配置hadoop-env.sh3.2.3 配置…...
Quarto 入门教程 (3):代码框、图形、数据框设置
简介 本文是《手把手教你使用 Quarto 构建文档》第三期,前两期分别介绍了: 第一期 介绍了Quarto 构建文档的原理;可创建的文档类型;对应的参考资源分享。 第二期 介绍了如何使用 Quarto,并编译出文档(PDF…...
虚拟机Ubuntu18.04安装对应ROS版本详细教程!(含错误提示解决)
参考链接: Ubuntu18.04安装Ros(最新最详细亲测)_向日葵骑士Faraday的博客-CSDN博客 1.4 ROS的安装与配置_哔哩哔哩_bilibili ROS官网:http://wiki.ros.org/melodic/Installation/Ubuntu 一、检查cmake 安装ROS时会自动安装旧版的Cmake3.10.2。所以在…...
#力扣:14. 最长公共前缀@FDDLC
14. 最长公共前缀 一、Java class Solution {public String longestCommonPrefix(String[] strs) {for (int l 0; ; l) {for (int i 0; i < strs.length; i) {if (l > strs[i].length() || strs[i].charAt(l) ! strs[0].charAt(l)) return strs[0].substring(0, l);}…...
Android 13.0 解锁状态下禁止下拉状态栏功能实现
1.前言 在13.0的系统定制化开发中,在关于一些systemui下拉状态栏的定制化功能开发中,对于关于systemui的下拉状态栏 是否可以下拉做了定制,用系统属性来判断是否可以在解锁的情况下可以下拉状态栏布局,虽然11.0 12.0和13.0的关于 下拉状态栏相关分析有区别,可以通过分析相…...
chromium线程模型(1)-普通线程实现(ui和io线程)
通过chromium 官方文档,线程和任务一节我们可以知道 ,chromium有两类线程,一类是普通线程,最典型的就是io线程和ui线程。 另一类是 线程池线程。 今天我们先分析普通线程的实现,下一篇文章分析线程池的实现。ÿ…...
uniapp uni.showToast 一闪而过的问题
问题:在页面跳转uni.navigateBack()等操作的前或后,执行uni.showToast,即使代码中设置2000ms的显示时间,也会一闪而过。 解决:用setTimeout延后navigateBack的执行。...
代理模式介绍及具体实现(设计模式 三)
代理模式是一种结构型设计模式,它允许通过创建一个代理对象来控制对另一个对象的访问 实例介绍和实现过程 假设我们正在开发一个电子商务网站,其中有一个商品库存管理系统。我们希望在每次查询商品库存之前,先进行权限验证,以确…...
【18】c++设计模式——>适配器模式
c的适配器模式是一种结构型设计模式,他允许将一个类的接口转换成另一个客户端所期望的接口。适配器模式常用于已存在的,但不符合新需求或者规范的类的适配。 在c中实现适配器模式时,通常需要一下几个组件: 1.目标接口(…...
mariadb 错误日志中报错:Incorrect definition of table mysql.column_stats:
数据库错误日志出现此错误原因是因为系统表中字段类型或者数据结构有变动导致,一般是因为升级数据库版本后未同步升级系统表结构。 解决方法: 1.如果错误日志过大,直接删除。 2.执行 mysql_upgrade -u[用户名] -p[密码];,这一步…...
【SpringBoot】多环境配置和启动
环境分类,可以分为 本地环境、测试环境、生产环境等,通过对不同环境配置内容,来实现对不同环境做不同的事情。 SpringBoot 项目,通过 application-xxx.yml 添加不同的后缀来区分配置文件,启动时候通过后缀启动即可。 …...
跨qml通信
****Commet.qml //加载其他文件中的组件 不需要声明称Component //1.用loader.item.属性 访问属性 //2.loader.item.方法 访问方法 //3.用loader.item.方法.connect(槽)连接信号 Item { Loader{ id:loader; width: 200; …...
力扣-404.左叶子之和
Idea attention:先看清楚题目,题目说的是左叶子结点,不是左结点【泣不成声】 遇到像这种二叉树类型的题目呢,我们一般还是选择dfs,然后类似于前序遍历的方式加上判断条件即可 AC Code class Solution { public:void d…...
如何搭建一个 websocket
环境: NodeJssocket.io 4.7.2 安装依赖 yarn add socket.io创建服务器 引入文件 特别注意: 涉及到 colors 的代码,请采取 console.log() 打印 // 基础老三样 import http from "http"; import fs from "fs"; import { Server } from &quo…...
pip常用命令
TOC(pip常用命令) 1.pip 2.where pip 3.pip install --upgrade pip 4.安装 这里暂用flask库举例,安装flask库,默认安装最新版: pip install flask指定要安装flask库的版本: pip install flask版本号我们在安装第三方库时可…...
[QT编程系列-43]: Windows + QT软件内存泄露的检测方法
目录 一、如何查找Windows程序是否有内存泄露 二、如何定位Windows程序内存泄露的原因 二、Windows环境下内存监控工具的使用 2.1 内存监测工具 - Valgrind 2.2.1 Valgrind for Linux 2.2.2 Valgrind for Windows 2.2 内存监测工具 - Dr. Memory 2.2.1 特点 2.2.2 安装…...
【Java-LangChain:使用 ChatGPT API 搭建系统-5】处理输入-思维链推理
第五章,处理输入-思维链推理 在本章中,我们将专注于处理输入,即通过一系列步骤生成有用地输出。 有时,模型在回答特定问题之前需要进行详细地推理。如果您参加过我们之前的课程,您将看到许多这样的例子。有时…...
java Spring Boot RequestHeader设置请求头,当请求头中没有Authorization 直接400问题解决
我在接口中 写了一个接收请求头参数 Authorization 但是目前代理一个问题 那就是 当请求时 请求头中没有这个Authorization 就会直接因为参数不匹配 找不到指向 这里其实很简单 我们设置 value 为我们需要的字段内容 required 是否必填 我们设置为 false 就可以了 这样 没有也…...
[CISCN2019 华北赛区 Day1 Web5]CyberPunk 二次报错注入
buu上 做点 首先就是打开环境 开始信息收集 发现源代码中存在?file 提示我们多半是包含 我原本去试了试 ../../etc/passwd 失败了 直接伪协议上吧 php://filter/readconvert.base64-encode/resourceindex.phpconfirm.phpsearch.phpchange.phpdelete.php 我们通过伪协议全…...
双机并联逆变器自适应虚拟阻抗下垂控制(Droop)策略Simulink仿真模型
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
OpenGL 调试方式
调试手段总览 API 级错误检查:glGetError、断言、包装宏调试输出机制:GL_KHR_debug、glDebugMessageCallback、QOpenGLDebugLogger着色器与程序调试:编译/链接日志、离线编译器、颜色编码调试渲染结果调试:FBO 检查、glReadPixels…...
基于大语言模型的智能终端助手:LetMeDoIt的设计、部署与实战
1. 项目概述:一个能听懂人话的AI终端伴侣如果你和我一样,每天有大量时间泡在终端里,那么“如何让命令行更智能、更高效”一定是个永恒的课题。传统的CLI工具链虽然强大,但学习曲线陡峭,命令参数繁多,上下文…...
如何用BilibiliDown轻松下载B站视频:终极跨平台免费开源工具完整指南
如何用BilibiliDown轻松下载B站视频:终极跨平台免费开源工具完整指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.co…...
幽默面试:Java SE 与微服务的探讨
面试官与水货程序员的幽默对话:Java SE 与微服务的探讨 在一个互联网大厂的面试现场,严肃的面试官坐在桌前,准备开始与求职者燕双非的技术探讨。燕双非是一个搞笑的程序员,今天他将面临一系列关于Java SE和微服务的面试问题。第一…...
现代Web全栈开发实战:基于React、Node.js与Prisma的足球赛事应用架构解析
1. 项目概述与核心价值最近在整理个人技术栈时,翻到了一个之前参与过的很有意思的Web项目——一个基于“NLW”(Next Level Week)活动构建的足球赛事Web应用。这个项目虽然源于一个线上编程活动,但其架构设计和实现思路,…...
从DSB到SSB:用MATLAB图解通信中的‘频谱减肥’术(单边带调制原理可视化)
从DSB到SSB:用MATLAB图解通信中的‘频谱减肥’术 想象一下,你正在参加一场热闹的派对,房间里挤满了人,大家都在高声交谈。突然,主持人宣布要节省空间,要求所有人只能站在房间的左侧或右侧——这就是单边带调…...
终极指南:三分钟掌握全网盘高速下载神器LinkSwift
终极指南:三分钟掌握全网盘高速下载神器LinkSwift 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘…...
Task发展历程:从简单任务运行器到现代自动化工具的完整演进史
Task发展历程:从简单任务运行器到现代自动化工具的完整演进史 【免费下载链接】task A fast, cross-platform build tool inspired by Make, designed for modern workflows. 项目地址: https://gitcode.com/gh_mirrors/ta/task Task是一个快速、跨平台的构建…...
数字电路小白也能懂:用Logisim搞定LED计数电路,从真值表到封装测试保姆级教程
数字电路零基础实战:用Logisim构建LED计数器的完整指南 从困惑到清晰:为什么选择Logisim作为数字电路入门工具 第一次接触数字电路时,面对密密麻麻的逻辑门和抽象的真值表,大多数初学者都会感到无从下手。传统教材中复杂的公式推导…...
HoYo.Gacha终极指南:如何轻松管理你的米哈游抽卡记录
HoYo.Gacha终极指南:如何轻松管理你的米哈游抽卡记录 【免费下载链接】HoYo.Gacha ✨ 一个非官方的工具,用于管理和分析你的 miHoYo 抽卡记录。(原神 | 崩坏:星穹铁道 | 绝区零)An unofficial tool for managing and a…...
