荣新IT培训中心
天下征询热线:400-1335-066
js910.com
您如今的位置:首页>媒体报道 > 注释

Hive支撑的文件格式取紧缩算法

工夫:2017-10-09 15:18:53 泉源:荣新IT教诲培训 作者:荣新科技
远几年列入大数据培训的人愈来愈多,荣新教诲小编带您进修大数据,天天学一点,一年成为大数据妙手。
 
大数据培训
 

只如果设置了准确的文件类型和紧缩范例(好比Textfile+Gzip、SequenceFile+Snappy等),Hive皆能够按预期读取并剖析数据,供应SQL功用。

SequenceFile自己的构造曾经设想了内容停止紧缩。以是关于SequenceFile文件的紧缩,其实不是先天生SequenceFile文件,再对文件停止紧缩。而是天生SequenceFile文件时,对其中的内容字段停止紧缩。终究紧缩后,对外仍表现为一个SequenceFile。

RCFile、ORCFile、Parquet、Avro关于紧缩的处置惩罚体式格局取SequenceFile雷同。

文件格式

  1. Textfile
  2. SequenceFile
  3. RCFile
  4. ORCFile
  5. Parquet
  6. Avro

 

TEXTFILE


  1. --建立一个表,花样为文本文件: 
  2. CREATE EXTERNAL TABLE student_text (id STRING, name STRING) 
  3. ROW FORMAT DELIMITED  
  4.     FIELDS TERMINATED BY ','  
  5.     LINES TERMINATED BY '\n' 
  6. STORED AS TEXTFILE; 
  7. --导入数据到此表中,将启动MR义务 
  8. INSERT OVERWRITE TABLE student_text SELECT * FROM student; 

可检察到天生的数据文件的花样为非紧缩的文本文件:


  1. hdfs dfs -cat /user/hive/warehouse/student_text/000000_0 
  2.  
  3. 1001810081,cheyo 
  4. 1001810082,pku 
  5. 1001810083,rocky 
  6. 1001810084,stephen 
  7. 2002820081,sql 
  8. 2002820082,hello 
  9. 2002820083,hijj 
  10. 3001810081,hhhhhhh 
  11. 3001810082,abbbbbb 

文本文件,DEFLATE紧缩


  1. --建立一个表,花样为文件文件: 
  2. CREATE TABLE student_text_def (id STRING, name STRING) 
  3. ROW FORMAT DELIMITED 
  4.     FIELDS TERMINATED BY ',' 
  5.     LINES TERMINATED BY '\n' 
  6. STORED AS TEXTFILE; 
  7. --设置紧缩范例为Gzip紧缩 
  8. SET hive.exec.compress.output=true
  9. SET mapred.output.compress=true
  10. SET mapred.output.compression.codec=org.apache.hadoop.io.compress.DefaultCodec;  
  11. --导入数据: 
  12. INSERT OVERWRITE TABLE student_text_def SELECT * FROM student; 
  13. --检察数据 
  14. SELECT * FROM student_text_def; 

检察数据文件,可看到数据文件为多个.deflate文件。


  1. hdfs dfs -ls /user/hive/warehouse/student_text_def/ 
  2. -rw-r--r--   2015-09-16 12:48 /user/hive/warehouse/student_text_def/000000_0.deflate 
  3. -rw-r--r--   2015-09-16 12:48 /user/hive/warehouse/student_text_def/000001_0.deflate 
  4. -rw-r--r--   2015-09-16 12:48 /user/hive/warehouse/student_text_def/000002_0.deflate 

大数据培训愈来愈水,大数据家当兴旺生长。文本文件,Gzip紧缩


  1. --建立一个表,花样为文件文件: 
  2. CREATE TABLE student_text_gzip (id STRING, name STRING) 
  3. ROW FORMAT DELIMITED 
  4.     FIELDS TERMINATED BY ',' 
  5.     LINES TERMINATED BY '\n' 
  6. STORED AS TEXTFILE; 
  7. --设置紧缩范例为Gzip紧缩 
  8. SET hive.exec.compress.output=true
  9. SET mapred.output.compress=true
  10. SET mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec; 
  11. --导入数据: 
  12. INSERT OVERWRITE TABLE student_text_gzip SELECT * FROM student; 
  13. --检察数据 
  14. SELECT * FROM student_text_gzip; 

检察数据文件,可看到数据文件为多个.gz文件。解开.gz文件,能够看到明文文本:


  1. hdfs dfs -ls /user/hive/warehouse/student_text_gzip/ 
  2. -rw-r--r--  2015-09-15 10:03 /user/hive/warehouse/student_text_gzip/000000_0.gz 
  3. -rw-r--r--  2015-09-15 10:03 /user/hive/warehouse/student_text_gzip/000001_0.gz 
  4. -rw-r--r--  2015-09-15 10:03 /user/hive/warehouse/student_text_gzip/000002_0.gz 

文本文件,Bzip2紧缩


  1. --建立一个表,花样为文件文件: 
  2. CREATE TABLE student_text_bzip2 (id STRING, name STRING) 
  3. ROW FORMAT DELIMITED 
  4.     FIELDS TERMINATED BY ',' 
  5.     LINES TERMINATED BY '\n' 
  6. STORED AS TEXTFILE; 
  7. --设置紧缩范例为Bzip2紧缩: 
  8. SET hive.exec.compress.output=true
  9. SET mapred.output.compress=true
  10. SET mapred.output.compression.codec=org.apache.hadoop.io.compress.BZip2Codec; 
  11. --导入数据 
  12. 相干文章