ab168 发表于 2018-9-10 08:37:52

Hive 1.1.0 tez hadoop oracle NULL sort

  最近发现hive 0.14 运行在tez的时候有不少bug,决定升级hive为hive 1.1.0,因为集群hadoop版本是2.3.0,一不小心踩到坑:
  1、hive 1.1.0 需要jdk1.7以上
  2、设置这个环境变量 HADOOP_USER_CLASSPATH_FIRST="true"
  3、https://issues.apache.org/jira/browse/HIVE-9957打上这个patch,此patch将在hive1.2.0中集成。编译hive 1.1.0源码后把 hive-shims-0.23-1.1.0.jar 替换了。最后记得还要替换hive-exec-1.1.0.jar中的Hadoop23Shims.class
  另外提一点对于NULL的排序,hive与oracle有所不同,对于如下SQL:
  SELECT
  t.chanl_id,
  t.date_id,
  t.pltfm_id,
  t.prov_id,
  t.old_mbr_num,
  ROW_NUMBER () OVER (partition by t.date_id ORDER BY t.old_mbr_num) ROW_NUMBER
  FROM
  data t;
  Oracle 执行结果如下:
  568592015-02-15114491
  568592015-02-151168692
  568592015-02-151170473
  568592015-02-151186284
  568592015-02-1511118045
  568592015-02-1511120896
  568592015-02-1511187787
  568592015-02-1511259068
  。。。。
  568592015-02-1511191046115939
  568592015-02-1511NULL940
  568592015-02-1511NULL941
  568592015-02-1511NULL942
  568592015-02-1511NULL943
  Hive 执行结果如下:
  0568592015-02-1511NULL1
  1568592015-02-1511NULL2
  2568592015-02-1511NULL3
  3568592015-02-1511NULL4
  4568592015-02-15114495
  5568592015-02-151168696
  6568592015-02-151170477
  7568592015-02-151186288
  8568592015-02-1511118049
  可见两者对于NULL的排序不一样。

页: [1]
查看完整版本: Hive 1.1.0 tez hadoop oracle NULL sort