Hadoop使用lzo壓縮輸出
參考了網上不少資料,發現綜合考慮壓縮、解壓速度、是否支援split,目前lzo是最好的選擇。lzo最初在google code上託管,但後來轉移到github了,所以以github為準。地址為:
https://github.com/kevinweil/hadoop-lzo
步驟如下:
1. 安裝lzo
我的是centos,所以yum search lzo後,安裝對應版本的devel包。
2. 到github下載hadoop-lzo的tar包安裝
https://github.com/kevinweil/hadoop-lzo/downloads
準備條件:編譯hadoop-lzo得有gcc、ant
解壓後,到hadoop-lzo目錄下,執行:
ant compile-native tar
原無意外的話,就會生成hadoop-lzo-0.4.15.jar
3. 把hadoop-lzo-0.4.15.jar拷貝到hadoop的lib目錄下,此外把
hadoop-lzo/build/native/Linux-amd64-64/lib下的.a、.la、so等檔案拷貝到hadoop的lib/native/Linux-amd64-64下,之後重啟hadoop
那麼就可以在程式中,把輸出結果通過lzo壓縮:
SequenceFileOutputFormat.setOutputCompressionType(job, CompressionType.BLOCK);
SequenceFileOutputFormat.setCompressOutput(job, true);
SequenceFileOutputFormat.setOutputCompressorClass(job, LzoCodec.class);
hadoop讀取這些檔案時,會自動解壓。
hadoop上比較好的壓縮庫,都是native方式,配置起來挺麻煩的。
配置過程中,就老提示:Could not load native gpl library
檔案該複製都複製了,最終的解決辦法是在eclipse中,右擊專案--build path,選擇libraries--點選hadoop-lzo-0.4.15.jar,展開後,雙擊其下的:Native library location,選擇編譯好的hadoop-lzo的native檔案所在路徑,我填的是:
hadoop-lzo/build/native/Linux-amd64-64/lib
發現壓縮後的檔案大概為原來的50%。
最後,附上官方的hadoop—lzo配置說明:
https://github.com/kevinweil/hadoop-lzo/blob/master/README.md
http://code.google.com/a/apache-extras.org/p/hadoop-gpl-compression/wiki/FAQ?redir=1
--------------------------------------------------------------------
補充:在red hat 4下,yum install的是1.0版本的lzo,要升級成ver 2的才行。下載rpm包安裝:
wget ftp://ftp.univie.ac.at/systems/linux/dag/redhat/el4/en/x86_64/dag/RPMS/lzo-2.04-1.el4.rf.x86_64.rpm
wget ftp://ftp.univie.ac.at/systems/linux/dag/redhat/el4/en/x86_64/dag/RPMS/lzo-devel-2.04-1.el4.rf.x86_64.rpm
rpm -ivh lzo-2.04-1.el4.rf.x86_64.rpm
rpm -ivh lzo-devel-2.04-1.el4.rf.x86_64.rpm
詳情請參考這位xd的文章:
http://blog.csdn.net/kalaamong/article/details/7275185
相關推薦
PHP使用zlib擴充套件實現頁面GZIP壓縮輸出
GZIP(GNU-ZIP)是一種壓縮技術。經過GZIP壓縮後頁面大小可以變為原來的30%甚至更小。這樣使用者瀏覽的時候就會感覺很爽很愉快! 要實現GZIP壓縮頁面需要瀏覽器和伺服器共同支援,實際上就是伺服器壓縮,傳到瀏覽器後瀏覽器解壓並解析。瀏覽器那邊不需要我們擔心,因為現在絕大多數瀏覽器都支援解析
php json資料使用gzip壓縮輸出
1.使用壓縮與不使用壓縮的HTTP輸出比較 2.開啟gzip 利用apache mod_deflate module 開啟gzip 開啟方法: sudo a2enmod
ecshop二次開發中如何壓縮輸出HTML
給HTML頁面的減肥,加快頁面的載入速度。增加了閱讀HTML原始碼的難度,使想要仿模板的菜鳥們知難而退。原理就是刪除無用的空格、換行符、回車符,對於JAVASCRIPT不會壓縮。開啟/includes/cls_template.php檔案,找到display函式。在echo $out;之前新增一行: ech
Hadoop使用lzo壓縮輸出
Hadoop處理大量的資料,如果期間的輸出資料、中間資料能壓縮儲存,對系統的I/O效能會有提升。參考了網上不少資料,發現綜合考慮壓縮、解壓速度、是否支援split,目前lzo是最好的選擇。lzo最初在google code上託管,但後來轉移到github了,所以以github
過濾器(Filter)應用:全站壓縮----Gzip網頁壓縮輸出
Filter應用-7 實現壓縮的輸出流。 •現在的網路,流量就是錢。所以,如果能在很少的流量的情況下,檢視相同的資料內容,那何樂而不為呢? •實現方案: •使用者在呼叫response.getOutputStream()時讓獲取自己的輸出流對像, 我們將資訊寫到事先準
MVC全域性過濾器-流壓縮輸出
using System.IO.Compression; using System.Web.Mvc; namespace LK.Web.Helpers { public class GZipC
Photoshop腳本 > 壓縮並輸出GIF圖片
photoshop腳本 ps腳本 源自:http://coolketang.com/tutorials/menu2lesson8.php本節將演示如何使用腳本,將當前文檔轉換為GIF格式。首先創建一個空白的腳本文檔,並保存在硬盤上某個位置。首先創建一個空白的腳本文檔,並保存在硬盤上某個位置。接著輸入腳
Photoshop腳本 > 壓縮並輸出JPEG圖片
photoshop腳本 ps腳本 源自:http://coolketang.com/tutorials/menu2lesson9.php本節將演示如何使用腳本,將當前文檔轉換為JPEG格式。首先創建一個空白的腳本文檔,並保存在硬盤上某個位置。首先創建一個空白的腳本文檔,並保存在硬盤上某個位置。接著輸入
hadoop mapreduce開發實踐之輸出數據壓縮
實踐 shuff file apr 存儲 壓縮 ras 最終 item 1、hadoop 輸出數據壓縮 1.1、為什麽要壓縮? 輸出數據較大時,使用hadoop提供的壓縮機制對數據進行壓縮,可以指定壓縮的方式。減少網絡傳輸帶寬和存儲的消耗; 可以對map的輸出進行壓縮(m
案例1:寫一個壓縮字符串的方法,例如aaaabbcxxx,則輸出a4b2c1x3。
取字符串 ++ 單個字符 int return tst ast zip stat public static String zipString(String str){ String result = "";//用於拼接新串的變量 char last = str.c
asp.net輸出重寫壓縮頁面檔案例項程式碼
例子複製程式碼 程式碼如下:using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;usi
java web輸出壓縮檔案到網頁
後臺程式碼: public void process(HttpServletRequest req, HttpServletResponse res) {// excel所在目錄String path = req.getRealPath("") + File.separa
spark 輸出結果壓縮(gz)
如果不想往下看,可以直接看結果:maxCallRdd.repartition(3).saveAsTextFile(path,GzipCodec.class); 恩,沒錯。就只這麼一行簡單的程式碼實現了gz壓縮,但是為什麼網上一直沒找到呢,這個我不太清楚, 可能是他
log4j滾動輸出壓縮格式的檔案
因為需求需要,將原來預設切分生成的檔案輸出為壓縮包的格式,不要原始檔的格式,這樣能節省儲存空間。話不多說,下面為程式碼 (注:下面程式碼只是實現了在maxBackupIndex<0的情況下同時按照日期和檔案大小輸出壓縮包gz的格式,以後可以做成靈活擴充套件,比如在配
華為2018秋招筆試——將一段壓縮後的字串解壓縮,並且排序輸出
題目描述 將一段壓縮後的字串解壓縮,並且排序輸出 解壓規則: 每個字串後面跟隨一個數字,表示這個字串的重複次數。例如,“a5”解壓縮的結果為“aaaaa”;“abc3”解壓縮後的結果為“abcabcabc”。 排序規則: 1、根據每個字串的重複次數升序排序,然後輸出
Java ZIP壓縮輸入輸出流
ZIP是一種較為常見的壓縮形式,在Java中要想實現ZIP的壓縮需要匯入java.util.zip包,可以使用此包中的ZipFile、ZipOutputStream、ZipInputStream、ZipEntry幾個類完成。ZipOutputStream類的常用方法Z
華為面試題:請編寫一個字串壓縮程式,將字串中連續出席的重複字母進行壓縮,並輸出壓縮後的字串。
#include<iostream> #include<stdio.h> #include<cstring> using namespace std; //void stringZip(const char *pInputStr, long lInputLen, char
spark 載入多個目錄; RDD輸出到hdfs檔案壓縮
(1) spark textFile載入多個目錄: 其實很簡單,將多個目錄(對應多個字串),用,作為分隔符連線起來 val inputPath = List("hdfs://localhost:9000/test/hiveTest", "hdfs://local
Python 2 聲明變量 輸入輸出 練習
交互 技術 put cnblogs margin .com 最大 span 方便 變量: 代指,用於將具體信息對應到一個值,便於反復使用時方便調用。例如 name = ("斯諾登") 變量聲明規則:以字母開頭的 字母數字下劃線的組合。且不能是python代
webpack 打包壓縮 ES6文件報錯UglifyJs + Unexpected token punc «(», expected punc «:»
htm script 打包壓縮 scripts log res web save pla webpack打包壓縮 ES6 js react報錯: 升級到 babel6 了 ERROR in /Scripts/Test/test.bundle.js from UglifyJ