时间:2021-07-01 10:21:17 帮助过:55人阅读
apache和 cloudera 版本的区别 apache在2013年4月25日发布了 hadoop 2.0.4aplha版本,依然不能用于生产环境。 cloudera 基于 hadoop 0.20版本发布了CDH4,实现了namenode高可用,新的MR框架MR2(也被称为YARN),同时支持MR与MR2的切换,cloudera还不建议在生产
apache在2013年4月25日发布了hadoop2.0.4aplha版本,依然不能用于生产环境。
cloudera基于hadoop0.20版本发布了CDH4,实现了namenode高可用,新的MR框架MR2(也被称为YARN),同时支持MR与MR2的切换,cloudera还不建议在生产环境使用MR2。在MR2里面提供了
一个Resource Manager,负责资源管理,每个slave Node运行一个node manager,负责监控节点资源,并上报给Resource Manager。每一个新的Job被命名为一个application,每一个
Application会被分配一个Application Master,运行在slave node上,负责向Resource Manager协调资源,管理application生命周期,这样解除了MR1中JobTracker任务集中性,将任务
的执行由队列运行改为并发运行,更好的利用了集群资源。
现在一些大公司,比如新浪,已经将hadoop集群切换到CDH4的版本,用于生产环境。同时,CDH4提供了引导安装等方式,大大提高了运维的能力。但是CDH4引导安装的方式,会创建多个
用户及目录,如果出现未知问题,如果对CDH结构不够了解,排查起来会出现一定困难。
对于hadoop及hive来说,都提供了有限的权限控制功能。但是针对每个公司特定的需求,并不一定能够满足。所以需要对hive的权限控制进行扩展。在当前情况下,有3种方案可以进行
使用。
1) hive0.10可以通过元数据控制权限。授权方式是通过用户,组,角色的方式进行。可以通过类似于mysql中的创建用户,组,角色,并授予权限。
2) 通过控制元数据的方式进行,对于特定的hivedb,使用特定的mysql等数据库存储元数据,这样就可以完全的隔离相关的操作,以提升数据的安全性。
3) 通过对hive源码进行扩展来实现,针对hive的权限建立一个权限管理工程,负责生成用户,并给用户赋予不同db,table,分区,同一个任务可操作MR task数量上限,及控制特定列
的权限。元数据使用同一份,还是会出现一定的风险,现在hadoop集群的管理一般是由统一的部门进行维护,可以在hive中配置元数据的时候,指定2种用户,一种拥有可读写能力,一种
只拥有只读权限,可以防止使用者误操作造成数据丢生等问题,同时针对hadoop集群要配置垃圾回收机制(core-site.xml中的fs.trash.interval),用于减小误删除造成的影响。
网上有很多hadoop性能优化的文章,都提到了如何优化集群,我们不能照搬网上的配置,因为网络环境,服务器等的多样性,使得我们需要根据自己的情况,进行集群参数的设置。
lzo压缩即可以减少集群数据存储压力,也可以提高mapper端到reduce的数据传输压力,提高job运行效率。
hadoop原生对gzip进行支持,gzip的压缩比远高于lzo,但是在运行的过程中,其只能运行在一个task上的缺点,造成集群能力大幅下降,而lzo原生对于分块的支持,大大提供了MR执行
的效率,同时节省了磁盘空间,可以很好的提高集群性能。gzip压缩也适用于一部分非常冷的数据,对于经常不进行使用的历史数据,可以采用gzip压缩的方式,进行处理,虽然造成在
处理查询历史数据的时候会慢,但是可以减少集群磁盘占用,而且实际上很冷的数据可能一年都用不到一次。
原文地址:hadoop最近心得文档整理, 感谢原作者分享。