HIVE 几个 by的区别

参考资料:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy

Order By:
1、在hive.mapred.mode=strict模式下,order by 后面必须加limit。因为不加的话,order by会对所有的数据进行排序。而要进行全局排序,只能使用一个Reducer进行排序,如果结果集数据量异常大的话,速度异常缓慢。

Sort by VS Order by

1、Sort by是将在一个Reducer中的数据进行局部排序,如果有多Reducer,那么结果集只能是局部排序的。而Order By是所有Reducer汇总到一个Reducer进行全局排序。

Cluster By VS Distribute By

1、Cluster By 只是 Distribute By 和Sort By 的简写。即:Cluster By 字段A ==Distribute By 字段A Sort By 字段A。那么既然这样,为什么还要Distribute By和Sort By呢?那就是当Distribute By和Sort By字段不一致的时候就需要了。例如Distribute By 字段A Sort By 字段B 字段C。
2、Cluster By 因为包含Sort by,所以在每一个Reducer中的数据是有序的。
3、Distribute By 是无序的。
4、当Distribute By和Sort By的字段不一致时,就无法使用Cluster By。

hive on spark rpc channel is closed

在新安装好的CDH集群上跑一个
select count(*) from bigtable
一启动spark任务就报错。但是一些小表查询,无需启动spark任务的sql就很快。说明问题出在了spark上。

在任务管理器里面,看到只启动了一个executor,关键是任务已经失败了,还有部分task一直处于running状态。

hive中的报错信息非常简单,死活找不到问题。
最后启用了spark-shell,用scala去执行同样的sql,结果日志报错非常的明显。。而且一目了然!!
而且日志里面写清楚了是node17的问题:


Can't create directory
/bigdata/diskb/yarn/nm/usercache/hive/appcache/application_1543298149182_0044 - Permission denied
Can't create directory
/bigdata/diskc/yarn/nm/usercache/hive/appcache/application_1543298149182_0044 - Permission denied
Can't create directory
/bigdata/diskd/yarn/nm/usercache/hive/appcache/application_1543298149182_0044 - Permission denied
Can't create directory
/bigdata/diske/yarn/nm/usercache/hive/appcache/application_1543298149182_0044 - Permission denied
Can't create directory
/bigdata/diskf/yarn/nm/usercache/hive/appcache/application_1543298149182_0044 - Permission denied
Can't create directory
/bigdata/diskg/yarn/nm/usercache/hive/appcache/application_1543298149182_0044 - Permission denied
Can't create directory
/bigdata/diskh/yarn/nm/usercache/hive/appcache/application_1543298149182_0044 - Permission denied
Can't create directory
/bigdata/diski/yarn/nm/usercache/hive/appcache/application_1543298149182_0044 - Permission denied
Can't create directory
/bigdata/diskj/yarn/nm/usercache/hive/appcache/application_1543298149182_0044 - Permission denied
Can't create directory
/bigdata/diskk/yarn/nm/usercache/hive/appcache/application_1543298149182_0044 - Permission denied

所以以后一旦出现hive sql查不出问题明细的时候,一定要使用spark-shell差错。感觉非常的清楚。
问题明确:
node17上的yarn nodemanager有问题了。那个数据目录没有权限。
解决方法:
1、依然是简单粗暴的方法:直接废掉node17的nodemanager,不就损失一个节点吗。。

2、变更目录权限与其他节点一直:其实我给那两个目录授权了 hive:yarn,使其权限和其他节点一样的权限。可惜还是不行。
—后来发现我错了。。其实我只变更了一块盘,这个节点的yarn一共有十个数据盘。。。。我需要处理十次。

3、删除usercahce下的所有目录!参考资料:

rm -rf /dn/yarn/nm/usercache/*

cdh kerberos 问题

1、kerberos导出keytab文件:

登录到kerberos server所在的主节点,然后执行

kadmin.local

然后执行:

xst -k /路径/XXX.keytab -norandkey XXX

例子:xst -k /home/test/test.keybat -norandkey test

注意:千万别执行ktadd -k /test/test.keytab test@TEST.COM。

不然的话所有用户的密码都要变更

2、kinit免密码登录,通过keytab文件进讨论

kinit test -k -t /home/test/test.keytab

3、列出当前所kinit使用的用户

klist -e

oracle rac 资源申请

oracle rac的资源如下:

1、至少两台PC机

2、一个共享NAS盘挂在到所有PC机上,因为rac是依靠共享存储的。

3、每个PC机需要一个Visual IP,一个物理ip

4、一个漂移IP,又叫scan ip

 

最小配置资源举例

两台物理机

每个pc都一个物理ip,一个visualip。合计四个ip

一个scan ip。

物理机1  物理iP:10.10.10.1 VOIP:10.10.10.101

物理机2  物理iP:10.10.10.2 VOIP:10.10.10.102

SCANIP:     10.10.10.103

NAS存储:2TB