hive 配置文件以及join中null值的处理
来源:互联网 发布:下载定时开关机软件 编辑:程序博客网 时间:2024/05/29 06:35
一、Hive的参数设置
1. 三种设定方式:配置文件
· 用户自定义配置文件:$HIVE_CONF_DIR/hive-site.xml
· 默认配置文件:$HIVE_CONF_DIR/hive-default.xml
用户自定义配置会覆盖默认配置。另外,Hive也会读入Hadoop的配置,因为Hive是作为Hadoop的客户端启动的,Hadoop的配置文件包括
· $HADOOP_CONF_DIR/hive-site.xml
· $HADOOP_CONF_DIR/hive-default.xml
Hive的配置会覆盖Hadoop的配置。
配置文件的设定对本机启动的所有Hive进程都有效。
2. 命令行参数 ,
bin/hive -hiveconf hive.root.logger=INFO,console
这一设定对本次启动的Session(对于Server方式启动,则是所有请求的Sessions)有效。
3. 参数声明
set mapred.reduce.tasks=100;
这一设定的作用域也是Session级的
二、使用hive一些注意的地方
1. Hive使用的字符集默认是UTF-8,hive中没有转换字符编码的这种函数
hive.exec.compress.output 这个参数, 默认是 false,
但是很多时候貌似要单独显式设置一遍,否则会对结果做压缩的,如果你的这个文件后面还要在hadoop下直接操作, 那么就不能压缩了
2. Join中处理null值的语义区别
这里的特殊逻辑指的是,Hive的Join中,作为Joinkey的字段比较,null=null是有意义的,且返回值为true。检查以下查询:
select u.uid, count(u.uid)
from t_weblog l join t_user u on (l.uid = u.uid) groupby u.uid;
查询中,t_weblog表中uid为空的记录将和t_user表中uid为空的记录做连接,即l.uid = u.uid=null成立。
如果需要与标准一致的语义,我们需要改写查询手动过滤null值的情况:
select u.uid, count(u.uid)
from t_weblog l join t_user u
on (l.uid = u.uid and l.uid is not null and u.uid is notnull)
group by u.uid;
实践中,这一语义区别也是经常导致数据倾斜的原因之一。
- hive 配置文件以及join中null值的处理
- HIVE中NULL值的处理
- HIVE NULL 值处理
- hive中的NULL(hive空值处理)
- hive中的NULL(hive空值处理)
- hive中的NULL(hive空值处理)
- HIVE中Join的专题---Join详解
- hive对有特殊值null的数据倾斜处理
- Sqoop导入hive数据库NULL值处理
- hive null处理
- hive中与hbase外部表join时内存溢出(hive处理mapjoin的优化器机制)
- Hive中join的三种方式
- Hive中Join的原理和机制
- Hive SQL中join的使用
- hive中join用法
- hive中join操作
- 存储过程中null值的处理
- oracle中对null值的处理
- uva10201 - Adventures in Moving - Part IV(01背包)
- vs2010 combo box 添加data数据
- 分析javascript中的闭包
- 关于单链表函数操作中return head的意义
- Android菜鸟学习笔记之---用handler更新UI
- hive 配置文件以及join中null值的处理
- 使用common-fileupload实现文件上传功能
- JAVA图形化编程
- 选夫婿1
- cocos2d-js-v3.0-rc2:js绑定调用c++函数 1
- matlab实现复杂网络中节点重要度评估的节点收缩方法
- sql学习
- pci-pcie总线序号分配
- solaris 安装数据库软件报INS-31031