Hadoop优化

hadoop优化

限于喜欢 提交于 2021-02-16 23:18:29
从网上搜集的各种优化,标记下。 1. 网络带宽 Hadoop集群的服务器在规划时就在统一的交换机下,这是在官方文档中建议的部署方式。 但是我们的这台交换机和其他交换机的互联带宽有限,所以在客户端遇到了HDFS访问速度慢的问题。 把操作集群的客户端也联入DataNode的交换机内部,解决了这个问题。 2. 系统参数 对ulimit -c的修改也是官方文档建议的修改,在集群只有10台服务器时,并没有遇到问题。 随着机器增加和任务增加,这个值需要改的更大。 3. 配置文件管理 这个集群用的是Cloudera发行的版本,配置文件默认存在/etc/hadoop/conf位置。这是一个只有root才能修改的位置。 为了修改方便,我把配置文件统一保存在一台机器上,修改后用脚本分发。保证所有服务器都是统一的配置。 4. mapred.tasktracker.map.tasks.maximum 这个参数控制每个TaskTracker同时运行的Map任务数。 以前的设置是和CPU核数相同的,偶尔遇到任务挤占DataNode资源的问题。 现在改成map+reduce+1==num_cpu_cores。 5. 严格控制root权限 Cloudera的发行版会创建一个hadoop用户,各种守护进程都应该以这个用户运行。 曾经有误操作(/usr/lib/hadoop/bin/hadoop datanode &

Mapreduce和yarn-内存设置

本秂侑毒 提交于 2020-02-28 17:29:00
hadoop2.5,kylin2.1,ambari 在使用kylin的cube做build数据时,运行mapreduce的job,总会报jvm内存溢出。 于是就想到优化配置参数,查了很多资料,最后总结了一下。 1.Yarn里只有一个RM(ResourceManager)作为集群管理和统一资源管理和调度 AM(ApplicationMaster):负责应用程序管理 NM(NodeManager):负责单节点资源管理 Scheduler:负责集群调度 Container:对(节点,内存,CPU)等进行资源抽象 以上: 设计到内存配置 yarn: yarn.nodemanager.resource.memory.mb yarn.scheduler.minimum-allocation-mb yarn.scheduler.maximum-allocation-mb mapreduce: mapreduce.map.memory.mb mapreduce.reduce.memory.mb mapreduce.reduce.java.opts mapreduce.map.java.opts mapreduce.task.io.sort.mb 在配置上:例如 通过 free -g 查看内存:20g yarn.nodemanager.resource.memory.mb=16g yarn