hive调优

 1.explain
  使用explain查看查询计划
  hive>explain [extended] select count(*) from customers ;
  hive>explain select t.name , count(*) from (select a.name ,b.id,b.orderno from customers a ,orders b where a.id = b.cid) t group by t.name ;
  //设置limit优化测,避免全部查询.
  hive>set hive.limit.optimize.enable=true
  //本地模式
  $hive>set mapred.job.tracker=local;   //
  $hive>set hive.exec.mode.local.auto=true //自动本地模式,测试

  //并行执行,同时执行不存在依赖关系的阶段。??
  $hive>set hive.exec.parallel=true   //
  //严格模式,
  $hive>set hive.mapred.mode=strict   //1.分区表必须指定分区进行查询
             //2.order by时必须使用limit子句。
             //3.不允许笛卡尔积.

  //设置MR的数量
  hive> set hive.exec.reducers.bytes.per.reducer=750000000; //设置reduce处理的字节数。
  //JVM重用
  $hive>set mapreduce.job.jvm.numtasks=1  //-1没有限制,使用大量小文件。

  //UDF
  //User define function,用户自定义函数
  //current_database(),current_user();
  //显式所有函数
  $hive>show functions;
  $hive>select array(1,2,3) ;
  //显式指定函数帮助
  $hive>desc function current_database();
  //表生成函数,多行函数。
  $hive>explode(str,exp);   //按照exp切割str.

你可能感兴趣的:(hive调优)