1. 程式人生 > >Hive 4種檔案格式

Hive 4種檔案格式

hive檔案儲存格式包括以下幾類:

1、TEXTFILE

2、SEQUENCEFILE

3、RCFILE

4、ORCFILE(0.11以後出現)

其中TEXTFILE為預設格式,建表時不指定預設為這個格式,匯入資料時會直接把資料檔案拷貝到hdfs上不進行處理;

SEQUENCEFILE,RCFILE,ORCFILE格式的表不能直接從本地檔案匯入資料,資料要先匯入到textfile格式的表中, 然後再從表中用insert匯入SequenceFile,RCFile,ORCFile表中。

前提建立環境:

hive 0.8

建立一張testfile_table表,格式為textfile。

create table if not exists testfile_table( site string, url  string, pv   bigint, label string) row format delimited fields terminated by '\t' stored as textfile;

load data local inpath '/app/weibo.txt' overwrite into table textfile_table;

一、TEXTFILE
預設格式,資料不做壓縮,磁碟開銷大,資料解析開銷大。
可結合Gzip、Bzip2使用(系統自動檢查,執行查詢時自動解壓),但使用這種方式,hive不會對資料進行切分,
從而無法對資料進行並行操作。
示例:

複製程式碼
create table if not exists textfile_table(
site string,
url  string,
pv   bigint,
label string)
row format delimited
fields terminated by
'\t' stored as textfile; 插入資料操作: set hive.exec.compress.output=true; set mapred.output.compress=true; set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec; set io.compression.codecs=org.apache.hadoop.io.compress.GzipCodec; insert overwrite table textfile_table select *
from textfile_table;
複製程式碼

二、SEQUENCEFILE
SequenceFile是Hadoop API提供的一種二進位制檔案支援,其具有使用方便、可分割、可壓縮的特點。
SequenceFile支援三種壓縮選擇:NONE,RECORD,BLOCK。Record壓縮率低,一般建議使用BLOCK壓縮。
示例:

複製程式碼
create table if not exists seqfile_table(
site string,
url  string,
pv   bigint,
label string)
row format delimited
fields terminated by '\t'
stored as sequencefile;
插入資料操作:
set hive.exec.compress.output=true;  
set mapred.output.compress=true;  
set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;  
set io.compression.codecs=org.apache.hadoop.io.compress.GzipCodec;  
SET mapred.output.compression.type=BLOCK;
insert overwrite table seqfile_table select * from textfile_table;  
複製程式碼

三、RCFILE
RCFILE是一種行列儲存相結合的儲存方式。首先,其將資料按行分塊,保證同一個record在一個塊上,避免讀一個記錄需要讀取多個block。其次,塊資料列式儲存,有利於資料壓縮和快速的列存取。
RCFILE檔案示例:

複製程式碼
create table if not exists rcfile_table(
site string,
url  string,
pv   bigint,
label string)
row format delimited
fields terminated by '\t'
stored as rcfile;
插入資料操作:
set hive.exec.compress.output=true;  
set mapred.output.compress=true;  
set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;  
set io.compression.codecs=org.apache.hadoop.io.compress.GzipCodec;  
insert overwrite table rcfile_table select * from textfile_table;
複製程式碼

四、ORCFILE()
五、再看TEXTFILE、SEQUENCEFILE、RCFILE三種檔案的儲存情況:

複製程式碼
[[email protected] ~]$ hadoop dfs -dus /user/hive/warehouse/*
hdfs://node1:19000/user/hive/warehouse/hbase_table_1    0
hdfs://node1:19000/user/hive/warehouse/hbase_table_2    0
hdfs://node1:19000/user/hive/warehouse/orcfile_table    0
hdfs://node1:19000/user/hive/warehouse/rcfile_table    102638073
hdfs://node1:19000/user/hive/warehouse/seqfile_table   112497695
hdfs://node1:19000/user/hive/warehouse/testfile_table  536799616
hdfs://node1:19000/user/hive/warehouse/textfile_table  107308067
[[email protected] ~]$ hadoop dfs -ls /user/hive/warehouse/*/
-rw-r--r--   2 hadoop supergroup   51328177 2014-03-20 00:42 /user/hive/warehouse/rcfile_table/000000_0
-rw-r--r--   2 hadoop supergroup   51309896 2014-03-20 00:43 /user/hive/warehouse/rcfile_table/000001_0
-rw-r--r--   2 hadoop supergroup   56263711 2014-03-20 01:20 /user/hive/warehouse/seqfile_table/000000_0
-rw-r--r--   2 hadoop supergroup   56233984 2014-03-20 01:21 /user/hive/warehouse/seqfile_table/000001_0
-rw-r--r--   2 hadoop supergroup  536799616 2014-03-19 23:15 /user/hive/warehouse/testfile_table/weibo.txt
-rw-r--r--   2 hadoop supergroup   53659758 2014-03-19 23:24 /user/hive/warehouse/textfile_table/000000_0.gz
-rw-r--r--   2 hadoop supergroup   53648309 2014-03-19 23:26 /user/hive/warehouse/textfile_table/000001_1.gz
複製程式碼

總結:
相比TEXTFILE和SEQUENCEFILE,RCFILE由於列式儲存方式,資料載入時效能消耗較大,但是具有較好的壓縮比和查詢響應。資料倉庫的特點是一次寫入、多次讀取,因此,整體來看,RCFILE相比其餘兩種格式具有較明顯的優勢。

相關推薦

Hive 4檔案格式

hive檔案儲存格式包括以下幾類: 1、TEXTFILE 2、SEQUENCEFILE 3、RCFILE 4、ORCFILE(0.11以後出現) 其中TEXTFILE為預設格式,建表時不指定預設為這個格式,匯入資料時會直接把資料檔案拷貝到hdfs上不進行處理; SEQUENCEFILE,RCFILE,ORC

自己動手編寫一個Linux偵錯程式系列之4 ELF檔案格式與DWARF除錯格式

目錄 在上一節中,你已經聽說了DWARF除錯格式,它是程式的除錯資訊,是一種可以更好理解原始碼的方式,而不只是解析程式。今天我們將討論原始碼級除錯資訊的細節,以準備在本教程後面的部分中使用它。 系列索引 準備工作 斷點的設定 暫存器和記憶體 ELF檔案格式

a.ou、coff、elf三檔案格式

補充:a.out早期並不是elf格式的,而是unix下另一種可執行格式,新的a.out是 本文討論了 UNIX/LINUX 平臺下三種主要的可執行檔案格式:a.out(assembler and link editor output 彙編器和連結編輯器的輸出)、CO

hadoop 1.0.4 fsimage 檔案格式分析

2013-01-08 周海漢 2013.1.8 http://abloz.com/2013/01/08/hadoop-1-0-4-fsimage-file-format.html fsimage檔案存放在NameNode中,

@ResponseBody返回4資料格式的資料

1、返回一個鍵值對或者集合 前端JS請求: //返回值為map的形式 $(".name").blur(function(){ $.ajax({ type:"Post",//請求型別 url:"/mvc-demo/user/nameProving?

Hive之——Hive支援的檔案格式與壓縮演算法(1.2.1)

概述只要是配置了正確的檔案型別和壓縮型別(比如Textfile+Gzip、SequenceFile+Snappy等),Hive都可以按預期讀取並解析資料,提供SQL功能。SequenceFile本身的結構已經設計了內容進行壓縮。所以對於SequenceFile檔案的壓縮,並不

Hive的常用三檔案儲存格式詳解

Hive的三種檔案格式:TEXTFILE、SEQUENCEFILE、RCFILE中,TEXTFILE和SEQUENCEFILE的儲存格式都是基於行儲存的,RCFILE是基於行列混合的思想,先按行把資料劃分成N個row group,在row group中對每個列分別進行儲存。另:Hive能支援自定義格式,詳情見

hive:資料型別及檔案格式

Hive的資料型別     Hive 提供了基本資料型別和複雜資料型別 1.1 原始資料型別 整型 TINYINT — 微整型,只佔用1個位元組,只能儲存0-255的整數。 SMALLINT– 小整型,佔用2個位元組,儲存範圍–327

R語言入門到放棄 R語言讀取不同檔案型別中資料的4方法

R語言入門到放棄 R語言讀取檔案中資料的4中方法 方法一:直接讀取 > getwd() # 獲取當前的工作路徑 將要讀取的檔案剪下到當前的工作路徑,下面讀取檔案 x<-read.table("text.txt") Warning message

python 4讀寫檔案方法

#encoding:utf-8 """ @project_name = pytest @file = demo_readAndWrite_File.py @author = angel @create_

Spring學習(二):Spring xml檔案格式、載入上下文六方式及作用域

Bean的XML檔案 <?xml version="1.0" encoding="UTF-8"?> <beans <!--標準名稱空間 --> xmlns="http://www.springframework.org/

javaweb讀取配置檔案4方法

方式一:採用ServletContext讀取 獲取配置檔案的realpath,然後通過檔案流讀取出來或者通過方法getReasurceAsStream()。 因為是用ServletContext讀取檔案路徑,所以配置檔案可以放入在WEB-INF的classes目錄中,也可以在應用層級及WEB-INF的目錄

4格式拼接(+,%s,{變數},{0})

2019-01-01 一、+的拼接(佔用很多記憶體空間,儘量少用) name = input("name:")age = input("age:")job = input("job:")salary = input("salary:")info ='''--- info of ''' + name + '

【Python】python檔案或文字加密(4方法)

Date: 2018.6.17 端午 1、參考 2、python下編譯py成pyc和pyo (檔案加密) 將python檔案.py編譯成pyc二進位制檔案: python -m py_file.py 或者通過指令碼執行: imp

RandomAccessFile(隨即讀取)操作檔案4模式:"r"、"rw"、"rws" 或 "rwd"

'r' 以只讀方式開啟。呼叫結果物件的任何 write 方法都將導致丟擲 IOException。 "rw" 開啟以便讀取和寫入。如果該檔案尚不存在,則嘗試建立該檔案。 "rws" 開啟以便讀取和寫入

java 4方式讀取配置檔案 + 修改配置檔案

方式一:採用ServletContext讀取,讀取配置檔案的realpath,然後通過檔案流讀取出來。 因為是用ServletContext讀取檔案路徑,所以配置檔案可以放入在web-info的classes目錄中,也可以在應用層級及web-info的目錄中。檔案存放位置具

4解決json日期格式問題的辦法

開發中有時候需要從伺服器端返回json格式的資料,在後臺程式碼中如果有DateTime型別的資料使用系統自帶的工具類序列化後將得到一個很長的數字表示日期資料,如下所示: //設定伺服器響應的結果為純文字格式 context.Response.Content

Hive程式設計(十一)【其他檔案格式和壓縮方法】

11.1 確定安裝編解碼器 # hive -e "set io.compression.codecs" io.compression.codecs=org.apache.hadoop.io.compress.GzipCodec, org.apache.ha

PE檔案格式詳解(4)

1.RVA to RAW     PE檔案載入到記憶體時,每個節區都要準確完成記憶體地址與檔案偏移的對映。這種對映便稱為RVA to RAW,實現這個過程需要經過以下的步驟。     1.查詢RVA所

Hive(一)資料型別、檔案格式和資料定義

1、基本資料型別 Hive支援多種不同長度的整型和浮點型資料型別,支援布林型別,也支援無長度限制的字串型別,後續的Hive增加了時間戳資料型別和二進位制陣列資料型別。 和其他的SQL語言一樣,這些都是保留字。需要注意的是所有的這些資料型別都是對Jav