lzo的安装及在hadoop中的配置
生活随笔
收集整理的這篇文章主要介紹了
lzo的安装及在hadoop中的配置
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、前提 1、gcc的安裝:yum install lib* glibc* gcc* 如果lzo編譯出錯時可能需要安裝
2、ant的安裝:安裝略,最好1.8.2及以上版本,并設(shè)置好環(huán)境變量 在第三步需要用到ant
二、lzo的安裝 wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.04.tar.gz? ./configure --enable-shared make make install #編輯/etc/ld.so.conf,加入/usr/local/lib/后,執(zhí)行/sbin/ldconfig 或者cp /usr/local/lib/liblzo2.* /usr/lib64/ 三、lzo編碼/×××的安裝: wget https://download.github.com/kevinweil-hadoop-lzo-2ad6654.tar.gz
tar-zxvf kevinweil-hadoop-lzo-2ad6654.tar.gz
cd kevinweil-hadoop-lzo-2ad6654
ant compile-native tar #將本地庫以及Jar包拷貝到hadoop對應(yīng)的目錄下,并分發(fā)到各節(jié)點上 cp lib/native/Linux-amd64-64/* /opt/hadoop/hadoop/lib/native/Linux-amd64-64/? #32位系統(tǒng)則是32位的路徑目錄
cp hadoop-lzo-0.4.10.jar .../hadoop/lib/ 四、hadoop配置 vi core-site.xml [html] view plaincopy<property>??????? ?? <name>io.compression.codecs</name>??????? ?? <value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec,org.apache.hadoop.io.compress.BZip2Codec</value>?? ?? </property>?? ?? <property>??????? ?? <name>io.compression.codec.lzo.class</name>??????? ?? <value>com.hadoop.compression.lzo.LzoCodec</value>?? ?? </property>??
vi mapred-site.xml [html] view plaincopy<property>?? ?? <name>mapred.compress.map.output</name>??????? ?? <value>true</value>????? ?? </property>????? ?? <property>??????? ?? <name>mapred.map.output.compression.codec</name>???????? ?? <value>com.hadoop.compression.lzo.LzoCodec</value>????? ?? </property>??
以上在hadoop-0.20.203.0中測試通過,但在204.0和205.0中會出現(xiàn)如下問題: hadoop-0.20.204.0中報錯: 2012-01-06 12:09:30,475 ERROR lzo.GPLNativeCodeLoader (GPLNativeCodeLoader.java:<clinit>(36)) - Could not load native gpl library
java.lang.UnsatisfiedLinkError: no gplcompression in java.library.path
??????? at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1734)
??????? at java.lang.Runtime.loadLibrary0(Runtime.java:823)
??????? at java.lang.System.loadLibrary(System.java:1028)
??????? at com.hadoop.compression.lzo.GPLNativeCodeLoader.<clinit>(GPLNativeCodeLoader.java:32)
??????? at com.hadoop.compression.lzo.LzoCodec.<clinit>(LzoCodec.java:67)
??????? at java.lang.Class.forName0(Native Method)
??????? at java.lang.Class.forName(Class.java:247)
??????? at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:819)
??????? at org.apache.hadoop.hive.ql.io.RCFile$Reader.init(RCFile.java:1109)
??????? at org.apache.hadoop.hive.ql.io.RCFile$Reader.<init>(RCFile.java:983)
??????? at org.apache.hadoop.hive.ql.io.RCFile$Reader.<init>(RCFile.java:964)
??????? at org.apache.hadoop.hive.ql.io.RCFileRecordReader.<init>(RCFileRecordReader.java:52)
??????? at org.apache.hadoop.hive.ql.io.RCFileInputFormat.getRecordReader(RCFileInputFormat.java:57)
??????? at org.apache.hadoop.hive.ql.exec.FetchOperator.getRecordReader(FetchOperator.java:306)
??????? at org.apache.hadoop.hive.ql.exec.FetchOperator.getNextRow(FetchOperator.java:320)
??????? at org.apache.hadoop.hive.ql.exec.FetchTask.fetch(FetchTask.java:133)
??????? at org.apache.hadoop.hive.ql.Driver.getResults(Driver.java:1114)
??????? at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:187)
??????? at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:241)
??????? at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:456)
??????? at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
??????? at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
??????? at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
??????? at java.lang.reflect.Method.invoke(Method.java:597)
??????? at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
2012-01-06 12:09:30,476 ERROR lzo.LzoCodec (LzoCodec.java:<clinit>(77)) - Cannot load native-lzo without native-hadoop
2012-01-06 12:09:30,478 ERROR CliDriver (SessionState.java:printError(343)) - Failed with exception java.io.IOException:java.lang.RuntimeException: native-lzo library not available
java.io.IOException: java.lang.RuntimeException: native-lzo library not available
??????? at org.apache.hadoop.hive.ql.exec.FetchOperator.getNextRow(FetchOperator.java:341)
??????? at org.apache.hadoop.hive.ql.exec.FetchTask.fetch(FetchTask.java:133)
??????? at org.apache.hadoop.hive.ql.Driver.getResults(Driver.java:1114)
??????? at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:187)
??????? at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:241)
??????? at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:456)
??????? at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
??????? at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
??????? at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
??????? at java.lang.reflect.Method.invoke(Method.java:597)
??????? at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
Caused by: java.lang.RuntimeException: native-lzo library not available
??????? at com.hadoop.compression.lzo.LzoCodec.getDecompressorType(LzoCodec.java:180)
??????? at org.apache.hadoop.hive.ql.io.CodecPool.getDecompressor(CodecPool.java:122)
??????? at org.apache.hadoop.hive.ql.io.RCFile$Reader.init(RCFile.java:1117)
??????? at org.apache.hadoop.hive.ql.io.RCFile$Reader.<init>(RCFile.java:983)
??????? at org.apache.hadoop.hive.ql.io.RCFile$Reader.<init>(RCFile.java:964)
??????? at org.apache.hadoop.hive.ql.io.RCFileRecordReader.<init>(RCFileRecordReader.java:52)
??????? at org.apache.hadoop.hive.ql.io.RCFileInputFormat.getRecordReader(RCFileInputFormat.java:57)
??????? at org.apache.hadoop.hive.ql.exec.FetchOperator.getRecordReader(FetchOperator.java:306)
??????? at org.apache.hadoop.hive.ql.exec.FetchOperator.getNextRow(FetchOperator.java:320)
??????? ... 10 more 解決辦法:在$hadoop_home/bin/hadoop文件中增加如下一行即可JAVA_LIBRARY_PATH=$hadoop_home/lib/native/Linux-amd64-64 在hadoop-0.20.205版本中處了該錯誤外,還有一個錯誤,就是找不到lzo的jar包,這是因為他們家在classpath的方法有了 變更,默認(rèn)不會把$hadoop_home/lib目錄下的所有jar包都加載,所以在/conf/hadoop-env.sh中增加如下代碼即可解 決:export? HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$hadoop_home/lib/hadoop-lzo.jar
轉(zhuǎn)載自:http://blog.csdn.net/zyj8170/article/details/6598082。
2、ant的安裝:安裝略,最好1.8.2及以上版本,并設(shè)置好環(huán)境變量 在第三步需要用到ant
二、lzo的安裝 wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.04.tar.gz? ./configure --enable-shared make make install #編輯/etc/ld.so.conf,加入/usr/local/lib/后,執(zhí)行/sbin/ldconfig 或者cp /usr/local/lib/liblzo2.* /usr/lib64/ 三、lzo編碼/×××的安裝: wget https://download.github.com/kevinweil-hadoop-lzo-2ad6654.tar.gz
tar-zxvf kevinweil-hadoop-lzo-2ad6654.tar.gz
cd kevinweil-hadoop-lzo-2ad6654
ant compile-native tar #將本地庫以及Jar包拷貝到hadoop對應(yīng)的目錄下,并分發(fā)到各節(jié)點上 cp lib/native/Linux-amd64-64/* /opt/hadoop/hadoop/lib/native/Linux-amd64-64/? #32位系統(tǒng)則是32位的路徑目錄
cp hadoop-lzo-0.4.10.jar .../hadoop/lib/ 四、hadoop配置 vi core-site.xml [html] view plaincopy
vi mapred-site.xml [html] view plaincopy
以上在hadoop-0.20.203.0中測試通過,但在204.0和205.0中會出現(xiàn)如下問題: hadoop-0.20.204.0中報錯: 2012-01-06 12:09:30,475 ERROR lzo.GPLNativeCodeLoader (GPLNativeCodeLoader.java:<clinit>(36)) - Could not load native gpl library
java.lang.UnsatisfiedLinkError: no gplcompression in java.library.path
??????? at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1734)
??????? at java.lang.Runtime.loadLibrary0(Runtime.java:823)
??????? at java.lang.System.loadLibrary(System.java:1028)
??????? at com.hadoop.compression.lzo.GPLNativeCodeLoader.<clinit>(GPLNativeCodeLoader.java:32)
??????? at com.hadoop.compression.lzo.LzoCodec.<clinit>(LzoCodec.java:67)
??????? at java.lang.Class.forName0(Native Method)
??????? at java.lang.Class.forName(Class.java:247)
??????? at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:819)
??????? at org.apache.hadoop.hive.ql.io.RCFile$Reader.init(RCFile.java:1109)
??????? at org.apache.hadoop.hive.ql.io.RCFile$Reader.<init>(RCFile.java:983)
??????? at org.apache.hadoop.hive.ql.io.RCFile$Reader.<init>(RCFile.java:964)
??????? at org.apache.hadoop.hive.ql.io.RCFileRecordReader.<init>(RCFileRecordReader.java:52)
??????? at org.apache.hadoop.hive.ql.io.RCFileInputFormat.getRecordReader(RCFileInputFormat.java:57)
??????? at org.apache.hadoop.hive.ql.exec.FetchOperator.getRecordReader(FetchOperator.java:306)
??????? at org.apache.hadoop.hive.ql.exec.FetchOperator.getNextRow(FetchOperator.java:320)
??????? at org.apache.hadoop.hive.ql.exec.FetchTask.fetch(FetchTask.java:133)
??????? at org.apache.hadoop.hive.ql.Driver.getResults(Driver.java:1114)
??????? at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:187)
??????? at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:241)
??????? at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:456)
??????? at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
??????? at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
??????? at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
??????? at java.lang.reflect.Method.invoke(Method.java:597)
??????? at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
2012-01-06 12:09:30,476 ERROR lzo.LzoCodec (LzoCodec.java:<clinit>(77)) - Cannot load native-lzo without native-hadoop
2012-01-06 12:09:30,478 ERROR CliDriver (SessionState.java:printError(343)) - Failed with exception java.io.IOException:java.lang.RuntimeException: native-lzo library not available
java.io.IOException: java.lang.RuntimeException: native-lzo library not available
??????? at org.apache.hadoop.hive.ql.exec.FetchOperator.getNextRow(FetchOperator.java:341)
??????? at org.apache.hadoop.hive.ql.exec.FetchTask.fetch(FetchTask.java:133)
??????? at org.apache.hadoop.hive.ql.Driver.getResults(Driver.java:1114)
??????? at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:187)
??????? at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:241)
??????? at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:456)
??????? at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
??????? at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
??????? at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
??????? at java.lang.reflect.Method.invoke(Method.java:597)
??????? at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
Caused by: java.lang.RuntimeException: native-lzo library not available
??????? at com.hadoop.compression.lzo.LzoCodec.getDecompressorType(LzoCodec.java:180)
??????? at org.apache.hadoop.hive.ql.io.CodecPool.getDecompressor(CodecPool.java:122)
??????? at org.apache.hadoop.hive.ql.io.RCFile$Reader.init(RCFile.java:1117)
??????? at org.apache.hadoop.hive.ql.io.RCFile$Reader.<init>(RCFile.java:983)
??????? at org.apache.hadoop.hive.ql.io.RCFile$Reader.<init>(RCFile.java:964)
??????? at org.apache.hadoop.hive.ql.io.RCFileRecordReader.<init>(RCFileRecordReader.java:52)
??????? at org.apache.hadoop.hive.ql.io.RCFileInputFormat.getRecordReader(RCFileInputFormat.java:57)
??????? at org.apache.hadoop.hive.ql.exec.FetchOperator.getRecordReader(FetchOperator.java:306)
??????? at org.apache.hadoop.hive.ql.exec.FetchOperator.getNextRow(FetchOperator.java:320)
??????? ... 10 more 解決辦法:在$hadoop_home/bin/hadoop文件中增加如下一行即可JAVA_LIBRARY_PATH=$hadoop_home/lib/native/Linux-amd64-64 在hadoop-0.20.205版本中處了該錯誤外,還有一個錯誤,就是找不到lzo的jar包,這是因為他們家在classpath的方法有了 變更,默認(rèn)不會把$hadoop_home/lib目錄下的所有jar包都加載,所以在/conf/hadoop-env.sh中增加如下代碼即可解 決:export? HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$hadoop_home/lib/hadoop-lzo.jar
轉(zhuǎn)載自:http://blog.csdn.net/zyj8170/article/details/6598082。
轉(zhuǎn)載于:https://blog.51cto.com/xg2007524/815823
總結(jié)
以上是生活随笔為你收集整理的lzo的安装及在hadoop中的配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu部署tomcat
- 下一篇: BJRangeSliderWithPro