1.Unable to determine Hadoop version information. 'hadoop version' returned:
解决办法:
修改bin/hive,
# HADOOP_VERSION=$($HADOOP version | awk '{if (NR == 1) {print $2;}}');
HADOOP_VERSION=$($HADOOP version | awk '{if($0 ~ /[[:alpha:]]+ ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)?.*$/){print $2};}')
2. 在Hive中使用show tables;等命令报错:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes
解决办法:
到mysql中的hive数据库里执行 alter database hive character set latin1;
改变hive元数据库的字符集,问题就可以解决! 但是这时你如果建一个表里有中文,就会报错了。
3.hive show tables; 报错:
FAILED: Error in metadata: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
解决办法:
cd $HIVE_HOME/conf,确认hive-site.xml中的javax.jdo.option.ConnectionURL等配置是否正确
4.hive自定义函数扩展
在hive安装目录下建auxlib文件夹,与lib目录同级,把自己开发的扩展jar放到该目录下,
在使用之前执行一下类似如下的语句:
CREATE TEMPORARY FUNCTION ailk_udf_row_number AS 'com.ailk.cp.cloud.hiveudf.udf.AilkUdfRowNumber'
5.外部表建分区时需要指定location时
应该写成这样:
alter table tc_social_all add partition (yyyy=2016,mm=6,dd=16,hh=0) location '2016/06/16/00';
alter table tc_social_all add partition (yyyy=2016,mm=6,dd=16,hh=1) location '2016/06/16/01';
不能写成这样:
alter table tc_social_all add partition (yyyy=2016,mm=6,dd=16,hh=0) location '2016/06/16/00'
partition (yyyy=2016,mm=6,dd=16,hh=1) location '2016/06/16/01';
否则,所有的分区都指向'2016/06/16/00'。
删除外部表时,数据不会删除
删除普通表时,数据会删除
6.显示表分区
show partitions tabName
7.hive查询写文件报错Failed with exception Unable to move source hdfs:xx to destination xxx
解决方法:$HADOOP_HOME/share/hadoop/tools/lib/hadoop-distcp-2.6.0.jar放入hive的lib目录
并重启hive shell
8.启动hive metastore
nohup hive --service metastore &
9.执行hive报错
Diagnostic Messages for this Task:
java.lang.RuntimeException: native-lzo library not available
at com.hadoop.compression.lzo.LzoCodec.getCompressorType(LzoCodec.java:155)
解决:
cp /export/home/hadoop/hadoop-2.6.0-cdh5.4.1/lib/native/libgplcompression.so /usr/java/jdk1.7.0_55/jre/lib/amd64
另外确认下/usr/java/jdk1.7.0_55/jre/lib/amd64下的libgplcompression.so有没有读取和执行权限。
10.Does not contain a valid host:port authority: logicaljt
zookeeper中的MR配置没有更新,需要格式化一下,在MR主节点(jobtracker主节点)执行:./hadoop mrzkfc -formatZK
11.查看table在hdfs上的存储路径
show create table 表名;
12、hive报错java.io.IOException: Could not find status of job:job_1470047186803_131111
jobname过长导致,jobname默认是从hql中的开头和结尾截取一部分,如果sql开头或结尾有中文注释的话,会被截取进来,并进行url编码。导致作业的信息名变的非常长,超过了namenode所允许的最大的文件命名长度。导致任务无法写入historyserver。hive在historyserver无法获得这个job的状态,报开头的错误。
简单的解决办法:
设置jobname的最大长度
set hive.jobname.length=10;
相关推荐
hive的一些报错及解决方法:连接报错、执行脚本卡住、内存溢出报错、表死锁问题
1)Failing because I am unlikely to write too. 2)Caused by: java.lang.OutOfMemoryError: Java heap space ...5)hive on tez 最终insert的表如果使用到union all 时会导致直接查询结果表数据为空的
今天更新hive版本的时候,把关联的数据库删掉了,重新生成,之后出现MetaException(message:An exception was thrown while adding/validating class(es) : Column length too big for column 'PARAM_VALUE' (max = ...
hdfs开启高可用+hive报错
hive工作常见问题解决收集开发人员在Hive日常开发过程中难免遇到各种各样的hive报错,这些报错信息很多时间并没有形成汇总的知识库,每次遇到问题都会重复查资料,效率非常低 现在总结一些常见的知识库,方便大家...
hive2.1.1orc格式读取报数组越界错误,替换jar包。hive-exec-2.1.1-cdh6.3.2.jar、hive-orc-2.1.1-cdh6.3.2.jar。分发各个服务器即可。
datax数据从hive表导入mysql表,数据缺失解决
数据库修改为拉丁语的步骤。1、在hive中无法删除非空数据库,无法删除表的解决办法如下;2、在hive中加载数据导表中报错。直接下载到本地即可查看步骤
hive 下dual表,Lock,explain, 数据类型,开发常见的问题
背景:由于Hive需要开启权限管理,安装网上教程,开启权限配置,重启集群后。 使用root用户登录,进入Hive命令行界面。 执行 create database test; 发现报错: Authorization failed:No privilege 'Create' found ...
解决kettle使用表输出到hive2时,批量提交不起作用导致速度非常慢的问题,重新编译big-data-plugin插件使表输出支持对hive2批量提交,速度由几十条每秒提升到三千条每秒。
hive相关jar包,连接大数据hive所用jar包,最新3.1.1版本
hive解决问题的一些方案
Hive常见错误及解决方案.docx
hive hive hive hive hive hive hive hive hive hive hive hive
Spark不能使用hive自定义函数
使用hive3.1.2和spark3.0.0配置hive on spark的时候,发现官方下载的hive3.1.2和spark3.0.0不兼容,hive3.1.2对应的版本是spark2.3.0,而spark3.0.0对应的hadoop版本是hadoop2.6或hadoop2.7。 所以,如果想要使用高...
4 Hive 表相关语句 3 4.1 Hive 建表: 3 4.1.1使用LIKE关键字创建一个与已有表模式相同的新表: 4 4.2 Hive 修改表 4 4.2.1 Hive 新增一个字段: 4 4.2.2 Hive 修改字段名/字段类型/字段位置/字段注释: 4 4.2.3 ...
大数据常用组件 Hue的常见问题解决方案,包涵大部分常见Hue的问题整理,供参考