此篇是流水帐形式,适全于快餐式阅读,主要原因还是本人没有把相关知识完全整理好,待知识齐全后再整理出来。
消息的存储方式: db , nosql , file 等方式的选择。
消息的可靠性:避免消息的重传和丢失。
系统的可用性:一台机器挂了不影响应用。
消息的生产和消费方式:即推拉模式。
自已目前正在写个简化版的消息系统,希望能把这些功能一步一步加上去。
Nosql 方面:
Redis 是个好的内存存储系统,相比而言,性能也还可以。
KC 封装了分布式的进程通信框架,提供了插件式的 K-V 存储系统。
Leveldb 被认为是读写性能很好,而且代码量小,值得一读。
Erlang 语言的特点:分布式,并发性,函数式语言,内部具有资源调度,进程通信,错误处理以及进程与内存管理等机制,值得学习一下。
接下来,我还会继续关注和学习上面的这些知识,同时也会继续关注 hadoop,hive,hbase 相关的知识。
Hive 权限管理机制:
最新版本的 hive 已经支持类似数据库的权限管理,主要有用户,角色和组的权限支持,有数据库,表,分区,字段级别等的相关权限。
先由管理员或用户通过 grant,revoke 来授予权限,在授予后, hive 会将这些信息保存到相关对象权限的 mysql 表中。
其中用户和组是由客户端在启动时的 linux 上用户和组来标识的。
当用户执行语句后,会进行语法分析和语义分析,得到逻辑执行计划以及优化计划,最终到物理执行计划树。
当前的 Hive 权限校验是在物理执行计划树之前,才做权限校验的。分别从 mysql 表中取出相关信息,对数据库,表,分区,字段进行层次结构来校验。
所以 hive 权限这一块还是有很多地方可以改进和完善的地方,比如校验的位置是否可以提前等。