CDH-LZO配置
下載和CDH版本對應的hadoop-lzo版本
如下:
下載地址:http://archive.cloudera.com/gplextras5/parcels/
需要下載如下三個文件:
GPLEXTRAS-5.4.0-1.cdh5.4.0.p0.27-el6.parcel
GPLEXTRAS-5.4.0-1.cdh5.4.0.p0.27-el6.parcel.sha1(使用的時候重命名成.sha)
manifest.json
配置包到cloudera-manager共享目錄
因為使用的是parcels安裝,首先將下載好的文件放到cloudera-manager共享的目錄中,此處為:
進入到cloudera-manager的控制頁面,主機àparcelà位置,在CNNIC(CM集群的名字)選項中目錄改為/opt/cloudera-manager/cloudera/parcel-repo。
安裝激活lzo服務
Cloudera-manager控制頁面,主機àparcelà檢查新Parcel,如果配置正確,則出現如下界面:
點擊分配,進行到如下界面:
之后進入激活狀態中:
步驟完成后,狀態一列會出現“已分配。已激活”。
至此,lzo服務安裝工作已經完成。
修改配置集群的lzo服務
修改HDFS配置
在io.compression.codecs屬性值中追加如下值:
com.hadoop.compression.lzo.LzoCodec
com.hadoop.compression.lzo.LzopCodec
如下圖所示:
修改YARN配置
將mapreduce.application.classpath的屬性值增加一項:/opt /cloudera/parcels/HADOOP_LZO/lib/hadoop/lib/*
如下圖所示:
修改MR應用程序環境
修改mapreduce.admin.user.env的屬性值,增加一項:
/opt/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib/native,如下圖所示:
重啟集群生效。
Lzo使用步驟:
將文件以lzop命令進行本地壓縮;
將壓縮好的.lzo文件上傳put到Hadoop集群;
Hive建表指向剛上傳的文件;
create external table testlzo(
id int comment ‘id’,
name string comment ‘name’
)
row format delimited fields terminated by '\001'
stored as inputformat 'com.hadoop.mapred.deprecatedlzotextinputformat'
outputformat 'org.apache.hadoop.hive.ql.io.hiveignorekeytextoutputformat'
location '……';
使得查詢結果以壓縮的格式輸出:在hive腳本執行之前進行環境的設置
其中set hive.exec.compress.output=true;
set mapred.output.compression.codec=com.hadoop.compression.lzo.lzopcodec;
Congratulations!!!