lzo檔案的並行map處理

2021-09-21 19:17:11 字數 1044 閱讀 4909

hadoop集群中啟用了lzo後,還需要一些配置,才能使集群能夠對單個的lzo檔案進行並行的map操作,以提公升job的執行速度。

首先,要為lzo檔案建立index。下面的命令對某個目錄裡的lzo檔案建立index:

$hadoop_home/bin/hadoop jar $hadoop_home/lib/hadoop-lzo-0.4.10.jar com.hadoop.compression.lzo.lzoindexer /log/source/cd/ 

使用該命令建立index要花些時間的,我乙個7.5gb大小的檔案,建立index,花了2分30秒的樣子。

其實建立index時還有另外乙個引數

, 即com.hadoop.compression.lzo.distributedlzoindexer。兩個選項可以參考:該文章對這兩個選項的解釋,我不是很明白,但使用後乙個引數可以減少建立index時所花費的時間

, 而對mapreduce任務的執行沒有影響。如下:

$hadoop_home/bin/hadoop jar $hadoop_home/lib/hadoop-lzo-0.4.10.jar com.hadoop.compression.lzo.distributedlzoindexer /log/source/cd/   

然後,在hive中建立表時,要指定inputformat和outputformat,否則集群仍然不能對lzo進行並行的map處理。在hive中建立表時加入下列語句:

set fileformat      

inputformat "com.hadoop.mapred.deprecatedlzotextinputformat"   

outputformat "org.apache.hadoop.hive.ql.io.hiveignorekeytextoutputformat"; 

執行了這兩步操作後,對hive執行速度的提公升還是很明顯的。在測試中,我們使用乙個7.5gb大小的lzo檔案,執行稍微複雜一點的hive命令,使用上述配置後僅需34秒的時間,而原來要180秒。

hive對lzo檔案並行處理的關鍵點

1,確保建立索引 hadoop home bin hadoop jar hadoop home lib hadoop lzo 0.4.10.jar com.hadoop.compression.lzo.distributedlzoindexer user hive warehouse flog 2 ...

1 4 map實現並行處理方法

python import multiprocessing import time def f x time.sleep 2 print x if name main pool multiprocessing.pool processes 5 pool.map f,xrange 10 介紹 map ...

並行處理大文字檔案

集算器可以方便地用並行方式處理大文字檔案,下面通過乙個例子來說明使用方法。假設有個一千萬條銷售記錄的文字檔案 sales.txt 其主要欄位是 sellerid 銷售員 orderdate 訂單日期 amount 訂單金額 請計算每個銷售員在近四年裡的大訂單總金額。其中,金額在 2000 以上的屬於...