这两天乘周末时间在我的mac机器上配置了CDH4.1.1版的hadoop和hbase。hbase配置在伪分布式的hdfs上。整个配置倒也非常简单。使用CDH版hadoop和hbase比用社区版要简单太多了,需要特别配置的东西也少很多。很快我的hdfs和hbase服务都起来了。但当我要创建一个带snappy压缩的opentsdb表时,却发生了错误。regionserver的日志报告,载入native snappy library出错。这下倒是停出乎我的意料。在公司centos上,明明跑得很好,怎么会出错。一想之下,立刻明白,native lib的格式不对。在linux下应该native library是libsnappy.so,是ELF 64-bit LSB格式。但mac os上应该libsnappy.jnilib,是Mach-O 64-bit格式。于是没多想,从http://code.google.com/p/snappy/上下了1.0.5版,编译一把,生成了libsnappy.dylib。于是将其放在了jni native lib的指定路径下。没想到运行仍是有问题,好生诧异。一查之下,原来CDH自带的是snappy java1.0.4.1版本。于是乎找到http://code.google.com/p/snappy-java/,下载相应版本,呵呵,发现这个版本倒是自带了mac版的libsnappy.jnilib。好,省得自己编译了。然而将该lib放到指定位置后再次创建带snappy压缩的表,仍是报错。于是略有些恍惚,决定到代码里去找线索。看到代码里,才发觉这个水有点深。原来要在正常启用snappy压缩的一个前提必须是libhadoop必须能工作。但是开发社区竟然压根都没有打算要在cgywin和mac os上支持完整版的hadoop native library。My Godness! 具体可以参见JIRA issue: https://issues.apache.org/jira/browse/HADOOP-3659。

这下有点蒙。虽然libhadoop能够workaround,但libsnappy和libhadoop的装载是紧耦合,这个耦合真是有点缺心眼呀!但随念一想,我既然有屠龙刀,为何不用?屠龙刀吗,就是我有完整的源代码,我怕谁?于是乎,开始hack源代码。其实需要改的代码也不是很多,也就以下几个地方:

org.apache.hadoop.io.compress.SnappyCodec,org.apache.hadoop.hbase.util.CompressionTest以及org.apache.hadoop.io.compress.snappy.LoadSnappy。重新编译后,将新编译的jar放到相应位置,重启hdfs和hbase,创建test table,设置COMPRESSION=>'SNAPPY',哈哈,这次正确创建,再无问题。这下终于可以歇口气了。至于libhadoop,要等我有时间在来搞了。估计完整版的libhadoop十分困难,但要搞个hack版的,应该也不会太难。

mac os上配置CDH4.1.1版hbase并启用snappy相关推荐

  1. Mac OS 上配置java开发环境

    在开始本学期的java课程前,我需要先为自己的电脑配置好Java的开发环境.由于电脑是mac操作系统,所以教材上的教程对我并不管用,于是乎开始动手自己查阅网上资料来解决. 1.安装JDK 1.访问Or ...

  2. 如何在苹果Mac OS系统中安装MT4电脑版软件?

    很多投资者可能已经发现了,当前市面上绝大部分的正规交易平台,都在使用MT4电脑版软件作为平台专用的交易工具.而市面上的电脑系统主要又分为微软Windows系统和苹果Mac OS系统,对于微软Windo ...

  3. 1.20——golang环境配置(在Mac OS上)【没用过】

    本节主要为大家讲解如何在Mac OS上安装Go语言开发包,大家可以在Go语言官网下载对应版本的的安装包(https://golang.google.cn/dl/),如下 图所示. 安装Go语言开发包 ...

  4. 在MAC OS 下配置python + Flask ,并支持pyCharm编辑器

    https://www.cnblogs.com/lgphp/p/3841098.html 在MAC OS 下配置python + Flask ,并支持pyCharm编辑器 flask是一个micro ...

  5. mac os maven_如何在Mac OS上安装Maven

    mac os maven 在Mac上安装Maven (Install Maven on Mac) Maven is the most widely used build and project dep ...

  6. mac memcached_如何在Mac OS上安装Memcached Server

    mac memcached Memcached is an open-source high performance distributed memory object caching system. ...

  7. 对比Mac OS上的PF与iptables

    昨天同事问我怎么在Mac上配置策略路由,其实我也不知道!由于自己的实际需求,一直以来都想玩Mac网络功能,可是目光总被它炫烂的外表炫晕!今日同事这么一问我,顿时产生一种研究其究竟的欲望,还好,家里的电 ...

  8. iTerm2终端工具在Mac OS上使用详解

    iTerm2终端工具在Mac OS上使用详解 一.概述 因个人工作需要,使用终端工具进行运维和开发工作,但是Mac OS 自带的终端工具使用堡垒机登录配置不了,而且使用CRT等终端工具每次登录堡垒机都 ...

  9. Mac OS上用item2连接CentOS7

    Mac OS上用item2连接CentOS7 (1)item2:打开preference: (2)选择"Profile": (3)添加: 在 /Users/你的用户名/Librar ...

最新文章

  1. c++并行计算库TBB和PPL的基本用法
  2. could not find the main class错误
  3. Algorithms_入门基础_如何使用最高效的方式来判断一个数是否是2的N次方
  4. jpa 事务嵌套事务_JPA 2 | EntityManagers,事务及其周围的一切
  5. 清华AI画虾师,想当现代齐白石
  6. [Web 前端] React Js img 图片显示默认 占位符
  7. Decorator设计模式(装饰)
  8. html站点地图怎么做,如何制作网站地图,制作网站地图的步骤
  9. 对目录的操作(opendir)
  10. python制作词云图
  11. python裁剪图片并保存
  12. 【C++】1、C++ 11新特性
  13. 报错Cannot mix different versions of joi schemas解决方法
  14. springmvc全局异常处理
  15. python中取对数怎么表示_python中取对数
  16. 搜狗收录批量查询,今天你查到了吗?
  17. java is setter_Java GetterSetter 系列之一:基础
  18. 华为云城市峰会深圳站 · 华为云区块链助力金融创新
  19. 《观察与思考》:相信中国,寻找下一个比尔·盖茨
  20. ios 判断电话号码

热门文章

  1. 2021年度软件企业 100 强榜单(附全名单)
  2. 2017年前端面试经历7-瓜子二手车
  3. 【周末轻松一刻】 GitHub 上的这些沙雕项目
  4. 24小时轮播怎么实现的_四种方式实现轮播图
  5. 关于 Google Cloud 谷歌云那些不得不说的事
  6. 【仓库管理】——动线设计
  7. 公安部交管局:推进城市道路交通信号灯配时智能化工作方案
  8. 自动驾驶仿真(Matlab)
  9. 李代数的求导及扰动模型
  10. 常见函数三部曲之字符串函数