Hive 不同文件读取对比

原创 2015年11月20日 22:15:47

1.hive的读取方式

2.各个方式的例子的对比

读取方式:

1. stored as textfile

1.1 直接查看hdfs

1.2 hadoop fs -text

2.stored as sequencefile

2.1 hadoop fs -text

3.stored as rcfile

3.1 hive -service rcfilecat path

4.stored as inpuformat 'class'

outformat 'class'

实际例子“:

1.hive> create table store1(username string,age int) stored as textfile;

查看建表详细信息(看黑体部分):

hive> desc formatted store1;

OK
# col_name              data_type               comment             
                 
username                string                                      
age                     int                                         
                 
# Detailed Table Information             
Database:               default                  
Owner:                  root                     
CreateTime:             Fri Nov 20 06:37:32 PST 2015     
LastAccessTime:         UNKNOWN                  
Protect Mode:           None                     
Retention:              0                        
Location:               hdfs://cluster/user/hive/warehouse/store1        
Table Type:             MANAGED_TABLE            
Table Parameters:                
        transient_lastDdlTime   1448030252          
                 
# Storage Information            
SerDe Library:          org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe       
InputFormat:            org.apache.hadoop.mapred.TextInputFormat         
OutputFormat:           org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat       

Compressed:             No                       
Num Buckets:            -1                       
Bucket Columns:         []                       
Sort Columns:           []                       
Storage Desc Params:             
        serialization.format    1                   
Time taken: 0.99 seconds, Fetched: 27 row(s)

2.hive> create table store2(username string,age int) stored as sequencefile;

查看建表详细信息(看黑体部分):

hive> desc formatted store2;

OK
# col_name              data_type               comment             
                 
username                string                                      
age                     int                                         
                 
# Detailed Table Information             
Database:               default                  
Owner:                  root                     
CreateTime:             Fri Nov 20 06:41:24 PST 2015     
LastAccessTime:         UNKNOWN                  
Protect Mode:           None                     
Retention:              0                        
Location:               hdfs://cluster/user/hive/warehouse/store2        
Table Type:             MANAGED_TABLE            
Table Parameters:                
        transient_lastDdlTime   1448030484          
                 
# Storage Information            
SerDe Library:          org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe       
InputFormat:            org.apache.hadoop.mapred.SequenceFileInputFormat         
OutputFormat:           org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat        

Compressed:             No                       
Num Buckets:            -1                       
Bucket Columns:         []                       
Sort Columns:           []                       
Storage Desc Params:             
        serialization.format    1                   
Time taken: 0.196 seconds, Fetched: 27 row(s)

3.hive> create table store3(username string,age int) stored as rcfile;

查看建表详细信息(看黑体部分):

hive> desc formatted store3;

OK
# col_name              data_type               comment             
                 
username                string                                      
age                     int                                         
                 
# Detailed Table Information             
Database:               default                  
Owner:                  root                     
CreateTime:             Fri Nov 20 06:44:24 PST 2015     
LastAccessTime:         UNKNOWN                  
Protect Mode:           None                     
Retention:              0                        
Location:               hdfs://cluster/user/hive/warehouse/store3        
Table Type:             MANAGED_TABLE            
Table Parameters:                
        transient_lastDdlTime   1448030664          
                 
# Storage Information            
SerDe Library:          org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe   
InputFormat:            org.apache.hadoop.hive.ql.io.RCFileInputFormat   
OutputFormat:           org.apache.hadoop.hive.ql.io.RCFileOutputFormat  

Compressed:             No                       
Num Buckets:            -1                       
Bucket Columns:         []                       
Sort Columns:           []                       
Storage Desc Params:             
        serialization.format    1                   
Time taken: 0.194 seconds, Fetched: 27 row(s)

4.创建输入输出类(里面没有实现什么只是与上面做个比较)

HInputFormat:

public class HInputFormat<K, V> extends SequenceFileInputFormat<K, V> {
@Override
public RecordReader<K, V> getRecordReader(InputSplit split, JobConf job,
Reporter reporter) throws IOException {
reporter.setStatus(split.toString());
return new HRecordReader<K,V>(job,(FileSplit)split);
}
@Override
protected FileStatus[] listStatus(JobConf job) throws IOException {
return super.listStatus(job);
}
}

HRecordReader:

public class HRecordReader<K, V> extends SequenceFileRecordReader<K, V> {
public HRecordReader(Configuration conf, FileSplit split)
throws IOException {
super(conf, split);
}
}

加入格式:

drop table if exists store4;

create table if not exists store4(

username string ,

age int )

row format delimited fields terminated by '\t' stored as inputformat  'com.test.out.HInputFormat'

outpurformat 'org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat';

把写的程序打成jar放到,Linux环境下

hive> add jar /root/Downloads/HiveOUTInput.jar;

hive> create table if not exists store4(
    > username string ,
    > age int )
    > row format delimited fields terminated by '\t' stored as inputformat  'com.test.out.HInputFormat'
    > outputformat 'org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat';

查看详细信息(注意黑体字):

hive> desc formatted store4;

OK
# col_name              data_type               comment             
                 
username                string                                      
age                     int                                         
                 
# Detailed Table Information             
Database:               default                  
Owner:                  root                     
CreateTime:             Fri Nov 20 07:29:11 PST 2015     
LastAccessTime:         UNKNOWN                  
Protect Mode:           None                     
Retention:              0                        
Location:               hdfs://cluster/user/hive/warehouse/store4        
Table Type:             MANAGED_TABLE            
Table Parameters:                
        transient_lastDdlTime   1448033351          
                 
# Storage Information            
SerDe Library:          org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe       
InputFormat:            com.test.out.HInputFormat        
OutputFormat:           org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat        

Compressed:             No                       
Num Buckets:            -1                       
Bucket Columns:         []                       
Sort Columns:           []                       
Storage Desc Params:             
        field.delim             \t                  
        serialization.format    \t  

总结他们之间的不同就是输入输出流的不同


hive加载大文件(3G)

1:上传文件到hadoop
  • wind520
  • wind520
  • 2014年09月11日 18:47
  • 1320

hive使用orcfile parquet sequencefile

1、orcfile的使用 创建orcfile表,不压缩   create  table d_op_behavior_host_orc_none( thedate                 st...

hive使用小结

hive各版本主要特征 Hive 各版本关键新特性(Key New Feature)介绍 官网下载页面的介绍 hive基础 命令行接口 hive提供的用户接口包括:CLI、Client、Web...

Hive文件格式

Hive有四种文件格式:TextFile,SequenceFile,RCFile,ORC TextFile 默认的格式,文本格式。 SequenceFile 简介 见:http://blog.cs...

Hive基本使用

4、查看表文件 HDFS载入的时候,实际做的是文件移动 hive (dcenter)> dfs -ls /hive/warehouse/dcenter.db/t; Found 1 items -rw-...
  • lihm0_1
  • lihm0_1
  • 2013年12月26日 11:54
  • 2408

06-Hive表属性操作

大家好!砸门又又又又见面了。我再自我介绍一下哈,我长得比较帅,帅到哭的那种。 呵呵,开玩笑。这世界上,唯独美人和大数据不可辜负。好好学大数据技术,技多不压身。越学人就越帅,你说是吧?言归正传,今天要...

java Timer 定时任务(二)

上篇文章介绍了模仿程序时出现的问题 下面是shell启动执行调度的一个简单流程图:...

【redis】使用redis RedisAtomicLong生成自增的ID值

本文介绍在spring+redis组合时,使用redis的RedisAtomicLong生成自增的ID值。 1、自增ID生成类 RedisSequenceFactory是一个简单封装类,用于使用r...
  • yxtouch
  • yxtouch
  • 2017年06月20日 19:40
  • 2780

Hive不同文件的读取与序列化

Hive不同文件的读取对比stored as textfile直接查看hdfs hadoop fs -texthive> create table test_txt(name string,val ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hive 不同文件读取对比
举报原因:
原因补充:

(最多只允许输入30个字)