HIVE- 大数据运维之hive管理
我现在在一家公司负责大数据平台(CDH平台)的运维管理,最常遇见的问题我总结出来,并且继续在下面更新。希望方便自己以后trouble shooting以及方便各位同行解决问题与学习。
关于做运维有几个重要的要点一定一定要遵守的:
遇到问题冷静,冷静,冷静,就山崩都要冷静,心态关乎你是否能将问题解决同时不会给人留下不好的印象。
凡是关于对集群更改与变动的操作,一定要在测试环境测试到没问题才上生产,不然可能会造成不可挽回的损失。
尽可能的定期做备份,它可能在最绝望的时刻救命,这是最后的救命草。
HUE Cannot access
突然一天业务跟我说hue不能登陆,拒绝登陆。我发现hue web页面是可以正常打开的,但是使用账号login时提示 cannot access!
首先上cdh cm管理界面检查 hue 相关进程 ,发现有个进程处于不正常的状态:Kerberos Ticket Renewer

解决办法:重启该 Kerberos Ticket Renewer 进程就能正常访问hue了。
Hive 运维
hive外部表不能查询
一天业务跟我反馈 hive 外部表不能查询并给出报错截图

我第一反应是外部表是连接到数据存储的目录,问题出现的问题肯定是该外部表的 location 下的文件出现问题。于是我检查命令 : show create table table_name;
查看到外部表的 location ,检查该表所在的 location ,发现除了原先的excel表之外还有个文件夹,文件夹里面还有其他的文件。初步判断是业务把不同schema的文件放在该 location ,导致 hive 无法正常读取文件出现查询表格报错的问题。
解决办法:把该location下的其他文件迁移出去就行了。
hive内部表转外部表
在业务操作中经常遇到用查询出来的结果创建一张表,再将这张表转为外部表:
ALTER TABLE table_name SET TBLPROPERTIES ('EXTERNAL'='TRUE');
hive 查询中文乱码/hive查询外部导入的excel文件中文乱码
在实际应用场景中经常遇到这样的问题,将excel文件上传HDFS,再建立外部表指向该文件在HDFS的位置。但是外部表建立好了发现查询该表示时发现,出现中文乱码并且列对不上,数据都挤到第一列。这个时候发现业务建立外部表的分隔符是“,”同时检查到她上传的文件的后缀时 “.xlsx"。
判断上传文件的格式与外部表的分隔符不对。微软的excel xlsx等分隔符是”\t“,csv格式是逗号。另外在windows上中文系统文件的编码一般都是 GBK,HDFS默认编码是UTF8,需要对该外部表更改编码。
解决过程发现换了分隔符和换了编码都不能解决问题。尝试将xlsx文件另存为csv文件(逗号分隔符)上传到HDFS,将外部表的分隔符转为逗号,将外部表编码转为GBK,就好了。然后定下规范上传分隔符为逗号的 csv 文件给外部表,建外部表的分隔符为逗号。
ALTER TABLE 表名 SET SERDEPROPERTIES ('serialization.encoding'='GBK')
hive 查询结果导出中文乱码
在实际应用场景中经常遇到这样的问题,需要将查询的结果导出成为电子表格文件,在hue上提供了两种外部文件的方法,xlsx文件和csv文件。xlsx文件数据量比较大的时候它导出时长比较长,会报服务器网络异常的错误(可能是我们公司出现这种问题),导出csv文件很快,但是出现打开文件是中文乱码的问题。于是将导出的文件用uedit这个人间重新保存为有bom的utf8。就完美解决中文乱码问题,虽然繁琐但是实用。

HIVE外部表不能查询
一天一个user跟我反应说hive外部表不能使用了,昨天还能使用的。
首先遇到这种问题,先不要慌,跟着自己的思路走:
1.亲自测试时什么情况,在有权限的情况下查询下该表,亲自看看报错是怎的。
发现真的是有报错,既然昨天能使用说明表结构是正常的。排除建立外部表字段对应不上的问题。
2.既然表结构没问题,判断数据源。hive外部表是有个location,通过show create table table_name 检查location
在hdfs上检查该路径,发i现该路径下有出了一个excel表,还有一个文件夹,文件夹里面还有别的文件。错误是在location里面添加了不是与hive相同 schema的文件,离谱的是加了文件夹。
3.解决办法:
把这些多余的文件迁移到别的地方。
hive表不能truncate
hive> TRUNCATE TABLE test.student;
FAILED: SemanticException [Error 10146]: Cannot truncate non-managed table test.student.
hive>

原因:truncate 不能删除外部表
解决办法,把外部表转为内部表或者把外部表删除后重新建一张内部表。
Need to specify partition columns because the destination table is partition
原因是insert into default.tablename 后面没有指定分区的字段 :PARTITION(dt)
hdfs dfs -du -s -h /user/hive/warehouse/xxx.db/xxxxxxx
HIVE- 大数据运维之hive管理的更多相关文章
- 漫谈ELK在大数据运维中的应用
漫谈ELK在大数据运维中的应用 圈子里关于大数据.云计算相关文章和讨论是越来越多,愈演愈烈.行业内企业也争前恐后,群雄逐鹿.而在大数据时代的运维挑站问题也就日渐突出,任重而道远了.众所周知,大数据平台 ...
- 大数据运维尖刀班 | 集群_监控_CDH_Docker_K8S_两项目_腾讯云服务器
说明:大数据时代,传统运维向大数据运维升级换代很常见,也是个不错的机会.如果想系统学习大数据运维,个人比较推荐通信巨头运维大咖的分享课:https://url.cn/5HIqOOr,主要是实战强.含金 ...
- 谦先生-hadoop大数据运维纪实
1.NN宕掉切不过去先看zkfc的log引起原因是dfs.ha.fencing.ssh.private-key-files的配置路径配错造成以致无法找到公钥 2.dfs.namenode.shared ...
- 大数据系列之数据仓库Hive中分区Partition如何使用
Hive系列博文,持续更新~~~ 大数据系列之数据仓库Hive原理 大数据系列之数据仓库Hive安装 大数据系列之数据仓库Hive中分区Partition如何使用 大数据系列之数据仓库Hive命令使用 ...
- 大数据工具篇之Hive与MySQL整合完整教程
大数据工具篇之Hive与MySQL整合完整教程 一.引言 Hive元数据存储可以放到RDBMS数据库中,本文以Hive与MySQL数据库的整合为目标,详细说明Hive与MySQL的整合方法. 二.安装 ...
- 大数据工具篇之Hive与HBase整合完整教程
大数据工具篇之Hive与HBase整合完整教程 一.引言 最近的一次培训,用户特意提到Hadoop环境下HDFS中存储的文件如何才能导入到HBase,关于这部分基于HBase Java API的写入方 ...
- 大数据系列之数据仓库Hive安装
Hive系列博文,持续更新~~~ 大数据系列之数据仓库Hive原理 大数据系列之数据仓库Hive安装 大数据系列之数据仓库Hive中分区Partition如何使用 大数据系列之数据仓库Hive命令使用 ...
- 大数据系列之数据仓库Hive命令使用及JDBC连接
Hive系列博文,持续更新~~~ 大数据系列之数据仓库Hive原理 大数据系列之数据仓库Hive安装 大数据系列之数据仓库Hive中分区Partition如何使用 大数据系列之数据仓库Hive命令使用 ...
- 大数据系列之数据仓库Hive原理
Hive系列博文,持续更新~~~ 大数据系列之数据仓库Hive原理 大数据系列之数据仓库Hive安装 大数据系列之数据仓库Hive中分区Partition如何使用 大数据系列之数据仓库Hive命令使用 ...
随机推荐
- MySQL三:存储引擎
阅读目录 一 什么是存储引擎 二 mysql支持的存储引擎 三 使用存储引擎 一 什么是存储引擎 mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的 ...
- IntelliJ idea——》创建tag、删除tag
https://blog.csdn.net/weixin_43453386/article/details/83857038
- python学习 03 函数 (只会执行一次return就不会往下执行)
1.调用函数只会执行一次return,而且执行return后不会往下执行
- Array的push与unshift方法性能比较分析
从原理就可以知道,unshift的效率是较低的.原因是,它每添加一个元素,都要把现有元素往下移一个位置.但到底效率差异有多大呢?下面来测试一下. 测试环境的主要硬件:CPU T7100(1.8G):内 ...
- bash编程基础
bash变量 变量命名: 1.不能使用程序中的关键字(保留字) 2.只能使用数字.字母和下划线,且不能以数字开头 3.要见名知义 变量类型: 数值型:精确数值(整数),近似数值(浮点型) 字符型:ch ...
- sharding-jdbc从入门到出门(03)
经过端午节这2天对 sharding-jdbc一直怀揣成梦想的去学习,还是有一些没有解决的问题: 上一张图:
- php建立一个空类: stdClass
$pick = new stdClass; $pick->type = 'full'; ;
- Mac下nginx安装和配置
nginx安装 brew search nginx brew install nginx 安装完以后,可以在终端输出的信息里看到一些配置路径: /usr/local/etc/nginx/nginx.c ...
- hibernate 查询方式
1.对象导航查询 2.OID查询 3.hql查询 4.QBC查询 5.本地sql查询 一.对象导航查询 示例: 查询id=6的user对象的所有角色: 二.OID查询 实例查询id=6的user对象 ...
- Linux系统监控的几个命令
uptime 系统时间.运行时间.连接数(没一个终端算一个连接).在1,5,15分钟内系统负载 uname -a 查看系统所有相关信息 -r 查看系统内核版本 -s 查看系统内核名 ...