体育资讯网

您现在的位置是:首页 > 足球教学 > 正文

足球教学

snappy源码包(snappy)

hacker2022-07-12 16:01:16足球教学69
本文目录一览:1、hadoopsnappy文件怎么取2、

本文目录一览:

hadoop snappy文件怎么取

1. Snappy 压缩算法介绍及集中压缩算法比较

2. Snappy 安装过程及验证

3. Hadoop Snappy 源码编译过程及问题解决方案

4. Hadoop上Hadoop Snappy 安装配置过程及验证

5. Hbase 配置Snappy及验证

6.如何在集群中所有节点部署!

如何安装hadoop本地压缩库

Hadoop安装配置snappy压缩

[一]、 实验环境

CentOS 6.3 64位

Hadoop 2.6.0

JDK 1.7.0_75

[二]、 snappy编译安装

2.1、下载源码

到官网 或者到

下载源码snappy源码包,目前版本为 1.1.1。

2.2、编译安装

解压 tar -zxvf snappy-1.1.1.tar.gz ,然后以 root 用户 执行标准的三步进行编译安装snappy源码包

/configure

make

make install

默认是安装到 /usr/local/lib ,这时在此目录下查看:

 [hadoop@micmiu ~]$ ls -lh /usr/local/lib |grep snappy

-rw-r--r-- 1 root root 229K Mar 10 11:28 libsnappy.a

-rwxr-xr-x 1 root root 953 Mar 10 11:28 libsnappy.la

lrwxrwxrwx 1 root root 18 Mar 10 11:28 libsnappy.so -

libsnappy.so.1.2.0

lrwxrwxrwx 1 root root 18 Mar 10 11:28 libsnappy.so.1 -

libsnappy.so.1.2.0

-rwxr-xr-x 1 root root 145K Mar 10 11:28 libsnappy.so.1.2.0

安装过程没有错误同时能看到上面的动态库,基本表示snappy 安装编译成功。

[三]、Hadoop snappy 安装配置

3.1、hadoop 动态库重新编译支持snappy

hadoop动态库编译参考:Hadoop2.2.0源码编译 和 Hadoop2.x在Ubuntu系统中编译源码 ,只是把最后编译的命令中增加

-Drequire.snappy :

1mvn package -Pdist,native -DskipTests -Dtar -Drequire.snappy

把重新编译生成的hadoop动态库替换原来的。

3.2、hadoop-snappy 下载

目前官网没有软件包提供,只能借助 svn 下载源码:

1svn checkout

hadoop-snappy

3.3、hadoop-snappy 编译

1mvn package [-Dsnappy.prefix=SNAPPY_INSTALLATION_DIR]

PS:如果上面 snappy安装路径是默认的话,即 /usr/local/lib,则此处

[-Dsnappy.prefix=SNAPPY_INSTALLATION_DIR] 可以省略,或者

-Dsnappy.prefix=/usr/local/lib

编译成功后,把编译后target下的 hadoop-snappy-0.0.1-SNAPSHOT.jar 复制到 $HADOOP_HOME/lib

,同时把编译生成后的动态库 copy到 $HADOOP_HOME/lib/native/ 目录下:

1cp -r

$HADOOP-SNAPPY_CODE_HOME/target/hadoop-snappy-0.0.1-SNAPSHOT/lib/native/Linux-amd64-64

$HADOOP_HOME/lib/native/

3.4、编译过程中常见错误处理

① 缺少一些第三方依赖

官方文档中提到编译前提需要:gcc c++, autoconf, automake, libtool, Java 6, JAVA_HOME set,

Maven 3

②错误信息:

[exec] libtool: link: gcc -shared

src/org/apache/hadoop/io/compress/snappy/.libs/SnappyCompressor.o

src/org/apache/hadoop/io/compress/snappy/.libs/SnappyDecompressor.o

-L/usr/local/lib -ljvm -ldl -m64 -Wl,-soname -Wl,libhadoopsnappy.so.0 -o

.libs/libhadoopsnappy.so.0.0.1

[exec] /usr/bin/ld: cannot find -ljvm

[exec] collect2: ld returned 1 exit status

[exec] make: *** [libhadoopsnappy.la] Error 1

或者

[exec] /bin/sh ./libtool --tag=CC --mode=link gcc -g -Wall -fPIC -O2 -m64

-g -O2 -version-info 0:1:0 -L/usr/local/lib -o libhadoopsna/usr/bin/ld: cannot

find -ljvm

[exec] collect2: ld returned 1 exit status

[exec] make: *** [libhadoopsnappy.la] Error 1

[exec] ppy.la -rpath /usr/local/lib

src/org/apache/hadoop/io/compress/snappy/SnappyCompressor.lo

src/org/apache/hadoop/io/compress/snappy/SnappyDecompressor.lo -ljvm -ldl

[exec] libtool: link: gcc -shared

src/org/apache/hadoop/io/compress/snappy/.libs/SnappyCompressor.o

src/org/apache/hadoop/io/compress/snappy/.libs/SnappyDecompressor.o

-L/usr/local/lib -ljvm -ldl -m64 -Wl,-soname -Wl,libhadoopsnappy.so.0 -o

.libs/libhadoopsnappy.so.0.0.1

[ant] Exiting

/home/hadoop/codes/hadoop-snappy/maven/build-compilenative.xml.

这个错误是因为没有把安装jvm的libjvm.so 链接到

/usr/local/lib。如果你的系统时amd64,可以执行如下命令解决这个问题:

1ln -s /usr/java/jdk1.7.0_75/jre/lib/amd64/server/libjvm.so

/usr/local/lib/

[四]、hadoop配置修改

4.1、修改 $HADOOP_HOME/etc/hadoop/hadoop-env.sh,添加:

1export

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native/Linux-amd64-64/

4.2、修改 $HADOOP_HOME/etc/hadoop/core-site.xml:

XHTML

io.compression.codecs

org.apache.hadoop.io.compress.GzipCodec,

org.apache.hadoop.io.compress.DefaultCodec,

org.apache.hadoop.io.compress.BZip2Codec,

org.apache.hadoop.io.compress.SnappyCodec

4.3、修改 $HADOOP_HOME/etc/hadoop/mapred-site.xml 中有关压缩属性,测试snappy:

XHTML

mapreduce.map.output.compress

true 

mapreduce.map.output.compress.codec

org.apache.hadoop.io.compress.SnappyCodec

[五]、测试验证

全部配置好后(集群中所有的节点都需要copy动态库和修改配置),重启hadoop集群环境,运行自带的测试实例

wordcount,如果mapreduce过程中没有错误信息即表示snappy压缩安装方法配置成功。

当然hadoop也提供了本地库的测试方法 hadoop checknative :

[hadoop@micmiu ~]$ hadoop checknative

15/03/17 22:57:59 INFO bzip2.Bzip2Factory: Successfully loaded

initialized native-bzip2 library system-native

15/03/17 22:57:59 INFO zlib.ZlibFactory: Successfully loaded

initialized native-zlib library

Native library checking:

hadoop: true

/usr/local/share/hadoop-2.6.0/lib/native/libhadoop.so.1.0.0

zlib: true /lib64/libz.so.1

snappy: true

/usr/local/share/hadoop/lib/native/Linux-amd64-64/libsnappy.so.1

lz4: true revision:99

bzip2: true /lib64/libbz2.so.1

openssl: true /usr/lib64/libcrypto.so

坑爹的Apache hbase 64位机装配Snappy终于成功了怎么解决

1.安装基本tool

yum install gcc c++, autoconf, automake, libtool, Java 6, JAVA_HOME set, Maven 3,svn

yum Error: Cannot retrieve repository metadata (repomd.xml) for repository: xxxxx

sodu vim /etc/yum.repos.d/xxxxx.repo

将项[flexbox]中的enabled=1改为enabled=0

解决yum源的问题。

2.安装Snappy

下载snappy

wget

然后解压后,执行三步骤:

./configure

make

sudo make install

默认安装路径:/usr/local/lib下面

检查安装是否成功

ls /usr/local/lib/libsn*

3.安装hadoop-snappy

3.1下载hadoop-snappy源码

svn checkout hadoop-snappy

3.2.安装hadoop-snappy

cd hadoop-snappy

mvn package

4.hadooo中部署snappy

解压hadoop-snappy-0.0.1-SNAPSHOT.tar.gz文件,会生成hadoop-snappy-0.0.1-SNAPSHOT目录,拷贝这个目录下相关文件到$HADOOP_HOME/lib/native/Linux-amd64-64

cp -r /hadoop-snappy-0.0.1-SNAPSHOT/lib/native/Linux-amd64-64/* $HADOOP_HOME/lib/native/Linux-amd64-64

将target目录下的hadoop-snappy-0.0.1-SNAPSHOT.jar拷贝到$HADOOP_HOME/lib/目录下。

修改三个文件:

hadoop-env.sh,增加内容如下:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native/Linux-amd64-64/:/usr/local/lib/

修改core-site.xml文件,增加红色字体部分

property

nameio.compression.codecs/name

value

org.apache.hadoop.io.compress.GzipCodec,

org.apache.hadoop.io.compress.DefaultCodec,

org.apache.hadoop.io.compress.BZip2Codec,

com.hadoop.compression.lzo.LzoCodec,

com.hadoop.compression.lzo.LzopCodec,

org.apache.hadoop.io.compress.SnappyCodec

/value

/property

5.往HBase中使用压缩方式

当hadoop的snappy配置成功后,配置hbase就很简单了,两个步骤:

第一步骤复制相关jar包

cp -r $HADOOP_HOME/lib/native/Linux-amd64-64/* $HBASE_HOME/lib/native/Linux-amd64-64/*

这里需要注意下,有些版本在安装过程中,没有这个Linux-amd64-64这个目录,需要手工创建下。

第二步骤配置hbase-env.sh环境变量

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native/Linux-amd64-64/:/usr/local/lib/

export HBASE_LIBRARY_PATH=$HBASE_LIBRARY_PATH:$HBASE_HOME/lib/native/Linux-amd64-64/:/usr/local/lib/

6、重启Hadoop、HBase 检查安装是否成功

cd $HBASE_HOME/bin

./hbase org.apache.hadoop.hbase.util.CompressionTest /tmp/testfile snappy

结果:Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

坑爹的Apache官网提供的是32位编译的,在64位服务器上会有问题。官方竟然没有提供64位版本,要使用得自己编译。

7.编译hadoop2.2.0

7.1 yum install cmake zlib1g-dev pkg-config libssl-dev

7.2 安装protobuf-2.5.0

很多博客的protobuf的安装都是shit.不知道他们实践过没有,老是copy来copy去。

下载protobuf-2.5.0.tar.gz,解压。

sudo vim /etc/profile

#protobuf

export PROTOC_HOME=/opt/protobuf-2.5.0

export PATH=$PATH:$PROTOC_HOME/src

source /etc/profile

$protoc --version

libprotoc.2.5.0

ok就这样。根本不需要什么configure --prefix,make,make install这么麻烦,也不成功。

7.3 下载hadoop2.2.0源码

Download Hadoop sources.

Patch sources:

cd hadoop-2.2.0-src

wget

patch -p0 HADOOP-10110.patch

maven国外服务器可能连不上,maven配置一下国内镜像,在maven目录下,conf/settings.xml,在mirrors/mirros里添加,原本的不要动

mirror

idnexus-osc/id

mirrorOf*/mirrorOf

nameNexusosc/name

url;/url

/mirror

同样,在profiles/profiles内新添加

profile

idjdk-1.7/id

activation

jdk1.4/jdk

/activation

repositories

repository

idnexus/id

namelocal private nexus/name

url;/url

releases

enabledtrue/enabled

/releases

snapshots

enabledfalse/enabled

/snapshots

/repository

/repositories

pluginRepositories

pluginRepository

idnexus/id

namelocal private nexus/name

url;/url

releases

enabledtrue/enabled

/releases

snapshots

enabledfalse/enabled

/snapshots

/pluginRepository

/pluginRepositories

/profile

7.4 编译mvn package -Pdist,native -DskipTests -Dtar -rf :hadoop-common

编译完成了后,cd hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0

file 一下native下面的so文件

将 native/*再cp 到$hadoop_home/bin的各个data node的native/* 和native/Linux-amd64-64下。

重新运行测试,结果

发表评论

评论列表

  • 囤梦桔烟(2022-07-13 01:19:21)回复取消回复

    /snappy/.libs/SnappyDecompressor.o -L/usr/local/lib -ljvm -ldl -m64 -Wl,-soname -Wl,libhadoopsnappy.so.0 -o .libs/libhadoopsnappy.so.0.0.1[exec] /

  • 囤梦绮筵(2022-07-13 00:00:40)回复取消回复

    /srcsource /etc/profile$protoc --versionlibprotoc.2.5.0ok就这样。根本不需要什么configure --prefix,make,make install这么麻烦,也不成功。7.3 下载hadoop2.2.0源码Downl

  • 慵吋路弥(2022-07-12 20:42:37)回复取消回复

    sh环境变量export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native/Linux-amd64-64/:/usr/local/lib/export HBA