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 »

Nginx->NodeJS->Redis开发测试(4)接收/解析/验证

很多东西,仅仅只是为了用而用,不去讨论这个软件组件存在的必要性和可替代性。 接下来,我们将YY一下,数据从车载的TBOX/OBD等设备发送出来之后的流程,短信网关通常采用中国移动、联通的服务。这部分对于SMS短信进行规则性解析暂时还不是很了解,所以暂时先不无法覆盖这部分的内容。 1/ 车辆TBOX/OBD上报SMS消息给应用网关 从车载TBOX中发出的短信长什么样? 我们假设一把先,它就是来自一个汽车里面的盒子,里面插了个SIM卡,然后每隔10秒就发个短消息给某个专用的特定号码而已。对于整车厂来说,这个盒子可能是固定在车内的,拿不出来的,并非是后来找个地方安装上去的。 在我们的例子中,则没有这样的外置的盒子,都是默认盒子是整车厂直接默认就安装在车内的。 这里找个例子,中国移动出的路尚OBD盒子,直接插在汽车的OBD接口上,数据就直接上载到云了,下个应用App就可以直接看到自己车辆的所有的数据。 OBD盒子的汽车上的接口,汽车启动就开始传输数据了到中国移动OneNET网关了。(大众的车貌似都是在A的这个位置) 如果发过来短信的号码不在自己的SIM卡管理范围中,可能是别人发错了,或者是一个欺诈或者虚假消息,可以直接删除这个消息。还有其他的一些规则校验,都需要实现,这些内容其实属于SIM管理的一些功能。

Continue reading »