一、需求
需求一:
- 使用LZO压缩一个文本,压缩以后大小是200M,执行sql语句触发mapreduce,启用分片&&不启用分片;
需求二:
使用HUE访问HDFS,使用HUE查询Hive
二、Hadoop配置LZO压缩&&分片和不分片
2.1、CentOS下安装LZO工具
1、安装lzo工具
1、检查是否已经安装了lzo的相关包:
[hadoop@hadoop002 ~]$ which lzop
/usr/bin/lzop
2、如果没有安装相关包,就yum执行如下命令进行安装:
[root@hadoop001 ~]# yum install -y svn ncurses-devel
[root@hadoop001 ~]# yum install -y gcc gcc-c++ make cmake
[root@hadoop001 ~]# yum install -y openssl openssl-devel svn ncurses-devel zlib-devel libtool
[root@hadoop001 ~]# yum install -y lzo lzo-devel lzop autoconf automake cmake
2、使用LZO工具进行测试:
[hadoop@hadoop002 data]$ lzop -v page_views.dat
compressing page_views.dat into page_views.dat.lzo
[hadoop@hadoop002 data]$ ll
total 981816
-rw-r--r-- 1 hadoop hadoop 977314219 May 10 09:21 maven_repository.zip
-rw-r--r-- 1 hadoop hadoop 19014993 May 11 14:22 page_views.dat
-rw-r--r-- 1 hadoop hadoop 9029650 May 11 14:22 page_views.dat.lzo
-rw-rw-r-- 1 hadoop hadoop 34 May 10 09:54 ruozeinput.txt
drwxr-xr-x 2 hadoop hadoop 4096 May 2 21:20 superset
[hadoop@hadoop002 data]$ du -sh page_views.dat.lzo
8.7M page_views.dat.lzo
[hadoop@hadoop002 data]$ du -sh page_views.dat
19M page_views.dat
2.2、编译hadoop-lzo文件
- 可以查看Hive官网对LZO的解释:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+LZO
编译过后的Hadoop还是不支持LZO压缩,需要使用Twitter提供的hadoop-lzo开源组件进行编译:
使用maven编译hadoop-lzo:
- 下载地址:https://github.com/twitter/hadoop-lzo
1、压缩&&解压
2、使用maven编译
[hadoop@hadoop002 hadoop-lzo-master]$ mvn clean package -Dmaven.test.skip=true
3、编译成功后会出现一个jar包,路径如下:
[hadoop@hadoop002 target]$ pwd
/home/hadoop/software/hadoop-lzo-master/target
[hadoop@hadoop002 target]$ ll
total 452
-rw-rw-r-- 1 hadoop hadoop 188744 May 12 14:39 hadoop-lzo-0.4.21-SNAPSHOT.jar
4、拷贝到Hadoop的目录中去:
[hadoop@hadoop002 target]$ cp hadoop-lzo-0.4.21-SNAPSHOT.jar /home/hadoop/app/hadoop/share/hadoop/common/