开启hadoop和Hbase集群的lzo压缩功能(转)
原文链接:开启hadoop和Hbase集群的lzo压缩功能
问题导读:
1.如何启动hadoop、hbase集群的压缩功能?
2.lzo的作用是什么?
3.hadoop配置文件需要做哪些修改?
首先我们明白一个概念:
LZO 是致力于解压速度的一种数据压缩算法,LZO 是 Lempel-Ziv-Oberhumer 的缩写。
安装前:
# yum -y install lzo-devel zlib-devel gcc autoconf automakelibtool
lzo-2.06.tar.gz下载地址:Index of /opensource/lzo/download
tar -zxvf lzo-2.06.tar.gz
cd lzo-2.06
# export CFLAGS=-m64 注:如果为32位系统改为export CFLAGS=-m32
#./configure --enable-shared
# make
# make install
库文件被默认安装到了/usr/local/lib,我们需要进一步指定lzo库文件的路径,两个方法都可以:
1) 拷贝/usr/local/lib目录下的lzo库文件到/usr/lib(32位平台),或/usr/lib64(64位平台)
- #cp /usr/local/lib/liblzo2.* /usr/lib64
复制代码
2)在/etc/ld.so.conf.d/目录下新建lzo.conf文件,写入lzo库文件的路径,然后运行/sbin/ldconfig -v,使配置生效
- #vi /etc/ld.so.conf.d/lzo.conf
- /usr/local/lib
- # /sbin/ldconfig -v
复制代码
2. 编译安装Hadoop Lzo本地库以及Jar包,这里采用twitter维护的,从这里下载
https://github.com/twitter/hadoop-lzo
修改pom.xml:
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <hadoop.current.version>2.1.0-beta</hadoop.current.version>
- <hadoop.old.version>1.0.4</hadoop.old.version>
- </properties>
复制代码
修改为
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <hadoop.current.version>2.2.0</hadoop.current.version>
- <hadoop.old.version>1.0.4</hadoop.old.version>
- </properties>
复制代码
hadoop-lzo-master.zip
- cd hadoop-lzo-master
- export CFLAGS=-m64 注:如果为32位系统改为export CFLAGS=-m32
- export CXXFLAGS=-m64 注:如果为32位系统改为export CXXFLAGS=-m32
- export C_INCLUDE_PATH=/usr/local/include/lzo
- export LIBRARY_PATH=/usr/local/lib
- mvn clean package -Dmaven.test.skip=true
复制代码
接着把target/native/Linux-amd64-64/lib下的全部文件拷贝到${HADOOP_HOME}/lib/native,或者
- cp /build/native/Linux-amd64-64/lib/* $HADOOP_HOME/lib/native/
- cp target/hadoop-lzo-0.4.20-SNAPSHOT.jar /opt/hadoop-2.2.0/share/hadoop/common/lib
复制代码
对于Hbase启用LZO
- cp $HADOOP_HOME/lib/native/Linux-amd64-64/* $HBASE_HOME/lib/native/Linux-amd64-64
复制代码
- export HBASE_LIBRARY_PATH=$HBASE_LIBRARY_PATH:$HBASE_HOME/lib/native/Linux-amd64-64/:/usr/local/lib/
复制代码
同步hadoop 和hbase集群
3.配置文件修改
在hadoop-env.sh中加入
- export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native
复制代码
core-site.xml
- <!-- 配置 Hadoop压缩包 -->
- <property>
- <name>io.compression.codecs</name><value>org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.BZip2Codec,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>
复制代码
mapred-site.xml
- <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>
- <property>
- <name>mapred.child.env</name>
- <value>LD_LIBRARY_PATH=/usr/local/lib</value>
- </property>
复制代码
同步hadoop-env.sh,core-site.xml, mapred-site.xml到集群
4. 安装lzop
下载地址:http://www.lzop.org/download/
LZOP是使用lzo库写的一个程序,通过shell命令直接可以压缩、解压缩文件。
- tar zxvf lzop-1.03.tar.gz
- cd
- # exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
- # ./configure
- # make
- # makeinstall
复制代码
用一下lzop的压缩解压功能,成功安装后可直接使用lzop命令对文件进行解压缩操作了。
# 压缩
- [hadoop@master1 ~]$ lzop -v test1.txt
- compressing test1.txt into test1.txt.lzo
复制代码
#上传到hdfs
- [hadoop@master1 ~]$ hadoop fs -put *.lzo /in
复制代码
#给Lzo文件建立Index
- hadoop
jar/opt/hadoop-2.2.0/share/hadoop/common/lib/hadoop-lzo-0.4.20-SNAPSHOT.jarcom.hadoop.compression.lzo.LzoIndexer
/in
复制代码
#运行一个wordcount程序
- hadoop jar /home/hadoop/wordcount.jar org.apache.hadoop.examples.WordCount /input1 /out1
复制代码
正常:
14/02/23 18:53:14 INFOlzo.GPLNativeCodeLoader: Loaded native gpl library from the embedded binaries
14/02/23 18:53:14 INFO lzo.LzoCodec:Successfully loaded &
initialized native-lzo library [hadoop-lzo
rev478aa845e11bbbeeb9b8326e733cd20a06d2cb3a]
开启hadoop和Hbase集群的lzo压缩功能(转)的更多相关文章
- hadoop(八) - hbase集群环境搭建
1. 上传hbase安装包hbase-0.96.2-hadoop2-bin.tar.gz 2. 解压 tar -zxvf hbase-0.96.2-hadoop2-bin.tar.gz -C /clo ...
- 配置hadoop集群的lzo压缩
MR-Job中使用lzop详见MR案例:Job中使用Lzo压缩 1). 配置前的环境准备 # yum -y install lzo-devel zlib-devel gcc autoconf auto ...
- 使用ganglia监控hadoop及hbase集群
一.Ganglia简介 Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测量数以千计的节点.每台计算机都运行一个收集和发送度量数据(如处理器速度.内存使用量等)的名为 gm ...
- docker应用-3(搭建hadoop以及hbase集群)
要用docker搭建集群,首先需要构造集群所需的docker镜像.构建镜像的一种方式是,利用一个已有的镜像比如简单的linux系统,运行一个容器,在容器中手动的安装集群所需要的软件并进行配置,然后co ...
- 第十二章 Ganglia监控Hadoop及Hbase集群性能(安装配置)
1 Ganglia简介 Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测量数以千计的节点.每台计算机都运行一个收集和发送度量数据(如处理器速度.内存使用量等)的名为 gm ...
- 使用ganglia监控hadoop及hbase集群 分类: B3_LINUX 2015-03-06 20:53 646人阅读 评论(0) 收藏
介绍性内容来自:http://www.uml.org.cn/sjjm/201305171.asp 一.Ganglia简介 Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测 ...
- 设置Hadoop+Hbase集群pid文件存储位置
有时候,我们对运行几天或者几个月的hadoop或者hbase集群做停止操作,会发现,停止命令不管用了,为什么呢? 因为基于java开发的程序,想要停止程序,必须通过进程pid来确定,而hadoop和h ...
- Phoenix连接安全模式下的HBase集群
Phoenix连接安全模式下的HBase集群 HBase集群开启安全模式(即启用kerberos认证)之后,用户无论是用HBase shell还是Phoenix去连接HBase都先需要通过kerber ...
- HBase 集群监控系统构建
HBase 集群监控系统构建 标签(空格分隔): Hbase 一, 集群为什么需要监控系统 总的来说是为了保证系统的稳定性,可靠性,可运维性.具体来说我认为有以下几点: 掌控集群的核心性能指标,了解集 ...
随机推荐
- Educational Codeforces Round 45 (Rated for Div. 2) G - GCD Counting
G - GCD Counting 思路:我猜测了一下gcd的个数不会很多,然后我就用dfs回溯的时候用map暴力合并就好啦. 终判被卡了MLE..... 需要每次清空一下子树的map... #inc ...
- Gitlab-通过API管理项目
Gitlab有一个非常强大的API,几乎可以通过API管理在Gitlab服务器中的所有项目. 在这里我们只是测试终端点的API, 因此我们需要一个程序来进行测试 .在这里我使用的是针对Google浏览 ...
- 百道CTF刷题记录(一)
简介 最近在刷CTF题,主攻Web,兼职Misc Shiyanbar 0x01 简单的登陆题 简单概括: 考点: %00截断正则 CBC字节翻转攻击 难度: 难 WP:https://blog.csd ...
- Mac 上关于TFTP Server 软件的使用
软件下载地址 http://ww2.unime.it/flr/tftpserver/ 软件下载后进行安装,打开软件, 如果出现如下图所示情况 然后当你点击蓝色的Fix 按钮时,如果又出现如下提示 这时 ...
- 1019 General Palindromic Number (20)(20 point(s))
problem A number that will be the same when it is written forwards or backwards is known as a Palind ...
- android 视频 2017
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha
- Codeforces 1085G(1086E) Beautiful Matrix $dp$+树状数组
题意 定义一个\(n*n\)的矩阵是\(beautiful\)的,需要满足以下三个条件: 1.每一行是一个排列. 2.上下相邻的两个元素的值不同. 再定义两个矩阵的字典序大的矩阵大(从左往右从上到下一 ...
- 502 解决:[WARNING] fpm_children_bury
查过网上的资源,基本都是认为是php线程打开文件句柄受限导致的错误.具体的解决的办法如下: 1.提升服务器的文件句柄打开打开 /etc/security/limits.conf : (增加) * ...
- nodejs环境使用jshint
一.概述jshint是检测JavaScript语法问题的工具,可以根据自己的需要配置检测规则. 二.安装npm install jshint -g一般全局安装就可以了,可以在任何目录下使用jshint ...
- libuuid.so: cannot open shared object file: No such file or directory
在玩ngx-lua时候有个 resty-uuid 需要引用 libuuid.so 动态库 打印log提示信息是这样的: libuuid.so: cannot open shared object fi ...