博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop在安装snappy过程中的问题
阅读量:6114 次
发布时间:2019-06-21

本文共 1234 字,大约阅读时间需要 4 分钟。

环境介绍:

  • Linux2.6.32-504.el6
  • hadoop-2.7.3
  • openjdk-1.7

问题:

  测试机中已经有一套搭建好了的Hadoop集群,所以在往生产环境部署Hadoop集群时,直接将测试机中编译好的Hadoop版本上传到生产环境中即可,然后修改下配置文件集群就搭建成功了。但由于当时在搭建集群时没有考虑使用snappy来对文件压缩,所以在Hadoop的动态库中就没有Snappy的库,导致在运行hadoop checknative -a检查集群是否支持snappy时出现了如下情况:

  可以明显看到,在snappy那一项中显示false。所以即使把snappy安装好,Hadoop还是无法支持snappy

原因:

  查找了很多博客,大多数都是说在Hadoop进行源码编译时没有添加对snappy的支持。查看了下测试机上的Hadoop编译好的版本,在lib目录下是有snappy库的,但在线上的版本就是无法支持snappy。最后发现原来测试机以前在部署好后也是没有添加snappy的库。snappy库是最后安装才添加的,而我当时拷贝的是以前编译好的版本,所以就没有snappy库,无法支持sanppy。

解决方法:

  1、安装snappy

  到官网http://code.google.com/p/snappy/ 或者到https://github.com/google/snappy下载源码。目前最新的版本是1.1.7.由于测试环境中使用的是1.1.1,所以下载对应的1.1.1版本就好。

  2、解压安装

  解压tar -zxvf snappy-1.1.1.tar.gz.然后用root用户执行以下三步进行编译安装:

./configuremakemake install

  默认安装到/usr/local/lib/下。查看该目录如下:

 

  编译过程中没有报错,并且可以看见以上动态库,则表示snappy编译安装成功了。

  3、重新编译Hadoop动态库

  重新编译Hadoop动态库来支持snappy(在安装snappy之后进行编译),把重新编译生成的Hadoop动态库替换原来的动态库。命令如下:

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

  说明:-Drequire.snappy=/xxx/xxx/xxx 后面可以跟snappy安装后的路径。如果没有指定路径,则默认在/usr/local/lib下。

  由于测试机上有已经编译好了的动态库所以拷贝到线上环境就好。拷贝到$HADOOP_HOME/lib目录下。

  4、检测

  执行hadoop checknative -a 看现在是否支持snappy,结果如下:

  结束!

转载于:https://www.cnblogs.com/l5623064/p/9889302.html

你可能感兴趣的文章
汉字转拼音 (转)
查看>>
Machine Learning Techniques -6-Support Vector Regression
查看>>
会计基础_001
查看>>
Cordova 开发环境搭建及创建第一个app
查看>>
ajax请求拿到多条数据拼接显示在页面中
查看>>
小程序: 查看正在写的页面
查看>>
dedecms生成文档数据库崩溃 mysql daemon failed to start
查看>>
Linux的50个基本命令
查看>>
Objective-C中创建单例方法的步骤
查看>>
[转]无法安装MVC3,一直卡在vs10-kb2483190
查看>>
Codeforces 520B:Two Buttons(思维,好题)
查看>>
web框架-(二)Django基础
查看>>
Jenkins持续集成环境部署
查看>>
emoji等表情符号存mysql的方法
查看>>
检查磁盘利用率并且定期发送告警邮件
查看>>
MWeb 1.4 新功能介绍二:静态博客功能增强
查看>>
linux文本模式和文本替换功能
查看>>
Windows SFTP 的安装
查看>>
摄像机与绕任意轴旋转
查看>>
rsync 服务器配置过程
查看>>