欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

hadoop最近心得文档整理

程序员文章站 2022-04-24 14:01:14
...

apache和 cloudera 版本的区别 apache在2013年4月25日发布了 hadoop 2.0.4aplha版本,依然不能用于生产环境。 cloudera 基于 hadoop 0.20版本发布了CDH4,实现了namenode高可用,新的MR框架MR2(也被称为YARN),同时支持MR与MR2的切换,cloudera还不建议在生产

apache和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结构不够了解,排查起来会出现一定困难。

hive如何进行权限管理

对于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如何进行性能调优

网上有很多hadoop性能优化的文章,都提到了如何优化集群,我们不能照搬网上的配置,因为网络环境,服务器等的多样性,使得我们需要根据自己的情况,进行集群参数的设置。
lzo压缩即可以减少集群数据存储压力,也可以提高mapper端到reduce的数据传输压力,提高job运行效率。
hadoop原生对gzip进行支持,gzip的压缩比远高于lzo,但是在运行的过程中,其只能运行在一个task上的缺点,造成集群能力大幅下降,而lzo原生对于分块的支持,大大提供了MR执行
的效率,同时节省了磁盘空间,可以很好的提高集群性能。gzip压缩也适用于一部分非常冷的数据,对于经常不进行使用的历史数据,可以采用gzip压缩的方式,进行处理,虽然造成在
处理查询历史数据的时候会慢,但是可以减少集群磁盘占用,而且实际上很冷的数据可能一年都用不到一次。