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命令使用 ...
随机推荐
- 高速上手Unity中最好的补间动画插件DFTween
出处:http://blog.csdn.net/u010019717 author:孙广东 时间:2015.3.17 23:00 DFTween 是一个在 Unity 游戏引擎中高 ...
- MySql 数据库系列问题
0. 我的MYSQL学习心得(四) 数据类型(系列文章) 1.MySql数据库学习--存储过程(1) 0.[转]MySQL存储过程调试工具-dbForge Studio for MySQL ①.存储过 ...
- Hadoop学习笔记——Hadoop经常使用命令
Hadoop下有一些经常使用的命令,通过这些命令能够非常方便操作Hadoop上的文件. 1.查看指定文件夹下的内容 语法: hadoop fs -ls 文件文件夹 2.打开某个已存在的文件 语法: h ...
- 解决QT:forward declaration of 'struct Ui::xxx';invalid use of incomplete struct "Ui::Widget" 等莫名奇异错误
今天在进行QT Widget的UI设计时,改了下Widget的对象名,然后在多次成功编译执行后,执行清理,又一次构建,就出现了好多莫名奇异的错误: widget.h:12: 错误:forward de ...
- apache常用模块介绍
mod_actions 基于媒体类型或请求方法,为执行CGI脚本而提供 mod_alias 提供从文件系统的不同部分到文档树的映射和URL重定向 mod_asis 发送自己包含HTTP头内容的文件 ...
- ASIHTTPRequest数据压缩
本文转载至 http://blog.csdn.net/zhuoyuetec/article/details/18216439 IOSASIHttprequestsetShouldCompressRe ...
- iphone怎么检测屏幕是否被点亮 (用UIApplication的Delegate)
本文转载至 http://gaohaijun.blog.163.com/blog/static/176698271201161524857373/ 问题:那位能说一下怎么能检测到iphone ...
- 浅谈<持续集成、持续交付、持续部署>(二)
集成是指软件个人研发的部分向软件整体部分交付,以便尽早发现个人开发部分的问题:部署是代码尽快向可运行的开发/测试节交付,以便尽早测试:交付是指研发尽快向客户交付,以便尽早发现生产环境中存在的问题.如果 ...
- 6.2.3-AbstractBeanFactory
AbstractBeanFactory体系: 这个抽象类中很重要的实现了BeanFactory中得一个方法,doGetBean(); @SuppressWarnings("unchecked ...
- ubuntu问题: 同时只能有一个软件管理工具在运行
或者是: 只能同时运行一个更新管理器 打开终端输入命令:sudo dpkg –configure -a 运行,系统问题就解决了