还没开始写,就有朋友给我评论,总结的简单精辟。

不过再怎么困难,填坑的事情,必须有人来做,对公司和对个人都是有益的。 最近折腾一个多礼拜,总算又让hadoop稳定了。

我这里主要总结下是两个方面(我这里所指的维护范围更广泛):
第一:是运维

第二:是开发


首先说下运维,在一年的使用中,由于操作系统设置不当所导致的各种异常情况,我都碰到了,而且解决的方案都很简单。

对于多数问题来讲,更多的是告诉应该配置那些参数,而不会告诉如果不配置相关参数会导致什么样的问题(这个也只能在实践中去积累了),

一旦是这方面导致,在初期会耗费大量的时间去排查。

另一方面就是运维人员一定要更加的细心仔细,而不是做完就了事,不去审核和验证。另外就是事后多总结,这样才能提高效率。一定要在集群里配置相关的操作系统参数,如下:

第一:修改/etc/hosts文件

第二:关闭防火墙 并修改禁用selinux:     /etc/selinux/config文件,设置“SELINUX=disabled”

第三:修改操作限制参数/etc/security/limits.conf和/etc/sysctl.conf

第四:同步时间

第五:修改/etc/fstab文件

第六:配置ssh免登

 

 

 


再者开发,就开发而言,主要是三个方面:数据存储、数据管理、统计计算

统计计算相对工作量小点(这一年全是使用hive来处理很多统计指标),但是就编写统计脚本而言,其实很有很多方式实现的,但是使用哪种方式最好,

是需要将业务场景结合起来衡量,一般是考虑增量计算,再去考虑全量计算,另外hive去重(是一个吃力不讨好的方式),公司里很多人认为hive就是一个数据库,其实

这种理解是有误的,一旦这种想法产生,那么hive的优势将无法展现。虽然hive也有一些解决办法(如group by的方式),也不一定适合所有的业务场景。通过一年多对hive

的使用和总结,个人认为hive还只是用SQL的方式做统计(用SQL只是方便其他的会SQL语言的人也能快速上手),跟数据库完全不同。

还有一点就是hive的ClosedByInterruptException的处理,目前没想到更好的解决办法,还需要抽个时间好好解决此问题(能解决此问题将会使hive的使用效率更高)。


数据管理是非常重要,它解决数据的正确性,并保证我们的统计计算有意义,不然所有的努力都将成为泡影。我不赞成将数据管理和统计计算混合在一起,这样带来的后期维护的工作量非常大,应该将这两个功能分开,这样统计脚本只关注计算,保证脚本业务逻辑没有错误。而数据管理关注数据正确性,为统计提供正确的数据。关于数据的管理可以考虑使用mysql、oracle、db2等关系型数据库,也可以考虑用HBase、redis、mongodb等NoSQL类型(如果一个都不用,我也没撒好说的,懂的)。将这些工具如何更好地结合起来使用,发挥更大的作用,需要在实践中不断磨练和提高,没有捷径。另一个就是数据如何分类问题,就是热数据、冷数据等,这个就是根据每个表的性质去考虑了。


最后是数据存储,我这里单独来讲,是因为在统计计算和数据管理两块,都涉及到存储。有时候就有人不知道如何区分了。其实也很简单,我个人理解(业务场景不同)数据管理的存储更通用,不光是作为统计脚本的数据源,还是可以为其他应用提供数据服务的,而统计计算这里的存储只是单单存储统计脚本需要的数据(仅此而已)。