CDH基础配置及优化

一、hive中文注释乱码 1、设置 hive 元数据库字符集 show create database hive; 查看为 utf8,需变更为 latin1 alter database hive character set latin1; 2、更改如下表字段为字符集编码为 utf8 ①修改表字段注解和表注解 alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8; alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8; ② 修改分区字段注解: alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8 ; alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8; ③修改索引注解: alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8; ...

2026年2月1日 · 2 分钟

关于maven项目的配置文件

把项目的配置文件按运行环境做一下区分,比如开发环境和线上环境使用的使用不同的配置文件,这里我们基于项目的 resoures/ 目录来实现: # resoures 目录 . ├── env │ ├── config.dev.properties │ └── config.prod.properties └── config.properties 我们创建了一个 config.properties 文件来配置项目的常用配置数据,如, kafaka 、 redis 等连接配置等。 然后创建一个 env 子目录,并创建两个环境对应的配置文件,我们希望不同的环境当中使用不同的配置。当然,光是创建这些文件,是无法让文件实现自动按照运行环境自动实现文件匹配的,我们还需要配置 pom.xml 文件: 首先,找到 <build> 配置字段,添加文件路径: <build> <!-- Loading all ${} --> <filters> <filter>src/main/resources/env/config.${env}.properties</filter> </filters> <!-- Map ${} into resources --> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>*.properties</include> </includes> </resource> </resources> <!-- 省略之后若干行 --> </build> 上述代码目的是告诉构建工具,在构建的时候需要加载 resoures 目录的配置文件参与构建,并且使用 ${env} 环境变量来决定具体加载的名称。 因此,我们还需要指定 ${env} 的环境变量配置,在 <profiles> 标签下,移除默认的 <profile> 配置内容,新建两份环境配置 dev 和 prod 的 profile 文件配置: ...

2023年10月15日 · 1 分钟

yarn队列设置

在大数据平台运维中,会经常遇到集群资源争抢的问题。因为在公司内部,Hadoop Yarn 集群一般会被多个业务、多个用户同时使用,共享 Yarn 资源。此时,如果不对集群资源做规划和管理的话,那么就会出现 Yarn 的资源被某一个用户提交的 Application(App)占满,而其他用户只能等待;或者也可能会出现集群还有很多剩余资源,但 App 就是无法使用的情况。 如何解决这个问题呢?此时就需要用到 Hadoop 中提供的资源调度器。 Yarn 多用户资源管理策略 Yarn 提供了可插拔的资源调度算法,用于解决 App 之间资源竞争的问题。在 Yarn 中有三种资源调度器可供选择,即 FIFO Scheduler、Capacity Scheduler、Fair Scheduler,目前使用比较多的是 Fair Scheduler 和 Capacity Scheduler。下面对这三种资源调度器分别进行介绍。 1. FIFO Scheduler 在 Hadoop 1.x 系列版本中,默认使用的调度器是 FIFO,它采用队列方式将每个任务按照时间先后顺序进行服务。比如排在最前面的任务需要若干 Map Task 和 Reduce Task,当发现有空闲的服务器节点时就分配给这个任务,直到任务执行完毕。 2. Capacity Scheduler 在 Hadoop 2.x/3.x 系列版本中,默认使用的调度器是 Capacity Scheduler(容量调度器),这是一种多用户、多队列的资源调度器。每个队列可以配置资源量,可限制每个用户、每个队列的并发运行作业量,也可限制每个作业使用的内存量;每个用户的作业有优先级,在单个队列中,作业按照先来先服务(实际上是先按照优先级,优先级相同的再按照作业提交时间)的原则进行调度。 容量资源调度器,支持多队列,但默认情况下只有 root.default 这一个队列。 当不同用户提交任务时,任务都会在这个队列里按照先进先出策略执行调度,很明显,单个队列会大大降低多用户的资源使用率。 因此,要使用容量资源调度,一定要配置多个队列,每个队列可配置一定比率的资源量(CPU、内存);同时为了防止同一个用户的任务独占队列的所有资源,调度器会对同一个用户提交的任务所占资源量进行限定。 举个简单的例子,下图是容量调度器中配置好的一个队列树: 上图通过队列树方式对 Yarn 集群资源做了一个划分,可以看到,在 root 队列下面定义了两个子队列 dev 和 test,分别占 30% 和 70% 的 Yarn 集群资源;而 dev 队列又被分成了 dev1 和 dev2 两个子队列,分别占用 dev 队列 30% 中的 40% 和 60% 的 Yarn 集群资源。 ...

2023年5月28日 · 2 分钟

Ranger配置大数据组件

1.开启ranger-hive ranger-hdfs插件 2.修改hdfs配置 1.开启hdfs认证 hadoop.security.authorization = true

2023年4月2日 · 1 分钟

impala配置调优

Impala Daemon 命令行参数高级配置代码段(安全阀) -use_local_tz_for_unix_timestamp_conversions=true -convert_legacy_hive_parquet_utc_timestamps=true 在hive中,一个中文字符长度为1 在impala中,一个中文字符长度为3

2022年11月27日 · 1 分钟

hive设置spark参数

set spark.master=yarn-cluster; #设置spark提交模式 set hive.execution.engine=spark; #设置计算引擎 set spark.yarn.queue=queue_name; #设置作业提交队列 set spark.app.name=job_name; #设置作业名称 set spark.executor.instances=20; #设置执行器个数 set spark.executor.cores=4; #设置执行器计算核个数 set spark.executor.memory=8g; #设置执行器内存 set mapred.reduce.tasks=600; #设置任务并行度 set spark.yarn.executor.memoryOverhead=2048; #设置每个executor的jvm堆外内存 set spark.memory.fraction=0.8; #设置内存比例(spark2.0+) set spark.serializer=org.apache.serializer.KyroSerializer; #设置对象序列化方式

2022年10月2日 · 1 分钟

CDH组件参数调优

1.YARN参数调优 检查项 当前值 修改值 JobHistory Server 的 Java 堆栈大小 1GB 2GB NodeManager 的 Java 堆栈大小 1GB 2GB ResourceManager 的 Java 堆栈大小 1GB 2GB 容器内存 yarn.nodemanager.resource.memory-mb 24GB 32GB 最小容器内存 yarn.scheduler.minimum-allocation-mb 10GB 8GB 最大容器内存 yarn.scheduler.maximum-allocation-mb 40GB 56GB Map 任务内存 mapreduce.map.memory.mb 0M 12GB Reduce 任务内存 mapreduce.reduce.memory.mb 0M 24GB Application Master容器内存 yarn.app.mapreduce.am.resource.mb 24GB 32GB Map 任务 Java 选项库 mapreduce.map.java.opts -Djava.net.preferIPv4Stack=true -Dmapreduce.map.java.opts=-Xmx2048m Reduce 任务 Java 选项库 mapreduce.reduce.java.opts -Djava.net.preferIPv4Stack=true -Dmapreduce.reduce.java.opts=-Xmx2048m yarn.resourcemanager.scheduler.class org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler yarn.scheduler.capacity.root.queues: 当前值: <configuration> <property> <name>yarn.scheduler.capacity.root.queues</name> <value>default</value> </property> <property> <name>yarn.scheduler.capacity.root.capacity</name> <value>100</value> </property> <property> <name>yarn.scheduler.capacity.root.default.capacity</name> <value>100</value> </property> </configuration> 修改值: ...

2022年5月29日 · 2 分钟

取消HDP hive默认开启ACID配置

问题描述 原因排查 HDP 的 hive 使用的版本较高为3.1.0 ,默认建表都是使用 ACID 的事务表。而 HDP的spark版本较低为2.3 目前还不支持 hive 的 ACID 功能,因此无法读取 ACID 表的数据,准确来说是内表的数据。 官方资料 spark issues 地址: SPARK-15348 Hive ACID 解决方案 修改hive以下配置,重启hive hive.strict.managed.tables =false hive.create.as.insert.only =false metastore.create.as.acid =false 其他资料 Hive 中支持的表类型和 ACID 特性 表类型 ACID 文件格式 插入 更新 / 删除 托管表:CRUD 事务 是 ORC 是 是 托管表:仅插入式事务 是 任意格式 是 没有 托管表:临时 没有 任意格式 是 没有 外部表 没有 任意格式 是 没有 查看表的属性,指令:desc formatted tb_name ...

2022年3月20日 · 2 分钟