开启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 一, 集群为什么需要监控系统 总的来说是为了保证系统的稳定性,可靠性,可运维性.具体来说我认为有以下几点: 掌控集群的核心性能指标,了解集 ...
随机推荐
- JS学习笔记(一)DOM事件和监听
将事件绑定到元素身上的三种方法: 1.HTML事件处理程序(不推荐使用) 1 <a onclick="hide()"> 2.传统的DOM事件处理程序 即在目标DOM事件 ...
- EcOS安装
从ubuntu 拷贝到 centos cd /media ls cd ./sf_EcOS 这个目录就是共享目录,名字可能不一样 cp -r studio.zip /home/ 1. 查看版本 cent ...
- 学习 HMM
简介 HMM 中的变量可以分为两组. 第一组是状态变量 \(\{y_i,y_2,\cdots, y_n\}\), 其中 \(y_i \in \mathcal{Y}\) 表示第 \(i\) 时刻的系统状 ...
- Java 初相识
Java是如何出现的呢?这就要回到1991年,那时候随着单片机的发展,出现了很多微型的系统,Sun公司在这个时候就成立的一个项目组,成员就有我们熟知的“Java之父” 詹姆斯·高斯林,起初的目标是为了 ...
- 使开发更便捷——Visual Studio 使用技巧——快捷键
下面是.Net开发中常用的快捷键,熟练使用可以提高开发效率: Ctrl + K + C //注释代码 Ctrl + K + U //取消代码注释 Ctrl + k + d //快速格式化代码 Shif ...
- Web2.0应用程序的7条原则
个人看好Web的发展潜力,本文字摘自<Collective Intelligence 实战> 网络是平台 使用传统许可模式软件的公司或用户必须运行软件.定期更新至最新版本,以及扩展它来满足 ...
- 最大子段和问题Java实现
最大子段和问题 一.问题描述 给定长度为n的整数序列,a[1...n], 求[1,n]某个子区间[i , j]使得a[i]+…+a[j]和最大. 例如(-2,11,-4,13,-5,2)的最大子段和为 ...
- hihocoder 1509 异或排序
题面在这里! 考虑前后两个数 x,y,可以发现S只有在(x xor y)的最高有1位上的取值是要被确定的 (如果x==y那么没有限制),可以推一下什么情况下是1/0. 于是我们模拟一下这个操作,判一判 ...
- windows提权的几种姿势
想象这种画面:你拿到了一台机器上Meterpreter会话了,然后你准备运行 getsystem 命令进行提权,但如果提权没有成功,你就准备认输了吗?只有懦夫才会认输.但是你不是,对吗?你是一个勇者! ...
- OpenGL ES 3.0 图元装配
1. 前言 之前已经把纹理的渲染给弄出来了,但是又遇到一个新的问题,那就是图元装配,比如说我已经把图片给显示出来了,但是呢,并没有做到让它显示到具体的位置,而跟这个位置相关的则需要靠图元装配. 图元装 ...