当前位置:   article > 正文

hadoop-lzo 安装配置_hive3 配置hadoop-lzo-0.4.20.jar

hive3 配置hadoop-lzo-0.4.20.jar

前言:

在hive中要想使用lzo的格式,需要配置安装好lzo工具并且在hadoop的core-site.xml与mapred-site.xml中配置相应的配置

一、编译安装lzo与lzop

1.下载编译安装lzo文件
2、编译安装(保证主机上有gcc与g++)

tar -xvzf   lzo-2.10.tar.gz

cd lzo-2.10

./configure --enable-shared

make -j 10

make install

cp /usr/local/lib/*lzo* /usr/lib
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

安装完成后需要将 cp部分文件到/usr/lib中,这个步骤不做会抛

lzop: error while loading shared libraries: liblzo2.so.2: cannot open shared object file: No such file or directory
  • 1

2.下载编译lzop

tar -xvzf lzop-1.04.tar.gz 

cd lzop-1.04 

./configure 

make -j 10 

make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

二、安装、编译hadoop-lzo-master

需在linux环境中安装,在windows上编译不过

wget https://github.com/twitter/hadoop-lzo/archive/master.zip 
  • 1

解压:
unzip master.zip

cd hadoop-lzo-master/

编辑pom.xml修改hadoop的版本号与你集群中hadoop版本一致
<hadoop.current.version>2.9.3</hadoop.current.version>
检查所在主机是否有maven,如果没有需要安装,如下:

wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

tar -zxvf apache-maven-3.5.4-bin.tar.gz

vim /etc/profile

添加环境变量:
MAVEN_HOME=/usr/local/apache-maven-3.5.4
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin

保存退出profile

source /etc/profile
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

导入hadoop-lzo编译时需要路径信息

export CFLAGS=-m64

export CXXFLAGS=-m64

修改为自己hadoop的实际路径
export C_INCLUDE_PATH=/usr/local/hadoop-2.9.1/lzo/include

export LIBRARY_PATH=/usr/local/hadoop-2.9.1/lzo/lib
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

maven编译安装

mvn clean package -Dmaven.test.skip=true
  • 1

等待。。。
编译安装没有异常结束后往下继续 PS:如果在mvn这里出现异常,请解决后再继续

编译成功后会有target文件

cd target/native/Linux-amd64-64/

mkdir ~/hadoop-lzo-files
tar -cBf - -C lib . | tar -xBvf - -C ~/hadoop-lzo-files
  • 1
  • 2
  • 3
  • 4

在 ~/hadoop-lzo-files 目录下产生几个文件,执行cp

cp ~/hadoop-lzo-files/libgplcompression*  $HADOOP_HOME/lib/native/ 
  • 1

注意!!!上面这一步的cp文件也要同步到集群其他主机的hadoop的对应目录下cp

hadoop-lzo的jar包到hadoop目录

cp target/hadoop-lzo-0.4.21-SNAPSHOT.jar $HADOOP_HOME/share/hadoop/common/
  • 1

注意!!!上面这一步的cp文件也要同步到集群其他主机的hadoop的对应目录下

三、配置hadoop配置文件

在hadoop的core-site.xml中添加

vim core-site.xml
  • 1
<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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在mapred-site.xml中添加

vim mapred-site.xml
  • 1
<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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

注意!!!上面修改的core-xite.xml与mapred-site.xml文件也要同步到集群其他主机的hadoop的对应目录下

最后重启集群!!!

检验是否成功

通过输出文件格式查看

[root@hadoop102 hadoop]# vim word.txt
 hello word
 hello bigdata 
 hello touch
[root@hadoop102 hadoop]# hadoop fs -mkdir /input
[root@hadoop102 hadoop]# hadoop fs -put ./word.txt /input
[root@hadoop102 hadoop]#  hadoop jar /opt/module/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount -Dmapreduce.output.fileoutputformat.compress=true -Dmapreduce.output.fileoutputformat.compress.codec=com.hadoop.compression.lzo.LzopCodec /input /output
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述
在hive中创建lzo格式的表

create table lzo-tmp(id int,name string) STORED AS INPUTFORMAT 'com.hadoop.mapred.DeprecatedLzoTextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat';
  • 1

插入数据,并且可以selete到数据,说明成功,如果没有重启集群或者没有重新开启新的hive的client端的话可能会抛(当在hive中查询时)

Failed with exception java.io.IOException:java.io.IOException: No LZO codec found, cannot run
  • 1

给输出文件加索引

hadoop jar /opt/module/hadoop/share/hadoop/common/hadoop-lzo-0.4.20.jar com.hadoop.compression.lzo.DistributedLzoIndexer /output/part-r-00000.lzo
  • 1

在这里插入图片描述
至此hadoop-lzo配置完成

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/519985
推荐阅读
相关标签
  

闽ICP备14008679号