HIve 配置LZO壓縮

1.下載lzo源碼包珊搀,然后進(jìn)行編譯扒磁,下載lzo的源碼包地址
https://github.com/twitter/hadoop-lzo/tree/release-0.4.20
打包編譯

mvn clean package

獲取編譯之后的jar包
1.將jar 包上傳到/share/hadoop/common
scp hadoop-lzo-0.4.20.jar node02:PWD scp hadoop-lzo-0.4.20.jar node03:PWD
2.修改core-site.xml 配置文件壓縮方式

<property>
        <name>io.compression.codecs</name>
        <value>
                org.apache.hadoop.io.compress.GzipCodec,
                org.apache.hadoop.io.compress.DefaultCodec,
                org.apache.hadoop.io.compress.BZip2Codec,
                org.apache.hadoop.io.compress.SnappyCodec,
                com.hadoop.compression.lzo.LzoCodec,
                com.hadoop.compression.lzo.LzopCodec
        </value>
</property>

<property>
    <name>io.compression.codec.lzo.class</name>
    <value>com.hadoop.compression.lzo.LzoCodec</value>
</property>

scp core-site.xml node02:PWD scp core-site.xml node03:PWD
重啟hadoop集群
配置hive 支持lzo壓縮
將支持hadoop-lzo-0.4.20.jar這個(gè)jar包拷貝到hive的/lib包下面即可。
使用lzo壓縮方式支持?jǐn)?shù)據(jù)txt文本文件數(shù)據(jù)進(jìn)行壓縮遏乔,節(jié)約磁盤空間寿弱。

#創(chuàng)建分區(qū)表并顯示支持壓縮格式
CREATE TABLE ods_user_login(
plat_id            string     comment '平臺(tái)id',
server_id          int        comment '區(qū)服id',
channel_id         string     comment '渠道',
user_id            string     comment '用戶ID',
role_id            string     comment '角色I(xiàn)D',
role_name          string     comment '角色名稱',
client_ip          string     comment '客戶端IP',
event_time         int        comment '事件時(shí)間',
op_type            string     comment '操作類型(1:登錄,-1登出)',
online_time        int        comment '在線時(shí)長(s)',
operating_system   string     comment '操作系統(tǒng)名稱',
operating_version  string     comment '操作系統(tǒng)版本',
device_brand       string     comment '設(shè)備型號(hào)',
device_type        string     comment '設(shè)備品牌'
)
comment '游戲登錄登出'
PARTITIONED BY(part_date date)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORED AS INPUTFORMAT 
      'com.hadoop.mapred.DeprecatedLzoTextInputFormat' 
    OUTPUTFORMAT 
      'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat';

創(chuàng)建臨時(shí)表,用于load data local inpath 臨時(shí)表中

CREATE TABLE tmp_ods_user_login(
plat_id            string     comment '平臺(tái)id',
server_id          int        comment '區(qū)服id',
channel_id         string     comment '渠道',
user_id            string     comment '用戶ID',
role_id            string     comment '角色I(xiàn)D',
role_name          string     comment '角色名稱',
client_ip          string     comment '客戶端IP',
event_time         int        comment '事件時(shí)間',
op_type            string     comment '操作類型(1:登錄,-1登出)',
online_time        int        comment '在線時(shí)長(s)',
operating_system   string     comment '操作系統(tǒng)名稱',
operating_version  string     comment '操作系統(tǒng)版本',
device_brand       string     comment '設(shè)備型號(hào)',
device_type        string     comment '設(shè)備品牌'
)
comment '游戲登錄登出-臨時(shí)表按灶,用于將數(shù)據(jù)通過動(dòng)態(tài)分區(qū)載入ods_user_login中'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;

3.將temp臨時(shí)表數(shù)據(jù)insert into 正式表中,之前set 屬性讓支持?jǐn)?shù)據(jù)壓縮筐咧。

將數(shù)據(jù)通過動(dòng)態(tài)分區(qū)載入ods_user_login中
set hive.exec.dynamic.partition=true; 【開啟動(dòng)態(tài)分區(qū)】
set hive.exec.dynamic.partition.mode=nostrict; 【動(dòng)態(tài)分區(qū)模式為非嚴(yán)格模式】
set hive.exec.max.dynamic.partitions.pernode=1000; 【最大動(dòng)態(tài)分區(qū)數(shù)量設(shè)置為1000】

# 設(shè)置輸出數(shù)據(jù)格式壓縮成為LZO

set hive.exec.compress.output=true;
set mapreduce.output.fileoutputformat.compress=true;
set mapred.output.compression.codec=com.hadoop.compression.lzo.LzopCodec;

#插入數(shù)據(jù)到目標(biāo)表里面去
insert overwrite table ods_user_login partition(part_date)
select plat_id,server_id,channel_id,user_id,role_id,role_name,client_ip,event_time,op_type,online_time,operating_system,operating_version,device_brand,device_type,from_unixtime(event_time,'yyyy-MM-dd') as part_date from tmp_ods_user_login;

#給lzo文件建立索引:便于以后多個(gè)mapTask來對(duì)文件進(jìn)行處理
hadoop jar /kkb/install/hadoop-2.6.0-cdh5.14.2/share/hadoop/common/hadoop-lzo-0.4.20.jar  com.hadoop.compression.lzo.DistributedLzoIndexer /user/hive/warehouse/game_center.db/ods_user_login/

4.問題:注意鸯旁,給lzo的文件建立了index索引之后,查詢tmp_ods_user_login與ods_user_login表會(huì)發(fā)現(xiàn)量蕊,這兩個(gè)表當(dāng)中的數(shù)據(jù)總量count(1)不一樣铺罢,因?yàn)閷ndex索引文件也計(jì)算到總文件數(shù)當(dāng)中去了,解決方法
1:刪除index文件即可
2:設(shè)置屬性
set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat;
select count(1) from ods_user_login 表中只計(jì)算了沒有l(wèi)zo索引的數(shù)據(jù)残炮,只包含真實(shí)數(shù)據(jù)記錄數(shù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末韭赘,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子势就,更是在濱河造成了極大的恐慌泉瞻,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件苞冯,死亡現(xiàn)場離奇詭異袖牙,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)舅锄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門鞭达,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人皇忿,你說我怎么就攤上這事畴蹭。” “怎么了鳍烁?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵叨襟,是天一觀的道長。 經(jīng)常有香客問我老翘,道長芹啥,這世上最難降的妖魔是什么锻离? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮墓怀,結(jié)果婚禮上汽纠,老公的妹妹穿的比我還像新娘。我一直安慰自己傀履,他們只是感情好虱朵,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著钓账,像睡著了一般碴犬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上梆暮,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天服协,我揣著相機(jī)與錄音,去河邊找鬼啦粹。 笑死偿荷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的唠椭。 我是一名探鬼主播跳纳,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼贪嫂!你這毒婦竟也來了寺庄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤力崇,失蹤者是張志新(化名)和其女友劉穎斗塘,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體餐曹,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡逛拱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了台猴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片朽合。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖饱狂,靈堂內(nèi)的尸體忽然破棺而出曹步,到底是詐尸還是另有隱情,我是刑警寧澤休讳,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布讲婚,位于F島的核電站,受9級(jí)特大地震影響俊柔,放射性物質(zhì)發(fā)生泄漏筹麸。R本人自食惡果不足惜活合,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望物赶。 院中可真熱鬧白指,春花似錦、人聲如沸酵紫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奖地。三九已至橄唬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間参歹,已是汗流浹背仰楚。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留犬庇,地道東北人缸血。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像械筛,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子飒炎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 目錄 一埋哟、概述 二、關(guān)鍵詞郎汪,非保留關(guān)鍵字和保留關(guān)鍵字 三赤赊、創(chuàng)建/刪除/修改/使用數(shù)據(jù)庫3.1、 創(chuàng)建數(shù)據(jù)庫3.2煞赢、...
    三分清醒閱讀 1,354評(píng)論 0 1
  • 一. Hive架構(gòu)說明 Hive是什么 Hive是一款基于Hadoop的數(shù)據(jù)倉庫軟件抛计,用于處理Hadoops上的結(jié)...
    伊落閱讀 682評(píng)論 0 3
  • 1 Hadoop源碼編譯支持Snappy壓縮 1.1 jar包準(zhǔn)備(hadoop源碼、JDK8 照筑、maven吹截、pr...
    Rex_2013閱讀 164評(píng)論 0 0
  • 1.1 Hadoop源碼編譯支持Snappy壓縮 1.1.1 資源準(zhǔn)備 1.CentOS聯(lián)網(wǎng) 配置CentOS能連...
    Movle閱讀 473評(píng)論 0 4
  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友凝危。感恩相遇波俄!感恩不離不棄。 中午開了第一次的黨會(huì)蛾默,身份的轉(zhuǎn)變要...
    迷月閃星情閱讀 10,564評(píng)論 0 11