当前位置: 首页 > news >正文

Hadoop在安装snappy过程中的问题

环境介绍:

  • 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用户执行以下三步进行编译安装:

./configure
make
make 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

相关文章:

  • localStorage和sessionStorage
  • 驻波比
  • 【Python】多进程#181101
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • java 运算符,流程控制语句,键盘录入
  • 【转】在Win7的IIS上搭建FTP服务及用户授权
  • layui-学习02-全局样式
  • Mac OS 系统占用储存空间太大怎么办?
  • 生产管理软件改进生产流程
  • 双十一移动端页面总结
  • PYTHON——多进程:概念
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • Python爬取新浪微博用户信息及微博内容
  • IIS7应用程序池集成和经典的区别
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 4. 路由到控制器 - Laravel从零开始教程
  • Babel配置的不完全指南
  •  D - 粉碎叛乱F - 其他起义
  • dva中组件的懒加载
  • iOS | NSProxy
  • iOS编译提示和导航提示
  • Magento 1.x 中文订单打印乱码
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • windows下使用nginx调试简介
  • 闭包--闭包之tab栏切换(四)
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 开发基于以太坊智能合约的DApp
  • 免费小说阅读小程序
  • 如何实现 font-size 的响应式
  • 设计模式(12)迭代器模式(讲解+应用)
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • postgresql行列转换函数
  • 如何正确理解,内页权重高于首页?
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​linux启动进程的方式
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #Ubuntu(修改root信息)
  • #微信小程序:微信小程序常见的配置传值
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (done) 两个矩阵 “相似” 是什么意思?
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • .equals()到底是什么意思?
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版