更新時間:2020年07月30日15時24分 來源:傳智播客 瀏覽次數:
Map輸出壓縮
除了創(chuàng)建表時指定保存數據時壓縮,在查詢分析過程中,Map的輸出也可以進行壓縮。由于map任務的輸出需要寫到磁盤并通過網絡傳輸到reducer節(jié)點,所以通過使用LZO、LZ4或者Snappy這樣的快速壓縮方式,是可以獲得性能提升的,因為需要傳輸的數據減少了。
·MapReduce配置項:
mapreduce.map.output.compress
·設置是否啟動map輸出的壓縮機制,默認為false。在需要減少網絡傳輸的時候,可以設置為true。
mapreduce.map.output.compress.codec
設置map輸出壓縮機制,默認為org.apache.hadoop.io.compress.DefaultCodec,推薦使用SnappyCodec:org.apache.hadoop.io.compress.SnappyCodec。
Reduce結果壓縮
是否對任務輸出產生的結果進行壓縮,默認值false。對傳輸數據進行壓縮,既可以減少文件的存儲空間,又可以加快數據在網絡不同節(jié)點之間的傳輸速度。
配置項:mapreduce.output.fileoutputformat.compress
Hive執(zhí)行過程通用壓縮設置
主要包括壓縮/解碼器設置和壓縮方式設置:
·mapreduce.output.fileoutputformat.compress.codec(Yarn)
map輸出所用的壓縮codec,默認為org.apache.hadoop.io.compress.DefaultCodec,推薦使用SnappyCodec:org.apache.hadoop.io.compress.SnappyCodec。
·mapreduce.output.fileoutputformat.compress.type
輸出產生任務數據的壓縮方式,默認值RECORD,可配置值有:NONE、RECORD、BLOCK。推薦使用BLOCK,即針對一組記錄進行批量壓縮,壓縮效率更高。
Hive的Map-Reduce之間是否進行壓縮
控制 Hive 在多個 map-reduce 作業(yè)之間生成的中間 files 是否被壓縮。壓縮編解碼器和其他選項由上面Job的變量mapreduce.output.fileoutputformat.compress.*確定。
set hive.exec.compress.intermediate=true;
Hive查詢最終結果壓縮
控制是否壓縮查詢的最終輸出(到 local/hdfs 文件或 Hive table)。壓縮編解碼器和其他選項由 上面Job中的變量mapreduce.output.fileoutputformat.compress.*確定。
set hive.exec.compress.output=true;
猜你喜歡:
大數據培訓課程