MacOS 中安装hbase/krb5 npm包时openssl找不到头文件的问题

在MacOS中安装一个npm的包:Hbase,但是却遇见了一些问题,后来几天解决了,否则的话就要换npm包了,但是hbase包是远远排在其他的几个开源包之上的,我们还是很希望使用这个包,不想换npm包,而且其他的包对hbase的版本要求也很严格。之前一直都没安装成功,后来解决了,这里做个总结。 安装hbase出错:

因为它依赖krb5,而krb5还依赖openssl,默认的macos自带openssl但是版本比较老,所以这里我们使用brew来安装openssl

上面提示,如果编译器需要这些依赖文件,那么你需要在在编译之前执行lib和include的设置。因为krb5是下载源码之后编译后安装的,而且krb5还依赖这些文件,不管你使用brew install krb5还是下载源码安装,都会有这个问题。 以下以下载krb5源码后编译安装为例: 1)设置lib的路径 2)设置include文件的路径 3)执行krb5的安装

4)执行hbase的安装 到这里,我们看到hbase这个npm包已经成功安装好了!

Continue reading »

NodeJS->HBase(5)存储设计和数据访问

因为在前面的第4节中,涉及的内容主要是从Redis中校验数据和缓存数据更新,所以这里把HBase给拆分出来了,单独的放在这个章节,便于后续对这HBase内容和线索的扩张学习。 HBase被设计成为用来存储百亿行、百万列(高表、宽表、简称又长又粗)的结构化的数据,但是HBase里面数据存储和RowKey设计是有一定讲究的。因此,在设计这个HBase表去存储车辆运行数据的时候,要好好想想怎么样才能最高效的查询到我们要的数据,毕竟写入数据的最终目的是为了查询。 还有就是,永远不要指望使用HBase来实现RDBMS那样的灵活的查询功能(例如,表和表的join,这算SQL最基本的要求了吧!表如果不能用来join,那还要它干嘛,是不是都是这么想的),如果有这个想法,就尽早死了这条心,有些事情坚持很重要的,但是也要懂得放弃。 最后,HBase的目的是为了高并发的简单读和写和海量存储设计的,复杂的关系查询和多维计算天生就是不是它能干的,因此它还有有个好搭档Hive,这个后面再说,兄弟两关系不错。如果合二为一的话就是RDBMS了。

Continue reading »