日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hadoop 2.2.0安装和配置lzo

發(fā)布時間:2025/5/22 编程问答 97 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop 2.2.0安装和配置lzo 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

Hadoop經(jīng)常用于處理大量的數(shù)據(jù),如果期間的輸出數(shù)據(jù)、中間數(shù)據(jù)能壓縮存儲,對系統(tǒng)的I/O性能會有提升。綜合考慮壓縮、解壓速度、是否支持split,目前l(fā)zo是最好的選擇。LZO(LZO是Lempel-Ziv-Oberhumer的縮寫)是一種高壓縮比和解壓速度極快的編碼,它的特點是解壓縮速度非常快,無損壓縮,壓縮后的數(shù)據(jù)能準(zhǔn)確還原,lzo是基于block分塊的,允許數(shù)據(jù)被分解成chunk,能夠被并行的解壓。LZO庫實現(xiàn)了許多有下述特點的算法:
  (1)、解壓簡單,速度非??臁?br />   (2)、解壓不需要內(nèi)存。
  (3)、壓縮相當(dāng)?shù)乜臁?br />   (4)、壓縮需要64 kB的內(nèi)存。
  (5)、允許在壓縮部分以損失壓縮速度為代價提高壓縮率,解壓速度不會降低。
  (6)、包括生成預(yù)先壓縮數(shù)據(jù)的壓縮級別,這樣可以得到相當(dāng)有競爭力的壓縮比。
  (7)、另外還有一個只需要8 kB內(nèi)存的壓縮級別。
  (8)、算法是線程安全的。
  (9)、算法是無損的。
本文針對Hadoop 2.2.0,介紹如何安裝和使用lzo。

一、下載、解壓并編譯lzo包

1[wyp@master ~]$ wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz
2[wyp@master ~]$ tar -zxvf lzo-2.06.tar.gz
3[wyp@master ~]$ cd lzo-2.06
4[wyp@master ~]$ export CFLAGS=-m64
5[wyp@master ~]$ ./configure -enable-shared -prefix=/usr/local/hadoop/lzo/
6[wyp@master ~]$ make && sudo make install

  編譯完lzo包之后,會在/usr/local/hadoop/lzo/生成一些文件,目錄結(jié)構(gòu)如下:

1[wyp@master /usr/local/hadoop/lzo]$ ls -l
2total 12
3drwxr-xr-x 3 root root 4096 Mar 21 17:23 include
4drwxr-xr-x 2 root root 4096 Mar 21 17:23 lib
5drwxr-xr-x 3 root root 4096 Mar 21 17:23 share

  將/usr/local/hadoop/lzo目錄下的所有文件打包,并同步到集群中的所有機(jī)器上。

在編譯lzo包的時候,需要一些環(huán)境,可以用下面的命令安裝好lzo編譯環(huán)境

1[wyp@master ~]$ yum -y install? lzo-devel???? \
2???????????????zlib-devel? gcc autoconf automake libtool

二、安裝Hadoop-LZO

  這里下載的是Twitter hadoop-lzo,可以用Maven(如何安裝Maven請參照本博客的《Linux命令行下安裝Maven與配置》)進(jìn)行編譯。

1[wyp@master ~]$ wget https://github.com/twitter/hadoop-lzo/archive/master.zip

下載后的文件名是master,它是一個zip格式的壓縮包,可以進(jìn)行解壓:

1[wyp@master ~]$ unzip master

解壓后的文件夾名為hadoop-lzo-master

當(dāng)然,如果你電腦安裝了git,你也可以用下面的命令去下載

1[wyp@master ~]$ git clone https://github.com/twitter/hadoop-lzo.git

hadoop-lzo中的pom.xml依賴了hadoop2.1.0-beta,由于我們這里用到的是Hadoop 2.2.0,所以建議將hadoop版本修改為2.2.0:

1<properties>
2????<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
3????<hadoop.current.version>2.2.0</hadoop.current.version>
4????<hadoop.old.version>1.0.4</hadoop.old.version>
5??</properties>

然后進(jìn)入hadoop-lzo-master目錄,依次執(zhí)行下面的命令

01[wyp@master hadoop-lzo-master]$ export CFLAGS=-m64
02[wyp@master hadoop-lzo-master]$ export CXXFLAGS=-m64
03[wyp@master hadoop-lzo-master]$ export C_INCLUDE_PATH=???? \
04??????????????????????????????????/usr/local/hadoop/lzo/include
05[wyp@master hadoop-lzo-master]$ export LIBRARY_PATH=/usr/local/hadoop/lzo/lib
06[wyp@master hadoop-lzo-master]$ mvn clean package -Dmaven.test.skip=true
07[wyp@master hadoop-lzo-master]$ cd target/native/Linux-amd64-64
08[wyp@master Linux-amd64-64]$ tar -cBf - -C lib . | tar -xBvf - -C ~
09[wyp@master ~]$cp ~/libgplcompression* $HADOOP_HOME/lib/native/
10[wyp@master hadoop-lzo-master]$cp target/hadoop-lzo-0.4.18-SNAPSHOT.jar?? \
11???????????????????????????????????$HADOOP_HOME/share/hadoop/common/

其實在tar -cBf – -C lib . | tar -xBvf – -C ~命令之后,會在~目錄下生成一下幾個文件:

1[wyp@master ~]$ ls -l
2-rw-r--r--? 1 libgplcompression.a
3-rw-r--r--? 1 libgplcompression.la
4lrwxrwxrwx? 1 libgplcompression.so -> libgplcompression.so.0.0.0
5lrwxrwxrwx? 1 libgplcompression.so.0 -> libgplcompression.so.0.0.0
6-rwxr-xr-x? 1 libgplcompression.so.0.0.0

  其中l(wèi)ibgplcompression.so和libgplcompression.so.0是鏈接文件,指向libgplcompression.so.0.0.0,將剛剛生成的libgplcompression*和target/hadoop-lzo-0.4.18-SNAPSHOT.jar同步到集群中的所有機(jī)器對應(yīng)的目錄。

三、配置Hadoop環(huán)境變量

  1、在Hadoop中的$HADOOP_HOME/etc/hadoop/hadoop-env.sh加上下面配置:

1export LD_LIBRARY_PATH=/usr/local/hadoop/lzo/lib

  2、在$HADOOP_HOME/etc/hadoop/core-site.xml加上如下配置:

01<property>
02????<name>io.compression.codecs</name>
03????<value>org.apache.hadoop.io.compress.GzipCodec,
04???????????org.apache.hadoop.io.compress.DefaultCodec,
05???????????com.hadoop.compression.lzo.LzoCodec,
06???????????com.hadoop.compression.lzo.LzopCodec,
07???????????org.apache.hadoop.io.compress.BZip2Codec
08????????</value>
09</property>
10?
11<property>
12????<name>io.compression.codec.lzo.class</name>
13????<value>com.hadoop.compression.lzo.LzoCodec</value>
14</property>

  3、在$HADOOP_HOME/etc/hadoop/mapred-site.xml加上如下配置

01<property>
02????<name>mapred.compress.map.output</name>
03????<value>true</value>
04</property>
05?
06<property>
07????<name>mapred.map.output.compression.codec</name>
08????<value>com.hadoop.compression.lzo.LzoCodec</value>
09</property>
10?
11<property>
12????<name>mapred.child.env</name>
13????<value>LD_LIBRARY_PATH=/usr/local/hadoop/lzo/lib</value>
14</property>

  將剛剛修改的配置文件全部同步到集群的所有機(jī)器上,并重啟Hadoop集群,這樣就可以在Hadoop中使用lzo。

四、如何使用

  這里在Hive中使用一下lzo,在hive中創(chuàng)建一個lzo表:

1hive> create table lzo(
2????> id int,
3????> name string)
4????> STORED AS INPUTFORMAT 'com.hadoop.mapred.DeprecatedLzoTextInputFormat'
5????> OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat';
6OK
7Time taken: 3.423 seconds
如果在創(chuàng)建lzo表出現(xiàn)了如下錯誤:

1FAILED: Error in metadata: Class not found:???? \
2??????????????????com.hadoop.mapred.DeprecatedLzoTextInputFormat
3FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask

請檢查你的環(huán)境是否配置好。

然后在本地用lzo壓縮一個文件,先看看users.txt的內(nèi)容:

01[wyp@master ~]$ cat users.txt
021^Awyp
032^Azs
043^Als
054^Aww
065^Awyp2
076^Awyp3
087^Awyp4
098^Awyp5
109^Awyp6
1110^Awyp7
1211^Awyp8
1312^Awyp5
1413^Awyp9
1514^Awyp20
16[wyp@master ~]$ lzop users.txt
17[wyp@master ~]$ ls -l users.txt*
18-rw-r--r-- 1 wyp wyp 97? Mar 25 15:40 users.txt
19-rw-r--r-- 1 wyp wyp 154 Mar 25 15:40 users.txt.lzo

將users.txt.lzo的數(shù)據(jù)導(dǎo)入到lzo表里面:

01hive> load data local inpath '/home/wyp/users.txt.lzo' into table lzo;
02Copying data from file:/home/wyp/users.txt.lzo
03Copying file: file:/home/wyp/users.txt.lzo
04Loading data to table default.lzo
05Table default.lzo stats: [num_partitions: 0, num_files: 1,
06???????????????num_rows: 0, total_size: 154, raw_data_size: 0]
07OK
08Time taken: 0.49 seconds
09hive> select * from lzo;
10OK
111?? wyp
122?? zs
133?? ls
144?? ww
155?? wyp2
166?? wyp3
177?? wyp4
188?? wyp5
199?? wyp6
2010? wyp7
2111? wyp8
2212? wyp5
2313? wyp9
2414? wyp20
25Time taken: 0.244 seconds, Fetched: 14 row(s)

好了,我們可以在Hadoop中使用lzo了!!(完)

轉(zhuǎn)載于:https://my.oschina.net/u/1169079/blog/225070

總結(jié)

以上是生活随笔為你收集整理的Hadoop 2.2.0安装和配置lzo的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。