随笔分类 - Hive
摘要:1、问题现象 执行insert overwrite 时出现moveing异常 具体异常如下: 2、分析 目前对于分区表执行的是动态分区的插入方式,可以发现其中的分区字段值变成了_HIVE_DEFAULT_PARTITION_,通过查询资料,这是因为在原始表中的分区字段值有null或者''值时,在插入
阅读全文
摘要:1、防止误删除数据 在hive里面经常执行insert overwrite语句,通常来说,没有执行完的话,默认不会覆盖目标表的数据。但是如果执行完了,目标表的数据就会被清理掉。 那么如何保护这些数据目录没有被清理掉,而是被移动到Hadoop的回收站里面了呢? 这里需要使用到hive的如下参数 hiv
阅读全文
摘要:一、数据迁移流程 目前没有采用官方给定的命令来进行数据迁移,而是使用创建表+copy数据的方式。 二、具体的流程如下 1、从需要被迁移的hive数据库里面把表的执行语句获取出来; 2、修改需要修改的信息(比如名称空间); 3、在目标集群的hive里面执行创建表语句; 4、使用distcp拷贝源hiv
阅读全文
摘要:一、问题描述 查询的语句类似如下: select * from table_name where xxx='yyy' limit 10; 当前的hive表存储格式是orc格式,执行引擎是tez,并行度也已经调整到几十了,但是在执行这个sql的时候,发现一直卡住,执行不成功。 二、问题现象 and 分
阅读全文
摘要:一、错误现象 在执行hive sql的时候,出现如下错误: 二、错误的原因很分析 hive的数据存储使用的是EC,然而ec在hdfs的3.1.x版本上面有bug,所以就出现了上述的问题。但是这个bug已经在后续的版本上面修复了。如下图: 具体的官方issue: | https://issues.ap
阅读全文
摘要:HDP version: 3.x 1、hive执行sql慢 执行sql hive通过Tez引擎执行如下的sql语句: insert overwrite select .... 整个执行过程消耗十分钟左右,平时任务2-3分钟可以完成,可以明显看到,任务调度出现问题了。 分析 上述的sql语句对应两个m
阅读全文
摘要:错误1,错误信息如下: 尝试解决办法: set hive.mapjoin.hybridgrace.hashtable=false; 原文:https://issues.apache.org/jira/browse/HIVE-15194
阅读全文
摘要:如果在执行tez任务的时候,,长时间的卡住,如下图: 可能的原因是由于数据量太大,导致am异常 解决: set tez.am.launch.cmd-opts=-Xms16384m -Xmx16384m; set tez.am.resource.memory.mb=20480;
阅读全文
摘要:一、 编译处理程序 使用python编写脚本 1、编写map对应的脚本 map.py #!/usr/bin/env python import sys for i in sys.stdin: worlds = i.strip().split() for word in worlds: print("
阅读全文
摘要:1、对数据进行归档 alter table tableName archive partition(current='2020-07-02'); 报错如下: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.e
阅读全文
摘要:数据加载到表 非分区表 方式1: 假设当前已经存在一张非分区表,那么可以直接通过拷贝的方式把数据拷贝到hdfs上面的对应目录 eg 1、创建测试表 hive (r_db2)> create table input_test(id int, name string); 2、创建测试数据 [hduser
阅读全文
摘要:一、数据库操作 1、创建数据库 语法格式: CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION hdfs_path] [MANAGEDLOCATION hdfs_pat
阅读全文
摘要:hive 随笔 1、获取当前hive的所有变量信息,包括hiveconf、hivevar、system、env等的信息 hive -S -e "set" > hive.cmd hive -S -e "set -v" > hive.cmd #可以获取hadoop相关的属性 2、自定义变量 ① 在进入h
阅读全文