hadoop集群配置LZO压缩以及支持Hive

hadoop集群配置LZO压缩以及支持Hive

下载以及编译lzo源码包

LZO源码包地址

将下载的源码包使用maven进行编译

使用 mvn clean package,编译之后将生成adoop-lzo-0.4.20.jar的jar包

特殊说明:也可以不进行编译,直接使用作者编译好的lzo jar包。链接: https://pan.baidu.com/s/13IjKDEokh_dqkGoDY1bIFA 密码: fbtf

将编译之后的jar包上传到node01节点,且同步至其他机器

1
2
3
4
5
6
7
8
# 上传
cd /opt/module/hadoop-2.6.0-cdh5.14.2/share/hadoop/common
rz
...

# 同步至其他机器
scp hadoop-lzo-0.4.20.jar node02:$PWD
scp hadoop-lzo-0.4.20.jar node03:$PWD

修改core-site.xml,配置压缩方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
cd /opt/module/hadoop-2.6.0-cdh5.14.2/etc/hadoop
vim core-site.xml

<property>
<name>io.compression.codecs</name>
<value>
org.apache.hadoop.io.compress.GzipCodec,
org.apache.hadoop.io.compress.DefaultCodec,
org.apache.hadoop.io.compress.BZip2Codec,
org.apache.hadoop.io.compress.SnappyCodec,
com.hadoop.compression.lzo.LzoCodec,
com.hadoop.compression.lzo.LzopCodec
</value>
</property>

<property>
<name>io.compression.codec.lzo.class</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property>

同步core-site.xml配置到其他机器

1
2
3
cd /opt/module/hadoop-2.6.0-cdh5.14.2/etc/hadoop
scp core-site.xml node02:$PWD
scp core-site.xml node03:$PWD

配置hadoop-env.sh(可选)

1
export LD_LIBRARY_PATH=/opt/module/hadoop-2.6.0-cdh5.14.2/share/hadoop/common/

配置mapred-site.xml(可选)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!--启用map中间文件压缩-->
<property>
<name>mapreduce.map.output.compress</name>
<value>true</value>
</property>
<!--启用map中间压缩类-->
<property>
<name>mapred.map.output.compression.codec</name>
<value>com.hadoop.compression.lzo.LzopCodec</value>
</property>
<!--启用mapreduce文件压缩-->
<property>
<name>mapreduce.output.fileoutputformat.compress</name>
<value>true</value>
</property>
<!--启用mapreduce压缩类-->
<property>
<name>mapreduce.output.fileoutputformat.compress.codec</name>
<value>com.hadoop.compression.lzo.LzopCodec</value>
</property>
<!--配置Jar包-->
<property>
<name>mapred.child.env</name>
<value>LD_LIBRARY_PATH=/opt/module/hadoop-2.6.0-cdh5.14.2/share/hadoop/common/</value>
</property>

同步hadoop-env.sh以及mapred-site.xml配置到其他机器(可选)

1
2
3
4
5
6
cd /opt/module/hadoop-2.6.0-cdh5.14.2/etc/hadoop
scp hadoop-env.sh node02:$PWD
scp hadoop-env.sh node03:$PWD

scp mapred-site.xml node02:$PWD
scp mapred-site.xml node03:$PWD

重新启动hdfs集群

1
2
stop-dfs.sh
start-dfs.sh

配置hive支持LZO压缩

直接将hadoop-lzo-0.20.jar这个jar包拷贝到hive的lib目录下即可。

我的hive服务器安装在node03节点上,所以在node03执行以下命令,将jar包拷贝到hive的lib目录下即可。

1
cp /opt/module/hadoop-2.6.0-cdh5.14.2/share/hadoop/common/hadoop-lzo-0.4.20.jar  /opt/module/hive-1.1.0-cdh5.14.2/lib/

评论