SlideShare una empresa de Scribd logo
1 de 34
hadoop 基础及 hive 入
        门
目录
 Hadoop
   前言介绍
   例子
   MR 框架
             Hive
   工作案例       前言介绍
               基本模型
               数据类型
               语句
               改进
               特性
Hadoop
 前言介绍
 例子
 MR 框架
 工作案例
hadoop
 分布式海量数据处理工具


 成本低
   服务器的成本低了,但不能忽略其他资源成本

 可扩展性
  加服务器
为什么使用 hadoop
 秦始皇统一中国的外交政策“远交近攻 , 各
个击破”

 分而治之—分治算法
hadoop 计算模型
 MapReduce 基于“分而治之”的思想,将计
 算任务抽象成 map 和 reduce 两个计算过程
hadoop 例子 -splitDate
   将数据日志按日期切割存储
hadoop 例子 -splitDate
    Map 端操作
         public void map(LongWritable key, Text value,) {
         String str_key = new String(value.getBytes(), 0,
    value.getLength(), "UTF8").split(“t”)[t_when_index].split(“ “)[0];
         out_key.set(str_key); out_value.set(t_value);
         output.collect(out_key, out_value);
    }
   Reduce 端操作
        public void reduce(Text key, Iterator<Text> values,
    OutputCollector<Text, Text> output, Reporter reporter) {
        out = mos.getCollector(name, tmp + name, reporter);
        while(values.hasNext()){
        out.collect(NullWritable.get(), values.next());
        }
    }
MR 框架
 MAP 类


 Reduce 类


 Run 参数
Map 类
public class MapReduce extends Configured implements
  tool {
  public static class Map extends MapReduceBase
      implements
      Mapper<LongWritable, Text, Text, Text> {
      // 初始化
      public void configure(JobConf job)
      // 自定义函数
      public void udf()
      public void map(LongWritable key, Text value,
             OutputCollector<Text, Text> output,
             Reporter reporter)
      // 结束操作
      public void close()
  }
Reduce 类
public class Reduce extends MapReduceBase implements
  Reducer <Text, Text, Text, Text> {
       // 初始化
       public void configure(JobConf job)
       // 自定义函数
       public void udf()
       public void reduce(Text key, Iterator<Text> values,
              OutputCollector<Text, Text> output,
              Reporter reporter)
       // 结束操作
       public void close()
  }
Run 参数
    public int run(String[] args) throws Exception {
    /*
    指定输入 / 输出文件路径;
    文件对应的 map 函数、 reduce 函数;输入 / 输出格式
    */
     }
     /*tool 接口和 GenericOptionsParser 处理命令行选项
    public static void main(String[] args) {
         int res = ToolRunner.run(new Configuration(), new
    DtwTokenJoin(), args);
         System.exit(res);
    }
}
工作案例 - 文件切割
 需求情景
 程序后台将所有数据 log 打包成一个日志文件,
 数据处理时需要切分不同的数据 log ,然后进行
 对应的处理和计算
工作案例 - 文件切割
• 解决方法
 import
 org.apache.hadoop.mapred.lib.MultipleOutputs
工作案例 - 文件编码
 需求情景
 程序数据 log 为 gbk 编码, hadoop 默认文本 utf-8
 编码,如何兼容
工作案例 - 文件编码
• 解决方法
 1 、文件 put 进 hadoop 之前做编码转换
    iconv –f gbk –t utf-8 inputFile

 2 、自定义 outputFormat 类
工作案例 - 数据解析
 字段分隔符
 csv 文件, t 分隔符文件,空格分隔符文
 件
 map.output.field.separator
 reduce.output.field.separator
工作案例 - 数据解析
 二进制文件
 二进制编码转成文本编码
 hex 进制
 base64
 uuencode
工作案例 - 数据解析
 自定义 InputSplit 和 RecordReader


 数据格式是演变的
 归根到底,无论数据格式如何,需要能够解析对
 应记录和字段
工作案例 - 配置文件
 需求情景
 需要引入经常修改变化的策划配置表单
工作案例 - 配置文件
• 解决方法
 import org.apache.hadoop.filecache.DistributedCache

 //job 配置参数
   public int run(String[] args) throws Exception {
       DistributedCache.addCacheFile(new Path(args[+
 +i]).toUri(), conf);
  }

 // 读取配置文件
    config_files =
 DistributedCache.getLocalCacheFiles(job);
    BufferedReader fis = new BufferedReader(new
 FileReader(config_file.toString()));
万众期待的时刻到了



  课间休息十分钟
hive
 前言介绍
 基本模型
 数据类型
 语句
 改进
 特性
hive
 结构化数据文件映射
为什么使用 hive
 提高效率。
 一行 hive 语句实现的功能,可能需要几十行
 hadoop 语句实现

 方便分析人员
hive 基本模型
 物理数据模型
 wh: /wh
 Table: /wh/pvs
 Partition: /wh/pvs/ds=20090801/ctry=CA
 Buckets:/wh/pvs/ds=20090801/ctry=US/part-00000
 逻辑数据模型
 External Table
 版本迭代
 0.5 0.7   0.8
Hive 基本数据类型
 Intergers
 Boolean
 Floating
 String
Hive 复杂数据类型
 Structs
 Array
 Maps
 Timestamp support in version 0.8
 Binary support in version 0.8
数据类型之题外话
 结构化数据与非结构化数据
Hive 语句
 QUERIES
  SELECT …. FROM …..WHERE……
  GROUP BY….ORDER BY….LIMIT
  JOIN
 DDL
  database 、 table(location 、 Partitions)
  funciton 、 index 、 view
 DML
  Loading files into tables
  Inserting data into Hive Tables from queries
  Writing data into filesystem from queries
Hive 改进
 Not support Multi-distinct
 bash:
       cat t_mall_buy.txt | awk ‘{print uid}’ | sort | uniq | wc –l
       cat t_mall_buy.txt | awk ‘{print urs}’ | sort | uniq | wc –l
 mysql :
       SELECT count(distinct uid), count(distint urs)
       FROM t_mall_buy
 hive:
       SELECT count(distinct uid) FROM t_mall_buy
       SELECT count(distinct urs) FROM t_mall_buy

 补丁支持
 https://issues.apache.org/jira/browse/HIVE-287
 https://issues.apache.org/jira/browse/HIVE-474
Hive 改进
 不支持 exists in 子查询
 support NOT IN and NOT LIKE syntax in version 0.8


 Not support Index
 Not available until 0.7 release


 Not support Insert into
 INSERT INTO syntax is only available starting in version
 0.8
Hive 特性
 Multi Table/File Inserts
  FROM pv_users
  INSERT OVERWRITE TABLE pv_gender_sum
  SELECT pv_users.gender,
  INSERT OVERWRITE DIRECTORY '/user/data/tmp/pv_age_sum'
  SELECT pv_users.age


 Custom map/reduce scripts
  transform(hostnum, res_type, event_type, direct, counts)
  using 'python ods_wh_economic_money_week.py‘
  as (hostnum,res_type,output_type,output_name,counts,isoutput)

 UDFS & UDAFS
  尽量使用 UDF 而不是 transform
The End

Más contenido relacionado

La actualidad más candente

Spark 巨量資料處理基礎教學
Spark 巨量資料處理基礎教學Spark 巨量資料處理基礎教學
Spark 巨量資料處理基礎教學NUTC, imac
 
百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010Chuanying Du
 
淘宝数据魔方的系统架构 -长林
淘宝数据魔方的系统架构 -长林淘宝数据魔方的系统架构 -长林
淘宝数据魔方的系统架构 -长林Shaoning Pan
 
Flash基于对象的优化技术 黄炎中
Flash基于对象的优化技术 黄炎中Flash基于对象的优化技术 黄炎中
Flash基于对象的优化技术 黄炎中FLASH开发者交流会
 
PostGIS 初入門應用
PostGIS 初入門應用PostGIS 初入門應用
PostGIS 初入門應用Chengtao Lin
 
淘宝分布式数据处理实践
淘宝分布式数据处理实践淘宝分布式数据处理实践
淘宝分布式数据处理实践isnull
 
mysql总结
mysql总结mysql总结
mysql总结haiwang
 
Hadoop 設定與配置
Hadoop 設定與配置Hadoop 設定與配置
Hadoop 設定與配置鳥 藍
 
Hadoop 簡介 教師 許智威
Hadoop 簡介 教師 許智威Hadoop 簡介 教師 許智威
Hadoop 簡介 教師 許智威Awei Hsu
 
Tokyo Cabinet Key Value数据库及其扩展应用
Tokyo Cabinet  Key Value数据库及其扩展应用Tokyo Cabinet  Key Value数据库及其扩展应用
Tokyo Cabinet Key Value数据库及其扩展应用rewinx
 
Hadoop Map Reduce 程式設計
Hadoop Map Reduce 程式設計Hadoop Map Reduce 程式設計
Hadoop Map Reduce 程式設計Wei-Yu Chen
 
Hadoop 0.20 程式設計
Hadoop 0.20 程式設計Hadoop 0.20 程式設計
Hadoop 0.20 程式設計Wei-Yu Chen
 
iOS程序设计-数据持久化
iOS程序设计-数据持久化iOS程序设计-数据持久化
iOS程序设计-数据持久化qiyutan
 
Hadoop-分布式数据平台
Hadoop-分布式数据平台Hadoop-分布式数据平台
Hadoop-分布式数据平台Jacky Chi
 
Pytables
PytablesPytables
Pytablesgowell
 
深入学习Mongo db
深入学习Mongo db深入学习Mongo db
深入学习Mongo dbLucien Li
 
大資料趨勢介紹與相關使用技術
大資料趨勢介紹與相關使用技術大資料趨勢介紹與相關使用技術
大資料趨勢介紹與相關使用技術Wei-Yu Chen
 
14 hibernate hql查询1
14 hibernate hql查询114 hibernate hql查询1
14 hibernate hql查询1Zelin Wang
 

La actualidad más candente (20)

Spark 巨量資料處理基礎教學
Spark 巨量資料處理基礎教學Spark 巨量資料處理基礎教學
Spark 巨量資料處理基礎教學
 
百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010百度系统部分布式系统介绍 马如悦 Sacc2010
百度系统部分布式系统介绍 马如悦 Sacc2010
 
淘宝数据魔方的系统架构 -长林
淘宝数据魔方的系统架构 -长林淘宝数据魔方的系统架构 -长林
淘宝数据魔方的系统架构 -长林
 
Flash基于对象的优化技术 黄炎中
Flash基于对象的优化技术 黄炎中Flash基于对象的优化技术 黄炎中
Flash基于对象的优化技术 黄炎中
 
PostGIS 初入門應用
PostGIS 初入門應用PostGIS 初入門應用
PostGIS 初入門應用
 
淘宝分布式数据处理实践
淘宝分布式数据处理实践淘宝分布式数据处理实践
淘宝分布式数据处理实践
 
Optimzing mysql
Optimzing mysqlOptimzing mysql
Optimzing mysql
 
mysql总结
mysql总结mysql总结
mysql总结
 
Hadoop 設定與配置
Hadoop 設定與配置Hadoop 設定與配置
Hadoop 設定與配置
 
Hadoop 簡介 教師 許智威
Hadoop 簡介 教師 許智威Hadoop 簡介 教師 許智威
Hadoop 簡介 教師 許智威
 
Tokyo Cabinet Key Value数据库及其扩展应用
Tokyo Cabinet  Key Value数据库及其扩展应用Tokyo Cabinet  Key Value数据库及其扩展应用
Tokyo Cabinet Key Value数据库及其扩展应用
 
Hadoop Map Reduce 程式設計
Hadoop Map Reduce 程式設計Hadoop Map Reduce 程式設計
Hadoop Map Reduce 程式設計
 
Hadoop 0.20 程式設計
Hadoop 0.20 程式設計Hadoop 0.20 程式設計
Hadoop 0.20 程式設計
 
iOS程序设计-数据持久化
iOS程序设计-数据持久化iOS程序设计-数据持久化
iOS程序设计-数据持久化
 
Hadoop-分布式数据平台
Hadoop-分布式数据平台Hadoop-分布式数据平台
Hadoop-分布式数据平台
 
Pytables
PytablesPytables
Pytables
 
深入学习Mongo db
深入学习Mongo db深入学习Mongo db
深入学习Mongo db
 
大資料趨勢介紹與相關使用技術
大資料趨勢介紹與相關使用技術大資料趨勢介紹與相關使用技術
大資料趨勢介紹與相關使用技術
 
C++基础
C++基础C++基础
C++基础
 
14 hibernate hql查询1
14 hibernate hql查询114 hibernate hql查询1
14 hibernate hql查询1
 

Similar a Hadoop基础及hive入门

Anthill: A Distributed DBMS Based On MapReduce
Anthill: A Distributed DBMS Based On MapReduceAnthill: A Distributed DBMS Based On MapReduce
Anthill: A Distributed DBMS Based On MapReduceMin Zhou
 
Zh tw introduction_to_map_reduce
Zh tw introduction_to_map_reduceZh tw introduction_to_map_reduce
Zh tw introduction_to_map_reduceTrendProgContest13
 
MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程Lixun Peng
 
Baidu LSP and DISQL for Log Analysis
Baidu LSP and DISQL for Log AnalysisBaidu LSP and DISQL for Log Analysis
Baidu LSP and DISQL for Log AnalysisXiaoming Chen
 
Node.js开发体验
Node.js开发体验Node.js开发体验
Node.js开发体验QLeelulu
 
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页liu sheng
 
Log collection
Log collectionLog collection
Log collectionFEG
 
Spark调研串讲
Spark调研串讲Spark调研串讲
Spark调研串讲jie cao
 
分布式计算与Hadoop - 刘鹏
分布式计算与Hadoop - 刘鹏分布式计算与Hadoop - 刘鹏
分布式计算与Hadoop - 刘鹏Shaoning Pan
 
DISQL 2.0: Language for Big Data Analysis Widely Adopted in Baidu
DISQL 2.0: Language for Big Data Analysis Widely Adopted in BaiduDISQL 2.0: Language for Big Data Analysis Widely Adopted in Baidu
DISQL 2.0: Language for Big Data Analysis Widely Adopted in BaiduXiaoming Chen
 
CKAN : 資料開放平台技術介紹 (CAKN : Technical Introduction to Open Data Portal)
CKAN : 資料開放平台技術介紹 (CAKN : Technical Introduction to Open Data Portal)CKAN : 資料開放平台技術介紹 (CAKN : Technical Introduction to Open Data Portal)
CKAN : 資料開放平台技術介紹 (CAKN : Technical Introduction to Open Data Portal)Jian-Kai Wang
 
大规模数据处理
大规模数据处理大规模数据处理
大规模数据处理Kay Yan
 
大规模数据处理
大规模数据处理大规模数据处理
大规模数据处理airsex
 
打開窗,讓大象跨進來 - Microsoft HDInsight
打開窗,讓大象跨進來 - Microsoft HDInsight打開窗,讓大象跨進來 - Microsoft HDInsight
打開窗,讓大象跨進來 - Microsoft HDInsightKuo-Chun Su
 
Mongo db技术交流
Mongo db技术交流Mongo db技术交流
Mongo db技术交流liuts
 
Postgre sql intro 0
Postgre sql intro 0Postgre sql intro 0
Postgre sql intro 0March Liu
 
Row Set初步学习V1.1
Row Set初步学习V1.1Row Set初步学习V1.1
Row Set初步学习V1.1Zianed Hou
 
Mongo db技术分享
Mongo db技术分享Mongo db技术分享
Mongo db技术分享晓锋 陈
 

Similar a Hadoop基础及hive入门 (20)

Anthill: A Distributed DBMS Based On MapReduce
Anthill: A Distributed DBMS Based On MapReduceAnthill: A Distributed DBMS Based On MapReduce
Anthill: A Distributed DBMS Based On MapReduce
 
Zh tw introduction_to_map_reduce
Zh tw introduction_to_map_reduceZh tw introduction_to_map_reduce
Zh tw introduction_to_map_reduce
 
MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程
 
Baidu LSP and DISQL for Log Analysis
Baidu LSP and DISQL for Log AnalysisBaidu LSP and DISQL for Log Analysis
Baidu LSP and DISQL for Log Analysis
 
Node.js开发体验
Node.js开发体验Node.js开发体验
Node.js开发体验
 
Hadoop 介紹 20141024
Hadoop 介紹 20141024Hadoop 介紹 20141024
Hadoop 介紹 20141024
 
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
20130626联动优势数据访问层DAL架构和实践5(刘胜)数据分片和分页
 
Log collection
Log collectionLog collection
Log collection
 
Spark调研串讲
Spark调研串讲Spark调研串讲
Spark调研串讲
 
分布式计算与Hadoop - 刘鹏
分布式计算与Hadoop - 刘鹏分布式计算与Hadoop - 刘鹏
分布式计算与Hadoop - 刘鹏
 
DISQL 2.0: Language for Big Data Analysis Widely Adopted in Baidu
DISQL 2.0: Language for Big Data Analysis Widely Adopted in BaiduDISQL 2.0: Language for Big Data Analysis Widely Adopted in Baidu
DISQL 2.0: Language for Big Data Analysis Widely Adopted in Baidu
 
CKAN : 資料開放平台技術介紹 (CAKN : Technical Introduction to Open Data Portal)
CKAN : 資料開放平台技術介紹 (CAKN : Technical Introduction to Open Data Portal)CKAN : 資料開放平台技術介紹 (CAKN : Technical Introduction to Open Data Portal)
CKAN : 資料開放平台技術介紹 (CAKN : Technical Introduction to Open Data Portal)
 
Glider
GliderGlider
Glider
 
大规模数据处理
大规模数据处理大规模数据处理
大规模数据处理
 
大规模数据处理
大规模数据处理大规模数据处理
大规模数据处理
 
打開窗,讓大象跨進來 - Microsoft HDInsight
打開窗,讓大象跨進來 - Microsoft HDInsight打開窗,讓大象跨進來 - Microsoft HDInsight
打開窗,讓大象跨進來 - Microsoft HDInsight
 
Mongo db技术交流
Mongo db技术交流Mongo db技术交流
Mongo db技术交流
 
Postgre sql intro 0
Postgre sql intro 0Postgre sql intro 0
Postgre sql intro 0
 
Row Set初步学习V1.1
Row Set初步学习V1.1Row Set初步学习V1.1
Row Set初步学习V1.1
 
Mongo db技术分享
Mongo db技术分享Mongo db技术分享
Mongo db技术分享
 

Hadoop基础及hive入门

  • 2. 目录  Hadoop  前言介绍  例子  MR 框架  Hive  工作案例  前言介绍  基本模型  数据类型  语句  改进  特性
  • 3. Hadoop  前言介绍  例子  MR 框架  工作案例
  • 4. hadoop  分布式海量数据处理工具  成本低 服务器的成本低了,但不能忽略其他资源成本  可扩展性 加服务器
  • 5. 为什么使用 hadoop  秦始皇统一中国的外交政策“远交近攻 , 各 个击破”  分而治之—分治算法
  • 6. hadoop 计算模型  MapReduce 基于“分而治之”的思想,将计 算任务抽象成 map 和 reduce 两个计算过程
  • 7. hadoop 例子 -splitDate  将数据日志按日期切割存储
  • 8. hadoop 例子 -splitDate  Map 端操作 public void map(LongWritable key, Text value,) { String str_key = new String(value.getBytes(), 0, value.getLength(), "UTF8").split(“t”)[t_when_index].split(“ “)[0]; out_key.set(str_key); out_value.set(t_value); output.collect(out_key, out_value); }  Reduce 端操作 public void reduce(Text key, Iterator<Text> values, OutputCollector<Text, Text> output, Reporter reporter) { out = mos.getCollector(name, tmp + name, reporter); while(values.hasNext()){ out.collect(NullWritable.get(), values.next()); } }
  • 9. MR 框架  MAP 类  Reduce 类  Run 参数
  • 10. Map 类 public class MapReduce extends Configured implements tool { public static class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, Text> { // 初始化 public void configure(JobConf job) // 自定义函数 public void udf() public void map(LongWritable key, Text value, OutputCollector<Text, Text> output, Reporter reporter) // 结束操作 public void close() }
  • 11. Reduce 类 public class Reduce extends MapReduceBase implements Reducer <Text, Text, Text, Text> { // 初始化 public void configure(JobConf job) // 自定义函数 public void udf() public void reduce(Text key, Iterator<Text> values, OutputCollector<Text, Text> output, Reporter reporter) // 结束操作 public void close() }
  • 12. Run 参数 public int run(String[] args) throws Exception { /* 指定输入 / 输出文件路径; 文件对应的 map 函数、 reduce 函数;输入 / 输出格式 */ } /*tool 接口和 GenericOptionsParser 处理命令行选项 public static void main(String[] args) { int res = ToolRunner.run(new Configuration(), new DtwTokenJoin(), args); System.exit(res); } }
  • 13. 工作案例 - 文件切割  需求情景 程序后台将所有数据 log 打包成一个日志文件, 数据处理时需要切分不同的数据 log ,然后进行 对应的处理和计算
  • 14. 工作案例 - 文件切割 • 解决方法 import org.apache.hadoop.mapred.lib.MultipleOutputs
  • 15. 工作案例 - 文件编码  需求情景 程序数据 log 为 gbk 编码, hadoop 默认文本 utf-8 编码,如何兼容
  • 16. 工作案例 - 文件编码 • 解决方法 1 、文件 put 进 hadoop 之前做编码转换 iconv –f gbk –t utf-8 inputFile 2 、自定义 outputFormat 类
  • 17. 工作案例 - 数据解析  字段分隔符 csv 文件, t 分隔符文件,空格分隔符文 件 map.output.field.separator reduce.output.field.separator
  • 18. 工作案例 - 数据解析  二进制文件 二进制编码转成文本编码 hex 进制 base64 uuencode
  • 19. 工作案例 - 数据解析  自定义 InputSplit 和 RecordReader  数据格式是演变的 归根到底,无论数据格式如何,需要能够解析对 应记录和字段
  • 20. 工作案例 - 配置文件  需求情景 需要引入经常修改变化的策划配置表单
  • 21. 工作案例 - 配置文件 • 解决方法 import org.apache.hadoop.filecache.DistributedCache //job 配置参数 public int run(String[] args) throws Exception { DistributedCache.addCacheFile(new Path(args[+ +i]).toUri(), conf); } // 读取配置文件 config_files = DistributedCache.getLocalCacheFiles(job); BufferedReader fis = new BufferedReader(new FileReader(config_file.toString()));
  • 23. hive  前言介绍  基本模型  数据类型  语句  改进  特性
  • 25. 为什么使用 hive  提高效率。 一行 hive 语句实现的功能,可能需要几十行 hadoop 语句实现  方便分析人员
  • 26. hive 基本模型  物理数据模型 wh: /wh Table: /wh/pvs Partition: /wh/pvs/ds=20090801/ctry=CA Buckets:/wh/pvs/ds=20090801/ctry=US/part-00000  逻辑数据模型 External Table  版本迭代 0.5 0.7 0.8
  • 27. Hive 基本数据类型  Intergers  Boolean  Floating  String
  • 28. Hive 复杂数据类型  Structs  Array  Maps  Timestamp support in version 0.8  Binary support in version 0.8
  • 30. Hive 语句  QUERIES SELECT …. FROM …..WHERE…… GROUP BY….ORDER BY….LIMIT JOIN  DDL database 、 table(location 、 Partitions) funciton 、 index 、 view  DML Loading files into tables Inserting data into Hive Tables from queries Writing data into filesystem from queries
  • 31. Hive 改进  Not support Multi-distinct bash: cat t_mall_buy.txt | awk ‘{print uid}’ | sort | uniq | wc –l cat t_mall_buy.txt | awk ‘{print urs}’ | sort | uniq | wc –l mysql : SELECT count(distinct uid), count(distint urs) FROM t_mall_buy hive: SELECT count(distinct uid) FROM t_mall_buy SELECT count(distinct urs) FROM t_mall_buy 补丁支持 https://issues.apache.org/jira/browse/HIVE-287 https://issues.apache.org/jira/browse/HIVE-474
  • 32. Hive 改进  不支持 exists in 子查询 support NOT IN and NOT LIKE syntax in version 0.8  Not support Index Not available until 0.7 release  Not support Insert into INSERT INTO syntax is only available starting in version 0.8
  • 33. Hive 特性  Multi Table/File Inserts FROM pv_users INSERT OVERWRITE TABLE pv_gender_sum SELECT pv_users.gender, INSERT OVERWRITE DIRECTORY '/user/data/tmp/pv_age_sum' SELECT pv_users.age  Custom map/reduce scripts transform(hostnum, res_type, event_type, direct, counts) using 'python ods_wh_economic_money_week.py‘ as (hostnum,res_type,output_type,output_name,counts,isoutput)  UDFS & UDAFS 尽量使用 UDF 而不是 transform