【数仓】Hadoop集群配置常用参数说明
Hadoop集群中,需要配置的文件主要包括四个
-
配置核心Hadoop参数:
- 编辑
core-site.xml文件,设置Hadoop集群的基本参数,如文件系统、Hadoop临时目录等。
- 编辑
-
配置HDFS参数:
- 编辑
hdfs-site.xml文件,设置HDFS的相关参数,如数据块大小、副本数等。
- 编辑
-
配置MapReduce参数(如果使用):
- 编辑
mapred-site.xml文件,设置MapReduce的相关参数。
- 编辑
-
配置YARN参数(如果使用):
- 编辑
yarn-site.xml文件,设置YARN的相关参数。
- 编辑
核心Hadoop参数 core-site.xml
参考官网
Hadoop的core-site.xml文件包含了许多重要的配置参数,这些参数用于定义Hadoop集群的全局设置。以下是一些常见的core-site.xml配置参数:
| 配置项 | 默认值 | 说明 |
|---|---|---|
fs.defaultFS | 无 | Hadoop集群的NameNode的URI。这是HDFS的入口点。 |
io.file.buffer.size | 4096 | SequenceFiles在读写过程中可以使用的缓存大小(以字节为单位)。 |
hadoop.tmp.dir | /tmp/hadoop-${user.name} | Hadoop的临时目录,用于存储临时文件和目录。 |
fs.trash.interval | 0 | 垃圾箱中文件的保留时间(以分钟为单位)。设置为大于0的值将启用垃圾箱功能。 |
hadoop.proxyuser.${username}.hosts | 无 | 允许代理用户从哪些主机连接到Hadoop集群。 |
hadoop.proxyuser.${username}.groups | 无 | 允许代理用户属于哪些用户组连接到Hadoop集群。 |
fs.trash.checkpoint.interval | 0 | 检查垃圾箱并删除过期文件的间隔时间(以分钟为单位)。 |
fs.automatic.close | true | 是否在读取文件后自动关闭文件系统。 |
fs.dummy.impl | org.apache.hadoop.fs.DummyFileSystem | 一个假的文件系统实现,用于测试。 |
请注意,上述表格中的默认值可能会因Hadoop版本和特定环境而有所不同。此外,还有许多其他可用的配置参数,具体取决于您的Hadoop集群的需求和配置。
在实际配置中,您应该根据您的Hadoop集群的具体要求和网络环境来设置这些参数。一些关键参数(如fs.defaultFS)在集群设置中是必需的,而其他参数则可以根据需要进行调整。在修改core-site.xml文件之前,请确保您已经充分了解每个参数的含义和潜在影响。
HDFS参数 hdfs-site.xml
参考官网
hdfs-site.xml 是 Hadoop 分布式文件系统(HDFS)的配置文件,它包含了许多参数,用于定义 HDFS 的行为和特性。以下是一些常见的 hdfs-site.xml 配置参数:
| 配置项 | 默认值 | 说明 |
|---|---|---|
dfs.namenode.name.dir | file://${hadoop.tmp.dir}/dfs/name | NameNode 存储其持久化元数据的本地文件系统路径。 |
dfs.datanode.data.dir | file://${hadoop.tmp.dir}/dfs/data | DataNode 存储其块的本地文件系统路径。 |
dfs.replication | 3 | 数据的默认副本数。 |
dfs.permissions.enabled | true | 是否启用 HDFS 权限检查。 |
dfs.block.size | 134217728 (128 MB) | HDFS 块的大小。 |
dfs.namenode.handler.count | 10 | NameNode 服务器可以同时处理的客户端请求数。 |
dfs.datanode.handler.count | 10 | DataNode 服务器可以同时处理的客户端请求数。 |
dfs.client.read.shortcircuit | false | 允许 DFS 客户端绕过 DataNode 直接读取本地文件。 |
dfs.client.read.shortcircuit.skip.checksum | false | 在短路读取时跳过校验和检查。 |
dfs.https.address | 0.0.0.0:50470 | NameNode HTTPS 服务的地址和端口。 |
dfs.http.address | 0.0.0.0:50070 | NameNode HTTP 服务的地址和端口。 |
dfs.datanode.http.address | 0.0.0.0:50075 | DataNode HTTP 服务的地址和端口。 |
dfs.datanode.ipc.address | 0.0.0.0:50020 | DataNode IPC 服务的地址和端口。 |
dfs.namenode.http-address | 0.0.0.0:50070 | NameNode HTTP 服务的地址和端口(用于 Web UI)。 |
dfs.namenode.secondary.http-address | 0.0.0.0:50090 | Secondary NameNode HTTP 服务的地址和端口。 |
请注意,这些默认值可能会因 Hadoop 的版本和特定环境而有所不同。此外,还有许多其他可用的配置参数,具体取决于您的 HDFS 集群的需求和配置。
在实际配置中,您应该根据您的 HDFS 集群的具体要求和网络环境来设置这些参数。一些关键参数(如 dfs.namenode.name.dir 和 dfs.datanode.data.dir)在集群设置中是必需的,而其他参数则可以根据需要进行调整。在修改 hdfs-site.xml 文件之前,请确保您已经充分了解每个参数的含义和潜在影响。
此外,请注意 hdfs-site.xml 文件通常还包含一些高级参数,用于调优 HDFS 的性能和可靠性,例如设置 NameNode 和 DataNode 的堆大小、调整各种超时设置等。这些参数的具体设置应该基于您的集群规模和工作负载进行调整。
MapReduce参数 mapred-site.xml
参考官网
mapred-site.xml 是 Hadoop MapReduce 的配置文件,它包含了许多参数,用于定义 MapReduce 作业的行为和特性。以下是一些常见的 mapred-site.xml 配置参:
| 配置项 | 默认值 | 说明 |
|---|---|---|
mapreduce.framework.name | local | 执行框架设置为本地模式(单机模式),在集群上应设置为 yarn。 |
mapreduce.jobhistory.address | 0.0.0.0:10020 | MapReduce JobHistory Server 的地址和端口。 |
mapreduce.jobhistory.webapp.address | 0.0.0.0:19888 | MapReduce JobHistory Server 的 Web UI 地址和端口。 |
mapreduce.jobtracker.address | local | MapReduce JobTracker 的地址和端口(旧版 API,YARN 中不再使用)。 |
mapreduce.tasktracker.address | 0.0.0.0:50060 | MapReduce TaskTracker 的地址和端口(旧版 API,YARN 中不再使用)。 |
mapreduce.map.output.compress | false | 是否压缩 Map 任务的输出。 |
mapreduce.map.output.compress.codec | org.apache.hadoop.io.compress.DefaultCodec | Map 任务输出压缩使用的编解码器。 |
mapreduce.task.io.sort.mb | 100 | 排序时使用的内存缓冲区大小(以 MB 为单位)。 |
mapreduce.task.io.sort.factor | 10 | 合并小文件时一次合并的流的数量。 |
mapreduce.reduce.shuffle.parallelcopies | 5 | 从 Map 到 Reduce 拷贝数据的并行度。 |
mapreduce.reduce.shuffle.fetch.retry.enabled | true | 是否启用 shuffle 阶段获取数据的重试机制。 |
mapreduce.reduce.shuffle.retry-delay.ms | 1000 | shuffle 阶段重试之间的延迟时间(以毫秒为单位)。 |
mapreduce.reduce.shuffle.input.buffer.percent | 0.7 | shuffle 阶段用于存储数据的内存比例。 |
mapreduce.job.reduces | 1 | 每个作业的默认 Reduce 任务数。 |
mapreduce.job.maps | 无默认值 | 每个作业的 Map 任务数(通常由 AM 根据数据自动计算)。 |
mapreduce.map.speculative | true | 是否启用 Map 任务的推测执行。 |
mapreduce.reduce.speculative | true | 是否启用 Reduce 任务的推测执行。 |
请注意,这些默认值可能会因 Hadoop 的版本和特定环境而有所不同。此外,还有许多其他可用的配置参数,具体取决于您的 MapReduce 作业的需求和配置。
在实际配置中,您应该根据您的 MapReduce 作业的具体要求和网络环境来设置这些参数。一些关键参数(如 mapreduce.framework.name)在集群设置中是必需的,以指定执行框架,而其他参数则可以根据需要进行调整。在修改 mapred-site.xml 文件之前,请确保您已经充分了解每个参数的含义和潜在影响。
另外,值得注意的是,随着 Hadoop 的发展,MapReduce 已经被 YARN 和其他框架(如 Spark、Flink)所取代,因此在新版本的 Hadoop 中,mapred-site.xml 文件可能不再存在,或者其重要性已经降低。在使用新版本的 Hadoop 时,请确保查看相关文档以了解最新的配置方法和最佳实践。
YARN参数 yarn-site.xml
参考官网
yarn-site.xml 是 Apache Hadoop YARN 的配置文件,它包含了许多参数,用于定义 YARN 集群的行为和特性。以下是一些常见的 yarn-site.xml 配置参数:
| 配置项 | 默认值 | 说明 |
|---|---|---|
yarn.resourcemanager.hostname | 无 | ResourceManager 的主机名。 |
yarn.resourcemanager.scheduler.address | ${yarn.resourcemanager.hostname}:8030 | ResourceManager 调度器服务的地址和端口。 |
yarn.resourcemanager.resource-tracker.address | ${yarn.resourcemanager.hostname}:8031 | ResourceManager 资源追踪服务的地址和端口。 |
yarn.resourcemanager.address | ${yarn.resourcemanager.hostname}:8032 | ResourceManager RPC 服务的地址和端口。 |
yarn.resourcemanager.webapp.address | ${yarn.resourcemanager.hostname}:8088 | ResourceManager Web UI 的地址和端口。 |
yarn.resourcemanager.admin.address | ${yarn.resourcemanager.hostname}:8033 | ResourceManager 管理服务的地址和端口。 |
yarn.scheduler.minimum-allocation-mb | 1024 | 单个容器可申请的最小内存(以 MB 为单位)。 |
yarn.scheduler.maximum-allocation-mb | 8192 | 单个容器可申请的最大内存(以 MB 为单位)。 |
yarn.nodemanager.resource.memory-mb | 8192 | NodeManager 可用的总物理内存(以 MB 为单位)。 |
yarn.scheduler.minimum-allocation-vcores | 1 | 单个容器可申请的最小虚拟 CPU 个数。 |
yarn.scheduler.maximum-allocation-vcores | 32 | 单个容器可申请的最大虚拟 CPU 个数。 |
yarn.nodemanager.vmem-pmem-ratio | 2.1 | 虚拟内存与物理内存的比例。 |
yarn.nodemanager.local-dirs | ${hadoop.tmp.dir}/nm-local-dir | NodeManager 存储本地化资源的目录列表。 |
yarn.nodemanager.log-dirs | ${yarn.log.dir}/userlogs | NodeManager 存储容器日志的目录列表。 |
yarn.nodemanager.aux-services | mapreduce_shuffle | NodeManager 提供的辅助服务列表。 |
yarn.nodemanager.remote-app-log-dir | /tmp/logs | 存储应用程序日志的远程目录(通常用于日志聚合)。 |
yarn.nodemanager.recovery.enabled | false | 是否启用 NodeManager 恢复功能。 |
yarn.nodemanager.recovery.dir | 无 | 用于存储 NodeManager 恢复数据的目录。 |
请注意,这些默认值可能会因 Hadoop 的版本和特定环境而有所不同。此外,还有许多其他可用的配置参数,具体取决于您的 YARN 集群的需求和配置。在实际配置中,您应该根据您的 YARN 集群的具体要求和网络环境来设置这些参数。在修改 yarn-site.xml 文件之前,请确保您已经充分了解每个参数的含义和潜在影响。
参考
- https://hadoop.apache.org/docs/r3.3.6/index.html
相关文章:
【数仓】Hadoop集群配置常用参数说明
Hadoop集群中,需要配置的文件主要包括四个 配置核心Hadoop参数: 编辑core-site.xml文件,设置Hadoop集群的基本参数,如文件系统、Hadoop临时目录等。 配置HDFS参数: 编辑hdfs-site.xml文件,设置HDFS的相关参…...
【go从入门到精通】什么是go?为什么要选择go?
go的出生: go语言(或Golang)是Google开发的开源编程语言,诞生于2006年1月2日下午15点4分5秒,于2009年11月开源,2012年发布go稳定版。Go语言在多核并发上拥有原生的设计优势,Go语言从底层原生支持…...
MySQL篇—执行计划介绍(第二篇,总共三篇)
☘️博主介绍☘️: ✨又是一天没白过,我是奈斯,DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux,也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章,并且也会默默的点赞收藏加关注❣…...
nest.js使用nest-winston日志一
nest-winston文档 nest-winston - npm 参考:nestjs中winston日志模块使用 - 浮的blog - SegmentFault 思否 安装 cnpm install --save nest-winston winstoncnpm install winston-daily-rotate-file 在main.ts中 import { NestFactory } from nestjs/core; im…...
LeetCode刷题笔记之二叉树(四)
一、二叉搜索树的应用 1. 700【二叉搜索树中的搜索】 题目: 给定二叉搜索树(BST)的根节点 root 和一个整数值 val。你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 null 。代码&a…...
【MATLAB源码-第150期】基于matlab的开普勒优化算法(KOA)机器人栅格路径规划,输出做短路径图和适应度曲线。
操作环境: MATLAB 2022a 1、算法描述 开普勒优化算法(Kepler Optimization Algorithm, KOA)是一个虚构的、灵感来自天文学的优化算法,它借鉴了开普勒行星运动定律的概念来设计。在这个构想中,算法模仿行星围绕太阳的…...
最佳实践:Websocket 长连接状态如何保持
WebSocket 是一种支持通过单个 TCP 连接进行全双工通信的协议,相较于传统的 HTTP 协议,它更适合需要实时交互的应用场景。此协议在现代 Web 应用中扮演着至关重要的角色,尤其是在需要实时更新和通信的场合下维持持久连接。本文将探讨 WebSock…...
Unity AStar寻路算法与导航
在游戏开发中,寻路算法是一个非常重要的部分,它决定了游戏中角色的移动路径。Unity作为一款流行的游戏开发引擎,提供了许多内置的寻路算法,其中最常用的就是AStar算法。AStar算法是一种基于图的搜索算法,通过启发式搜索…...
JavaScript最新实现城市级联操作,json格式的数据
前置知识: <button onclick"doSelect()">操作下拉列表</button><hr>学历:<select id"degree"><option value"0">--请选择学历--</option><option value"1">专科<…...
SD NAND:为车载显示器注入智能与安全的心脏
SD NAND 在车载显示器的应用 在车载显示器上,SD NAND(Secure Digital NAND)可以有多种应用,其中一些可能包括: 导航数据存储: SD NAND 可以用于存储地图数据、导航软件以及车载系统的相关信息。这有助于提…...
矩阵的对角化
概述 对角化矩阵是线性代数中的一个重要概念,它涉及将一个方阵转换成一个对角阵,这个对角阵与原矩阵相似,其主要对角线上的元素为原矩阵的特征值。这样的转换简化了很多数学问题,特别是线性动力系统的求解和矩阵的幂运算。下面是…...
React编写组件时,如何省略.tsx后缀
省略.tsx后缀 当tsconfig.json配置了,需要重启后才会生效 {"compilerOptions": {"allowJs": true,"jsx": "react-jsx",} }当进行以上配置后,导入组件时添加后缀,Eslint报错如下: An im…...
移动端的React项目中如何配置自适应和px转rem
创建项目 create-react-app project-name 启动项目 npm start 下载自适应和px转rem的插件 自适应的: npm install lib-flexible --save px转rem的:npm install postcss-pxtorem5.1.1 --save-dev 创建craco.config.js配置文件 在package.json中…...
TypeScript 结合 React 开发时候 , React.FunctionComponent 解释
在 TypeScript 结合 React 开发时,React.FC(或 React.FunctionComponent)是一个泛型类型,它用于定义函数组件的类型。这个类型定义了函数组件的结构和预期行为,并且提供了泛型支持,以便你可以指定组件 prop…...
2280. 最优标号(最小割,位运算)#困难,想不到
活动 - AcWing 给定一个无向图 G(V,E),每个顶点都有一个标号,它是一个 [0,2^31−1] 内的整数。 不同的顶点可能会有相同的标号。 对每条边 (u,v),我们定义其费用 cost(u,v) 为 u 的标号与 v 的标号的异或值。 现在我们知道一些顶点的标号…...
RestTemplate启动问题解决
⭐ 作者简介:码上言 ⭐ 代表教程:Spring Boot vue-element 开发个人博客项目实战教程 ⭐专栏内容:个人博客系统 ⭐我的文档网站:http://xyhwh-nav.cn/ RestTemplate启动问题解决 问题:在SpringCloud架构项目中配…...
Docker部署前后端服务示例
使用Docker部署js前端 1.创建Dockerfile 在项目跟目录下创建Dockerfile文件: # 使用nginx作为基础镜像 FROM nginx:1.19.1# 指定工作空间 WORKDIR /data/web# 将 yarn build 打包后的build文件夹添加到工作空间 ADD build build# 将项目必要文件添加到工作空间&a…...
方格分割644--2017蓝桥杯
1.用dfs解决,首先这题的方格图形就很像一个走迷宫的类型,迷宫想到dfs,最中心点视为起点,起点有两个小人在这个方格里面对称行动,直到走出迷宫(一个人走出来了另一个人就也走出来了,而走过的点会…...
接口测试用例设计注意点
API接口测试: 1>根据接口文档,检查接口调用方法post/get,状态码、请求值、返回值 2>对请求参数做容错、边界值、等价类校验 3>功能可用,用户友好 4>密码加密,http明文,https协议密文 5>业务…...
学习linux从0到工程师(命令)-4
基本命令 uname -m 显示机器的处理器架构 uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作系统信息 arch 显示机器的处理器架构 uname -m 显示机器…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
动态 Web 开发技术入门篇
一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...
【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?
FTP(File Transfer Protocol)本身是一个基于 TCP 的协议,理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况,主要原因包括: ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...
基于江科大stm32屏幕驱动,实现OLED多级菜单(动画效果),结构体链表实现(独创源码)
引言 在嵌入式系统中,用户界面的设计往往直接影响到用户体验。本文将以STM32微控制器和OLED显示屏为例,介绍如何实现一个多级菜单系统。该系统支持用户通过按键导航菜单,执行相应操作,并提供平滑的滚动动画效果。 本文设计了一个…...
AD学习(3)
1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分: (1)PCB焊盘:表层的铜 ,top层的铜 (2)管脚序号:用来关联原理图中的管脚的序号,原理图的序号需要和PCB封装一一…...
