一、Hive的參数设置

1.  三种设定方式:配置文件

·   用户自己定义配置文件:$HIVE_CONF_DIR/hive-site.xml

·   默认配置文件:$HIVE_CONF_DIR/hive-default.xml

用户自己定义配置会覆盖默认配置。

另外,Hive也会读入Hadoop的配置,由于Hive是作为Hadoop的client启动的,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值的处理的更多相关文章

  1. Oracle中NULL值与索引

    NULL值是关系数据库系统布尔型(true,false,unknown)中比较特殊类型的一种值,通常称为UNKNOWN或空值,即是未知的,不确定的.由于NULL存在着无数的可能,因此NULL值也不等于 ...

  2. Javascript中null值,特别注意的两点

    null 是一个javascript字面量,表示空值,就是没有对象被呈现.他是javascript原始值之一.null值常被放在期望一个对象上,但是不引用任何对象的参数位置,也就是说对象的初始化. 我 ...

  3. 微软BI 之SSIS 系列 - 对于平面文件中 NULL 值处理过程中容易极易混淆的几个细节

    开篇介绍 最近有人问我有关文件处理中空值处理的相关问题: OLE DB Destination 中的 Keep Nulls 如何控制 NULL 值的显示? 为什么选中了 Keep Nulls 但是数据 ...

  4. MySQL下concat函数中null值问题

    在mysql中,使用CONCAT(str1,str2,...)函数拼接字符串的过程中,如果你拼接的字段当中有值为null,那么拼接的结果就为null 注: select CONCAT(字段1,字段2) ...

  5. 细说Oracle中NULL值

    1.NULL是什么? NULL表示UNKNOW(未知),其不代表不论什么值. 比如一行中某列没有不论什么值即为NULL. ORACLE同意不论什么一种数据类型的字段为空,除了下面两种情况: 1)主键字 ...

  6. SQL——处理列中NULL值

    处理NULL值 - 数据库中某列为NULL值,使用函数在列值为NULL时返回固定值.    SQLServer:ISNULL(col,value)        示例:SELECT ISNULL(co ...

  7. SQL中NULL值

    SQL的表达式,除了IS NULL和NOT NULL以外,只要出现NULL值结果都为FALSE 简单的例子: SELECT * FROM table WHERE name!='abc' 只要name值 ...

  8. 【Oracle】Oracle 的过程化SQL(PLSQL)中NULL值的处理

    下面是NULL的几个注意点: 1.NULL值既不是空格也不是0. 2.给表插入值的时候,如果没有给列指定列值,则默认为NULL. 3.当算术表达式里包含NULL值时,其计算结果也是NULL值. 这时候 ...

  9. 面试题((A)null).fun()——java中null值的强转

    面试题分享 public class A {public static void fun1() { System.out.println("fun1"); } public voi ...

随机推荐

  1. thinkphp我掉下的一些坑

    1.数据库连接,需要连接没有数据表前缀 如下,第二个参数必须为null,我之前写的是'',结果给我默认加了前缀 $User = M('User',Null,'DB_CONFIG2'); 2.AJAX获 ...

  2. python【第十三篇】可以写一个堡垒机了

    前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功能只是堡垒机所具备的功能属性中的其中 ...

  3. javascript 与 java

  4. Windows7のping応答の設定

    2015年11月13日 18時09分 wanglinqiang整理 ping応答しない場合.ping応答させる.させない等の設定 1.スタート(左下のウィンドウズのロゴ)⇒コントロールパネルを選択. ...

  5. struts2中的标签“# ”,“%{ }”,“%{# }”

    理解值栈(ValueStack)与上下文(StackContext):            Struts2中有值堆栈和堆栈上下文的概念,你用 <s:debug />可以看出. 值栈中的对 ...

  6. scala 安装

    http://www.scala-lang.org/download/install.html http://zh.scala-tour.com/#/hello-wolrd scala指南 To ru ...

  7. GemFire

    一.GemFire是什么?   如果你了解Redis或memCached,那么恭喜,你很快就能理解GemFire是什么,没错,你可以把它理解为一个增强版的Redis,具体在哪些方面增强,我们日后慢慢聊 ...

  8. The Perfect Stall

    poj1274:http://poj.org/problem?id=1274 题意:有n个奶牛和m个谷仓,现在每个奶牛有自己喜欢去的谷仓,并且它们只会去自己喜欢的谷仓吃东西,问最多有多少奶牛能够吃到东 ...

  9. utf8_to_utf16

    17down voteaccepted Here's some code. Only lightly tested and there's probably a few improvements. C ...

  10. Activity 怎样获得另一个xml布局文件的控件

    两个布局文件,一个main.xml,一个main2.xml,一个MActivity,在MActivity的onCreate()里设置的是setContentView(R.layout.main).现在 ...