Hive文件格式


Hive有四種文件格式:TextFile,SequenceFile,RCFile,ORC


TextFile

默認的格式,文本格式。

SequenceFile

簡介

見:http://blog.csdn.net/zengmingen/article/details/52242768

操作

hive (zmgdb)>create table t2(str string) stored assequencefile;
OK
Time taken: 0.299 seconds
hive (zmgdb)> desc formatted t2;
OK
..............................
# 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

sequenceFile的表導入數據不能用load,
[root@hello110 data]# vi test_data
3
we
ew
e
re
er51
2

hive (zmgdb)> load data local inpath '/data/test_data' into table t1;
Loading data to table zmgdb.t1
OK
Time taken: 1.498 seconds
hive (zmgdb)>load data local inpath '/data/test_data' into table t2;
FAILED: SemanticException Unable to load data to destination table. Error: The file that you are trying to loaddoes not match the file format of the destination table.
要用 INSERT OVERWRITE TABLE test2 SELECT * FROM test1;開啟mapreduce保存
hive (zmgdb)>insert overwrite table t2 select * from t1;
WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
Query ID = hadoop_20160914215205_992081a3-1783-4052-8da8-53e6097a2775
Total jobs = 3
Launching Job 1 out of 3
Number of reduce tasks is set to 0 since there's no reduce operator
Starting Job = job_1473855624724_0001, Tracking URL = http://hello110:8088/proxy/application_1473855624724_0001/
Kill Command = /home/hadoop/app/hadoop-2.7.2/bin/hadoop job -kill job_1473855624724_0001
Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 0
2016-09-14 21:52:22,073 Stage-1 map = 0%, reduce = 0%
2016-09-14 21:52:43,733 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 2.9 sec
MapReduce Total cumulative CPU time: 2 seconds 900 msec
Ended Job = job_1473855624724_0001
Stage-4 is selected by condition resolver.
Stage-3 is filtered out by condition resolver.
Stage-5 is filtered out by condition resolver.
Moving data to directory hdfs://hello110:9000/user/hive/warehouse/zmgdb.db/t2/.hive-staging_hive_2016-09-14_21-52-05_274_2207100662758769951-1/-ext-10000
Loading data to table zmgdb.t2
MapReduce Jobs Launched:
Stage-Stage-1: Map: 1 Cumulative CPU: 2.9 sec HDFS Read: 3844 HDFS Write: 1534 SUCCESS
Total MapReduce CPU Time Spent: 2 seconds 900 msec
OK
t1.str
Time taken: 43.709 seconds
hive (zmgdb)> select * from t2;
OK
t2.str
1
2
2
43
4
dds
ads
fdsdsf
fds
ad
查看hdfs里sequencefile的原文件

sequencefile的底層保存的是二進制格式,0101010101的。


RCFile

一種行列存儲相結合的存儲方式。首先,其將數據按行分塊,保證同一個record在一個塊上,避免讀一個記錄需要讀取多個block。其次,塊數據列式存儲,有利于數據壓縮和快速的列存取。


hive (zmgdb)> create table rc_t1(id string) stored as rcfile;
OK
Time taken: 0.334 seconds

hive (zmgdb)> desc formatted rc_t1;
OK
col_name ? ? ? ?data_type ? ? ? comment
# col_name ? ? ? ? ? ? ?data_type ? ? ? ? ? ? ? comment ? ? ? ? ? ??
? ? ? ? ? ? ? ? ?
id ? ? ? ? ? ? ? ? ? ? ?string ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ?
# Detailed Table Information ? ? ? ? ? ??
Database: ? ? ? ? ? ? ? zmgdb ? ? ? ? ? ? ? ? ? ?
Owner: ? ? ? ? ? ? ? ? ?hadoop ? ? ? ? ? ? ? ? ??
CreateTime: ? ? ? ? ? ? Fri Sep 23 19:21:15 CST 2016 ? ??
LastAccessTime: ? ? ? ? UNKNOWN ? ? ? ? ? ? ? ? ?
Retention: ? ? ? ? ? ? ?0 ? ? ? ? ? ? ? ? ? ? ? ?
Location: ? ? ? ? ? ? ? hdfs://hello110:9000/user/hive/warehouse/zmgdb.db/rc_t1 ?
Table Type: ? ? ? ? ? ? MANAGED_TABLE ? ? ? ? ? ?
Table Parameters: ? ? ? ? ? ? ? ?
? ? ? ? COLUMN_STATS_ACCURATE ? {\"BASIC_STATS\":\"true\"}
? ? ? ? numFiles ? ? ? ? ? ? ? ?0 ? ? ? ? ? ? ? ? ??
? ? ? ? numRows ? ? ? ? ? ? ? ? 0 ? ? ? ? ? ? ? ? ??
? ? ? ? rawDataSize ? ? ? ? ? ? 0 ? ? ? ? ? ? ? ? ??
? ? ? ? totalSize ? ? ? ? ? ? ? 0 ? ? ? ? ? ? ? ? ??
? ? ? ? transient_lastDdlTime ? 1474629675 ? ? ? ? ?
? ? ? ? ? ? ? ? ?
# 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.135 seconds, Fetched: 30 row(s)
hive (zmgdb)> insert overwrite table rc_t1 select * from t2;
WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
Query ID = hadoop_20160923192210_96320492-f8bf-483a-83c4-b9874fd05ef4
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there's no reduce operator
Starting Job = job_1474629517907_0001, Tracking URL = http://hello110:8088/proxy/application_1474629517907_0001/
Kill Command = /home/hadoop/app/hadoop-2.7.2/bin/hadoop job ?-kill job_1474629517907_0001
Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 0
2016-09-23 19:22:22,091 Stage-1 map = 0%, ?reduce = 0%
2016-09-23 19:22:28,446 Stage-1 map = 100%, ?reduce = 0%, Cumulative CPU 1.83 sec
MapReduce Total cumulative CPU time: 1 seconds 830 msec
Ended Job = job_1474629517907_0001
Stage-4 is selected by condition resolver.
Stage-3 is filtered out by condition resolver.
Stage-5 is filtered out by condition resolver.
Moving data to directory hdfs://hello110:9000/user/hive/warehouse/zmgdb.db/rc_t1/.hive-staging_hive_2016-09-23_19-22-10_649_8279187505632970863-1/-ext-10000
Loading data to table zmgdb.rc_t1
MapReduce Jobs Launched:?
Stage-Stage-1: Map: 1 ? Cumulative CPU: 1.83 sec ? HDFS Read: 4755 HDFS Write: 876 SUCCESS
Total MapReduce CPU Time Spent: 1 seconds 830 msec
OK
t2.id
Time taken: 19.126 seconds


hive (zmgdb)> select * from rc_t1;
OK
rc_t1.id
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17




ORC

是RCfile的優化。自帶了壓縮和索引


存儲總結

textfile 存儲空間消耗比較大,并且壓縮的text 無法分割和合并 查詢的效率最低,可以直接存儲,加載數據的速度最高

sequencefile 存儲空間消耗大,壓縮的文件可以分割和合并 查詢效率高,需要通過text文件轉化來加載

rcfile 存儲空間最小,查詢的效率最高 ,需要通過text文件轉化來加載,加載的速度最低





本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539153.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539153.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539153.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

learnpythonthehardway下載_Python【十一】:階段小結

今天來將前一段時間學習的Python的知識系統地梳理一遍,接下來開始實際的編程實踐了。 一、Python實驗環境搭建 使用Python編程,首先要有一個開發環境,如同C/C上又VS2008家族一樣,Linux/MacOS上的部署情況這里不再詳述,…

python使用ssh 中文_Python3制作簡易SSH登錄工具

下載W3Cschool手機App,0基礎隨時隨地學編程>>戳此了解導語做這個的起因大概是:電腦里的Xshell不知道為啥突然顯示“評估期已過”之類的提示。。。記得之前認證學校郵箱后是可以免費使用的。。。蒼天繞過誰。。。想起上次認證學校郵箱過了N個小時才…

hive java導入CVS

原文:http://bbs.chinahadoop.cn/thread-5343-1-1.html ---------------------------------------------------------------------------------- 本文的目的是hive讀取cvs文件,忽略字段中‘\,’,最終還是以,來分割文本 cvs格式是以逗號,隔開…

Django 博客教程(三):創建應用和編寫數據庫模型

創建 django 博客應用 在上一章節中我們創建了 django 博客的工程,并且成功地運行了它。然而這一切都是 django 為我們創建的項目初始內容,django 不可能為我們初始化生成我們需要的博客代碼,這些功能性代碼都得由我們自己編寫。 django 鼓勵…

python將16進制字符串轉換為整數_Python 16進制與字符串的轉換

電腦上裝了Python2.7和3.3兩個版本,平時運行程序包括在Eclipse里面調試都會使用2.7,但是由于某些原因在cmd命令行中輸入python得到的解釋器則是3.3, 一直沒對此做處理,因為這樣可以對兩個版本的差異有一個測試,而且虛擬機里面是2.…

python多個文件打包成exe_多個py文件生成一個可運行exe文件

一、概述 目前有一個python腳本,需要在別的電腦中運行,安裝python環境太麻煩,封裝成exe文件,運行比較方便。 二、演示 環境說明 python版本:3.7.9 操作系統:windows 10 安裝模塊 pip3 installer pyinstaller 封裝 新建目錄test,目錄結構如下: ./├── conf.py └── …

CSV文件的轉義處理

原文:http://blog.csdn.net/maqingli20/article/details/7095132 ------------------------------------------------------------------------------------ CSV文件是一種適合程序格式化輸出數據的文件格式。它使用英文逗號作為列分隔符,文件可以直接用…

華為讀取版本exe_關于esrv_svc.exe和SurSvc.exe疑似泄露用戶信息的猜測

封面圖片來源:https://www.weibo.com/1885454921/GpBhR3vpk?typerepost#_rnd1573301201348抱歉,寫網頁文章的次數不多,排版沒研究過,請原諒。下面是正題:由來:最初是借由火絨的自定義防護規則,…

gitlab ci mysql_php-Gitlab CI:在階段之間保留MySQL數據

根據Gitlab問題頁面:Share service between build stages.Gitlab-CI的設置方式如下:each job is run in each job is run independently of the others,including potentially running on different machines. And the servicesare run locally on each …

flask 部署_只需10分鐘!就能用Flask,Docker和Jenkins部署機器學習模型

摘要: 一杯茶的功夫部署完成機器學習模型!在生產環境中部署機器學習模型是數據工程中經常被忽視的領域。網上的大多數教程/博客都側重于構建、訓練和調整機器學習模型。如果它不能用于實際的預測,那么它又有什么用呢? 接下來了解一…

Hive 導入CSV文件

SerDe 介紹 Hive 使用如下FileFormat 類讀寫 HDFS files: TextInputFormat/HiveIgnoreKeyTextOutputFormat: 讀寫普通HDFS文本文件. SequenceFileInputFormat/SequenceFileOutputFormat: 讀寫SequenceFile格式的HDFS文件. Hive 使用如下SerDe 類(反)序列化數據: MetadataTyp…

騰訊云mysql架構_一個數據庫存儲架構的獨白

本文由云社區發表本文作者:許中清,騰訊云自研數據庫CynosDB的分布式存儲CynosStore負責人。從事數據庫內核開發、數據庫產品架構和規劃。曾就職于華為,2015年加入騰訊,參與過TBase(PGXZ)、CynosDB等數據庫產品研發。專注于關系數據…

Hive高級函數

Hive的函數太多了。用法和sql的差不多。 簡單查詢 select ... from...where... 使用各種函數 hive>show functions;//查看所有函數 hive>describe function explode;//查看函數的使用方法 LIMIT語句 列別名 嵌套select語句 標準函數: reverse() upper() ...…

groupby索引有效嗎_SQL IN 一定走索引嗎?

摘要IN 一定走索引嗎?那當然了,不走索引還能全部掃描嗎?好像之前有看到過什么Exist,IN走不走索引的討論。但是好像看的太久了,又忘記了。哈哈,如果你也忘記了MySQL中IN是如何查詢的,就來復習下吧。問題問題…

mysql函數使用場景_mysql的函數和存儲過程的比較,以及在實際場景中的使用案例...

一.存儲過程和函數的區別函數調用有返回值存儲過程調用用call語句,函數調用直接飲用函數名參數IN,OUT,INOUT只適用于存儲過程,對函數而言所有參數默認都是輸入參數IN用于把數值傳入到存儲過程中OUT用于輸出參數將數值傳遞給調用者…

hive性能調優

原文:http://www.tuicool.com/articles/rMvQvm ---------------------------------------------------------------------- limit 限制調整 -- 因為使用 limit 語句時候,是先執行整個查詢語句,然后再返回部分結果的 set hive.limit.optimize…

推薦系統之 BPR 算法及 Librec的BPR算法實現【1】

【推薦系統之 BPR 算法】 1、關于BPR的論文原文: BPR: Bayesian Personalized Ranking from Implicit Feedback 2、參考1:論文快讀 - BPR: Bayesian Personalized Ranking from Implicit Feedback (該博主的網站不錯,尤其論文快…

ios 篩選_萬千網友讓quot;低調使用quot;的軟件!居然還支持iOS

點擊藍字關注我們昨天的耳朵神器大家感覺怎么樣?享受了耳朵今天我們享受一下眼睛~可能很多同學對漫畫是情有獨鐘但是,之前小黑一直介紹的都是安卓端的軟件今天要給大家介紹的這款軟件是IOS安卓都有終于可以不被IOS的同學吐槽了而且經過測試小黑真的想說一…

Linux卸載/刪除多余網卡

卸載 使用命令ifconfig命令查看網卡情況 確認自己使用的是哪一塊網卡,然后把其它的網卡都卸載掉。 運行命令ifconfig 網卡名稱 down。 如: ifconfig eth1 down 再次運行ifconfig就會發現被卸載掉的網卡沒了。現在可以ping 一下內網的IP試試看能不能pin…

CentOS7:JDK1.7.0_80安裝

一、安裝前檢查 執行以下命令: rpm -qa | grep jdk 查看系統是否已經自帶openjdk,如果存在 執行以下命令: yum -y remove files files為查出的、系統自帶的openjdk相關文件,運行以上命令將相關文件卸載 執行命令 java -version[rootlocalhost…