導航:首頁 > 文件處理 > hadoopgzip壓縮

hadoopgzip壓縮

發布時間:2022-11-15 06:46:14

① Hadoop集群上使用Lzo壓縮和Gzip壓縮,誰能給我寫一個簡單的MapRece來測試,對比兩者壓縮job時間

Hadoop的書我只看了一章。。

② hadoop sequencefile 怎麼使用

1.SequenceFile特點:是 Hadoop 的一個重要數據文件類型,它提供key-value的存儲,但與傳統key-value存儲(比如hash表,btree)不同的是,它是appendonly的,於是你不能對已存在的key進行寫操作。

2.SequenceFile 有三種壓縮態:
1 Uncompressed – 未進行壓縮的狀
2.record compressed - 對每一條記錄的value值進行了壓縮(文件頭中包含上使用哪種壓縮演算法的信息)
3. block compressed – 當數據量達到一定大小後,將停止寫入進行整體壓縮,整體壓縮的方法是把所有的keylength,key,vlength,value 分別合在一起進行整體壓縮
3.結構組成:
3.1 header數據:保存文件的壓縮態標識;
3.2 Metadata數據:簡單的屬性/值對,標識文件的一些其他信息。Metadata 在文件創建時就寫好了,所以也是不能更改
3.3 追加的鍵值對數據
3.4 流存儲結構:流的存儲頭位元組格式:
Header: *位元組頭」SEQ」, 後跟一個位元組表示版本」SEQ4」,」SEQ6」.//這里有點忘了 不記得是怎麼處理的了,回頭補上做詳細解釋
*keyClass name
*valueClass name
*compression boolean型的存儲標示壓縮值是否轉變為keys/values值了
*blockcompression boolean型的存儲標示是否全壓縮的方式轉變為keys/values值了
*compressor 壓縮處理的類型,比如我用Gzip壓縮的Hadoop提供的是GzipCodec什麼的..
*元數據 這個大家可看可不看的

4.擴展實現:
4.1 MapFile 一個key-value 對應的查找數據結構,由數據文件/data 和索引文件 /index 組成,數據文件中包含所有需要存儲的key-value對,按key的順序排列。索引文件包含一部分key值,用以指向數據文件的關鍵位置
4.2 SetFile – 基於 MapFile 實現的,他只有key,value為不可變的數據。
4.3 ArrayFile – 也是基於 MapFile 實現,他就像我們使用的數組一樣,key值為序列化的數字。
4.4 BloomMapFile – 他在 MapFile 的基礎上增加了一個 /bloom 文件,包含的是二進制的過濾表,在每一次寫操作完成時,會更新這個過濾表。

5.使用如下:主要是Writer和Reader對象完成文件的添加和讀功能,應用demo參照下面鏈接,其中Map端以SequenceFileInputFormat格式接收,Map的key-value應為SequenceFile保持一致。

③ Linux命令中,請問下tar -vxzf hadoop-2.7.0.tar.gz是什麼意思尤其是-vxzf

v
:
顯示動作,即解壓任何文件時均顯示其文件名及相對路徑
x
:
解壓縮
z
:
表名該壓縮文件是以gzip格式壓縮的
f
:
該參數後面跟著被解壓的文件名
註:在Linux中解壓tar.gz包可以不加z參數,tar命令會自動識別其支持的任何
壓縮格式
,即該命令也可寫成如下形式
tar
-vxf
hadoop-2.7.0.tar.gz

④ 如何檢測hadoop中gz壓縮文件是否損壞

執行hive任務的時候,進入到8088的map詳細進度列表,即是RUNNING MAP attempts in job_1456816082333_1354,查看最後出錯的map是哪個節點或者在頁面直接點擊logs進入詳細log日誌查看,或者進入到節點的Hadoop的logs/userlogs目錄
根據jobid找到對應的目錄: application_1456816082333_1354,裡面有錯誤的文件id,然後刪除掉hdfs的對應的損壞文件。

⑤ 我在解壓hadoop壓縮包的時候遇到這問題怎麼辦

I would go back and re-gzip the tar file though (to save space):
gzip xxxxxx.x.x.tar
tar -zxvf xxxxxx.x.x.tar.gz
想刨根問底的可以查下他的意思,在看下TAR 指令的用法,。
總之:我出現這個錯誤時,就是把指令改為:
tar -xvf xxxx.tar.gz
然後指令就運行了。。

⑥ 如何在Scala中讀取Hadoop集群上的gz壓縮文件

(1)一個從文件創建的Scala對象,或(2)一個並行切片(分布在各個節點之間),或(3)從其他RDD轉換得來,或(4)改變已有RDD的持久性,如請求將已有RDD緩存在內存中。Spark應用稱為driver,實現單個節點或一組節點上的操作。

⑦ 如何安裝hadoop本地壓縮庫

Hadoop安裝配置snappy壓縮

[一]、 實驗環境

CentOS 6.3 64位

Hadoop 2.6.0

JDK 1.7.0_75

[二]、 snappy編譯安裝

2.1、下載源碼

到官網 http://code.google.com/p/snappy/ 或者到 https://github.com/google/snappy
下載源碼,目前版本為 1.1.1。

2.2、編譯安裝

解壓 tar -zxvf snappy-1.1.1.tar.gz ,然後以 root 用戶 執行標準的三步進行編譯安裝:

/configure

make

make install

默認是安裝到 /usr/local/lib ,這時在此目錄下查看:

[hadoop@micmiu ~]$ ls -lh /usr/local/lib |grep snappy

-rw-r--r-- 1 root root 229K Mar 10 11:28 libsnappy.a

-rwxr-xr-x 1 root root 953 Mar 10 11:28 libsnappy.la

lrwxrwxrwx 1 root root 18 Mar 10 11:28 libsnappy.so ->
libsnappy.so.1.2.0

lrwxrwxrwx 1 root root 18 Mar 10 11:28 libsnappy.so.1 ->
libsnappy.so.1.2.0

-rwxr-xr-x 1 root root 145K Mar 10 11:28 libsnappy.so.1.2.0

安裝過程沒有錯誤同時能看到上面的動態庫,基本表示snappy 安裝編譯成功。

[三]、Hadoop snappy 安裝配置

3.1、hadoop 動態庫重新編譯支持snappy

hadoop動態庫編譯參考:Hadoop2.2.0源碼編譯 和 Hadoop2.x在Ubuntu系統中編譯源碼 ,只是把最後編譯的命令中增加
-Drequire.snappy :

1mvn package -Pdist,native -DskipTests -Dtar -Drequire.snappy

把重新編譯生成的hadoop動態庫替換原來的。

3.2、hadoop-snappy 下載

目前官網沒有軟體包提供,只能藉助 svn 下載源碼:

1svn checkout http://hadoop-snappy.googlecode.com/svn/trunk/
hadoop-snappy

3.3、hadoop-snappy 編譯

1mvn package [-Dsnappy.prefix=SNAPPY_INSTALLATION_DIR]

PS:如果上面 snappy安裝路徑是默認的話,即 /usr/local/lib,則此處
[-Dsnappy.prefix=SNAPPY_INSTALLATION_DIR] 可以省略,或者
-Dsnappy.prefix=/usr/local/lib

編譯成功後,把編譯後target下的 hadoop-snappy-0.0.1-SNAPSHOT.jar 復制到 $HADOOP_HOME/lib
,同時把編譯生成後的動態庫 到 $HADOOP_HOME/lib/native/ 目錄下:

1cp -r
$HADOOP-SNAPPY_CODE_HOME/target/hadoop-snappy-0.0.1-SNAPSHOT/lib/native/Linux-amd64-64
$HADOOP_HOME/lib/native/

3.4、編譯過程中常見錯誤處理

① 缺少一些第三方依賴

官方文檔中提到編譯前提需要:gcc c++, autoconf, automake, libtool, java 6, JAVA_HOME set,
Maven 3

②錯誤信息:

[exec] libtool: link: gcc -shared
src/org/apache/hadoop/io/compress/snappy/.libs/SnappyCompressor.o
src/org/apache/hadoop/io/compress/snappy/.libs/SnappyDecompressor.o
-L/usr/local/lib -ljvm -ldl -m64 -Wl,-soname -Wl,libhadoopsnappy.so.0 -o
.libs/libhadoopsnappy.so.0.0.1

[exec] /usr/bin/ld: cannot find -ljvm

[exec] collect2: ld returned 1 exit status

[exec] make: *** [libhadoopsnappy.la] Error 1

或者

[exec] /bin/sh ./libtool --tag=CC --mode=link gcc -g -Wall -fPIC -O2 -m64
-g -O2 -version-info 0:1:0 -L/usr/local/lib -o libhadoopsna/usr/bin/ld: cannot
find -ljvm

[exec] collect2: ld returned 1 exit status

[exec] make: *** [libhadoopsnappy.la] Error 1

[exec] ppy.la -rpath /usr/local/lib
src/org/apache/hadoop/io/compress/snappy/SnappyCompressor.lo
src/org/apache/hadoop/io/compress/snappy/SnappyDecompressor.lo -ljvm -ldl

[exec] libtool: link: gcc -shared
src/org/apache/hadoop/io/compress/snappy/.libs/SnappyCompressor.o
src/org/apache/hadoop/io/compress/snappy/.libs/SnappyDecompressor.o
-L/usr/local/lib -ljvm -ldl -m64 -Wl,-soname -Wl,libhadoopsnappy.so.0 -o
.libs/libhadoopsnappy.so.0.0.1

[ant] Exiting
/home/hadoop/codes/hadoop-snappy/maven/build-compilenative.xml.

這個錯誤是因為沒有把安裝jvm的libjvm.so 鏈接到
/usr/local/lib。如果你的系統時amd64,可以執行如下命令解決這個問題:

1ln -s /usr/java/jdk1.7.0_75/jre/lib/amd64/server/libjvm.so
/usr/local/lib/

[四]、hadoop配置修改

4.1、修改 $HADOOP_HOME/etc/hadoop/hadoop-env.sh,添加:

1export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native/Linux-amd64-64/

4.2、修改 $HADOOP_HOME/etc/hadoop/core-site.xml:

XHTML

io.compression.codecs

org.apache.hadoop.io.compress.GzipCodec,

org.apache.hadoop.io.compress.DefaultCodec,

org.apache.hadoop.io.compress.BZip2Codec,

org.apache.hadoop.io.compress.SnappyCodec

4.3、修改 $HADOOP_HOME/etc/hadoop/mapred-site.xml 中有關壓縮屬性,測試snappy:

XHTML

maprece.map.output.compress

true

maprece.map.output.compress.codec

org.apache.hadoop.io.compress.SnappyCodec[五]、測試驗證

全部配置好後(集群中所有的節點都需要動態庫和修改配置),重啟hadoop集群環境,運行自帶的測試實例
wordcount,如果maprece過程中沒有錯誤信息即表示snappy壓縮安裝方法配置成功。

當然hadoop也提供了本地庫的測試方法 hadoop checknative :

[hadoop@micmiu ~]$ hadoop checknative

15/03/17 22:57:59 INFO bzip2.Bzip2Factory: Successfully loaded &
initialized native-bzip2 library system-native

15/03/17 22:57:59 INFO zlib.ZlibFactory: Successfully loaded &
initialized native-zlib library

Native library checking:

hadoop: true
/usr/local/share/hadoop-2.6.0/lib/native/libhadoop.so.1.0.0

zlib: true /lib64/libz.so.1

snappy: true
/usr/local/share/hadoop/lib/native/Linux-amd64-64/libsnappy.so.1

lz4: true revision:99

bzip2: true /lib64/libbz2.so.1

openssl: true /usr/lib64/libcrypto.so

⑧ 怎樣配置hadoop的core-site.xml使能運行hadoop fs

namevalue description fs.default.namehdfs://hadoopmaster:9000定義hadoopmaster的uri和埠 fs.checkpoint.dir/opt/data/hadoop1/hdfs/namesecondary1定義hadoop的name備份的路徑,官方文檔說是讀取這個,寫入dfs.name.dir fs.checkpoint.period1800定義name備份的備份間隔時間,秒為單位,只對snn生效,默認一小時 fs.checkpoint.size33554432以日誌大小間隔做備份間隔,只對snn生效,默認64m io.compression.codecs
org.apache.hadoop.io.compress.defaultcodec,
com.hadoop.compression.lzo.lzocodec,
com.hadoop.compression.lzo.lzopcodec,
org.apache.hadoop.io.compress.gzipcodec,
org.apache.hadoop.io.compress.bzip2codec
(排版調整,實際配置不要回車)
hadoop所使用的編解碼器,gzip和bzip2為自帶,lzo需安裝hadoopgpl或者kevinweil,逗號分隔,snappy也需要單獨安裝 io.compression.codec.lzo.classcom.hadoop.compression.lzo.lzocodeclzo所使用的壓縮編碼器 topology.script.file.name/hadoop/bin/rackaware.py機架感知腳本位置 topology.script.number.args1000機架感知腳本管理的主機數,ip地址 fs.trash.interval10800hdfs垃圾箱設置,可以恢復誤刪除,分鍾數,0為禁用,添加該項無需重啟hadoop hadoop.http.filter.initializers
org.apache.hadoop.security.

(排版調整,實際配置不要回車)
需要jobtracker,tasktracker
namenode,datanode等http訪問埠用戶驗證使用,需配置所有節點
hadoop.http.authentication.typesimple | kerberos | #authentication_handler_classname#驗證方式,默認為簡單,也可自己定義class,需配置所有節點 hadoop.http.authentication.
token.validity
(排版調整,實際配置不要回車)36000驗證令牌的有效時間,需配置所有節點 hadoop.http.authentication.
signature.secret
(排版調整,實際配置不要回車)默認可不寫參數默認不寫在hadoop啟動時自動生成私密簽名,需配置所有節點 hadoop.http.authentication.cookie.domaindomian.tldhttp驗證所使用的cookie的域名,ip地址訪問則該項無效,必須給
此文來自: 馬開東博客 轉載請註明出處 網址:http://www.makaidong.com
所有節點都配置域名才可以。 hadoop.http.authentication.
simple.anonymous.allowed
(排版調整,實際配置不要回車)true | false簡單驗證專用,默認允許匿名訪問,true
hadoop.http.authentication.
kerberos.principal
(排版調整,實際配置不要回車)
http/localhost@$localhostkerberos驗證專用,參加認證的實體機必須使用http作為k的name hadoop.http.authentication.
kerberos.keytab
(排版調整,實際配置不要回車)/home/xianglei/hadoop.keytabkerberos驗證專用,密鑰文件存放位置 hadoop.security.authorizationtrue|falsehadoop服務層級驗證安全驗證,需配合hadoop-policy.xml使用,配置好以後用dfsadmin,mradmin -refreshserviceacl刷新生效 io.file.buffer.size131072用作序列化文件處理時讀寫buffer的大小 hadoop.security.authenticationsimple | kerberoshadoop本身的許可權驗證,非http訪問,simple或者kerberos hadoop.logfile.size1000000000設置日誌文件大小,超過則滾動新日誌 hadoop.logfile.count20最大日誌數 io.bytes.per.checksum1024每校驗碼所校驗的位元組數,不要大於io.file.buffer.size io.skip.checksum.errorstrue | false處理序列化文件時跳過校驗碼錯誤,不拋異常。默認false io.serializations
org.apache.hadoop.io.
serializer.writableserialization
(排版需要。實際配置不要回車)
序列化的編解碼器 io.seqfile.compress.blocksize1024000塊壓縮的序列化文件的最小塊大小,位元組 webinterface.private.actionstrue | false設為true,則jt和nn的tracker網頁會出現殺任務刪文件等操作連接,默認是false

⑨ hadoop文件格式和壓縮

Hadoop中的文件格式大致上分為面向行和面向列兩類:

面向行:TextFile、SequenceFile、MapFile、Avro Datafile

二進制格式文件大小比文本文件大。

生產環境常用,作為原始表的存儲格式,會佔用更多磁碟資源,對它的 解析開銷一般會比二進制格式高 幾十倍以上。

Hadoop API 提供的一種二進制文件,它將數據以<key,value>的形式序列化到文件中。這種二進制文件內部使用Hadoop 的標準的Writable 介面實現序列化和反序列化。它與Hadoop API中的MapFile 是互相兼容的。

MapFile即為排序後的SequeneceFile,它會額外生成一個索引文件提供按鍵的查找。文件不支持復寫操作,不能向已存在的SequenceFile(MapFile)追加存儲記錄,在執行文件寫操作的時候,該文件是不可讀取的。

Avro是一種用於支持數據密集型的二進制文件格式。它的文件格式更為緊湊,若要讀取大量數據時,Avro能夠提供更好的序列化和反序列化性能。並且Avro數據文件天生是帶Schema定義的,所以它不需要開發者在API 級別實現自己的Writable對象。最近多個Hadoop 子項目都支持Avro 數據格式,如Pig 、Hive、Flume、Sqoop和Hcatalog。

面向列:Parquet 、RCFile、ORCFile

RCFile是Hive推出的一種專門面向列的數據格式。 它遵循「先按列劃分,再垂直劃分」的設計理念。當查詢過程中,針對它並不關心的列時,它會在IO上跳過這些列。

ORCFile (Optimized Record Columnar File)提供了一種比RCFile更加高效的文件格式。其內部將數據劃分為默認大小為250M的Stripe。每個Stripe包括索引、數據和Footer。索引存儲每一列的最大最小值,以及列中每一行的位置。

Parquet 是一種支持嵌套結構的列式存儲格式。Parquet 的存儲模型主要由行組(Row Group)、列塊(Column Chuck)、頁(Page)組成。

1、行組,Row Group:Parquet 在水平方向上將數據劃分為行組,默認行組大小與 HDFS Block 塊大小對齊,Parquet 保證一個行組會被一個 Mapper 處理。

2、列塊,Column Chunk:行組中每一列保存在一個列塊中,一個列塊具有相同的數據類型,不同的列塊可以使用不同的壓縮。

3、頁,Page:Parquet 是頁存儲方式,每一個列塊包含多個頁,一個頁是最小的編碼的單位,同一列塊的不同頁可以使用不同的編碼方式。

一般原始表數據使用文本格式存儲,其他的都是列式存儲。

目前在Hadoop中常用的幾種壓縮格式:lzo,gzip,snappy,bzip2,主要特性對比如下:

其性能對比如下:

2.1 lzo

hadoop中最流行的壓縮格式,壓縮/解壓速度也比較快,合理的壓縮率,支持split。適用於較大文本的處理。

對於lzo壓縮,常用的有LzoCodec和lzopCodec,可以對sequenceFile和TextFile進行壓縮。對TextFile壓縮後,mapred對壓縮後的文件默認是不能夠進行split操作,需要對該lzo壓縮文件進行index操作,生成lzo.index文件,map操作才可以進行split。如果設置LzoCodec,那麼就生成.lzo後綴的文件,可以用LzoIndexer 進行支持split的index計算,如果設置LzopCodec,那麼生成.lzo_deflate後綴的文件,不支持建立index。

⑩ Linux命令中,請問下tar -vxzf hadoop-2.7.0.tar.gz是什麼意思尤其是-vxzf

v : 顯示動作,即解壓任何文件時均顯示其文件名及相對路徑
x : 解壓縮
z : 表名該壓縮文件是以gzip格式壓縮的
f : 該參數後面跟著被解壓的文件名

註:在Linux中解壓tar.gz包可以不加z參數,tar命令會自動識別其支持的任何壓縮格式,即該命令也可寫成如下形式
tar -vxf hadoop-2.7.0.tar.gz

閱讀全文

與hadoopgzip壓縮相關的資料

熱點內容
如何運用mex函數編譯c 瀏覽:896
24歲程序員倒在工作上 瀏覽:919
怎麼算梁的加密區 瀏覽:93
2016版office怎麼解壓 瀏覽:270
怎麼把安卓手機調的更暗 瀏覽:167
蘋果空間新演算法 瀏覽:91
android文字動畫效果 瀏覽:146
java調試命令 瀏覽:213
android子線程looper 瀏覽:782
linux安裝java7 瀏覽:189
單片機fdh 瀏覽:107
單片機原理與應用下載 瀏覽:590
順風車車主app在哪裡下載 瀏覽:235
雷石柏雲伺服器功率 瀏覽:102
全球服是什麼伺服器 瀏覽:237
感測器怎麼連接伺服器 瀏覽:705
大數學pdf 瀏覽:646
哪個app可以登記自己的藏書 瀏覽:89
怎麼用車貸款哪個app好 瀏覽:7
加密後打開只有300m 瀏覽:308