- 浏览: 2182554 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (682)
- 软件思想 (7)
- Lucene(修真篇) (17)
- Lucene(仙界篇) (20)
- Lucene(神界篇) (11)
- Solr (48)
- Hadoop (77)
- Spark (38)
- Hbase (26)
- Hive (19)
- Pig (25)
- ELK (64)
- Zookeeper (12)
- JAVA (119)
- Linux (59)
- 多线程 (8)
- Nutch (5)
- JAVA EE (21)
- Oracle (7)
- Python (32)
- Xml (5)
- Gson (1)
- Cygwin (1)
- JavaScript (4)
- MySQL (9)
- Lucene/Solr(转) (5)
- 缓存 (2)
- Github/Git (1)
- 开源爬虫 (1)
- Hadoop运维 (7)
- shell命令 (9)
- 生活感悟 (42)
- shell编程 (23)
- Scala (11)
- MongoDB (3)
- docker (2)
- Nodejs (3)
- Neo4j (5)
- storm (3)
- opencv (1)
最新评论
-
qindongliang1922:
粟谷_sugu 写道不太理解“分词字段存储docvalue是没 ...
浅谈Lucene中的DocValues -
粟谷_sugu:
不太理解“分词字段存储docvalue是没有意义的”,这句话, ...
浅谈Lucene中的DocValues -
yin_bp:
高性能elasticsearch ORM开发库使用文档http ...
为什么说Elasticsearch搜索是近实时的? -
hackWang:
请问博主,有用solr做电商的搜索项目?
Solr中Group和Facet的用法 -
章司nana:
遇到的问题同楼上 为什么会返回null
Lucene4.3开发之第八步之渡劫初期(八)
今天散仙写了个MapReduce作业,目的是读数据库里面多个表的数据,然后在JAVA中根据具体的业务情况做过滤,并把符合数据的结果写入到HDFS上,在Eclipse里面提交作业进行调试的时候,发现在Reduce阶段,总是抛出Java heap space的异常,这异常明显,就是堆内存溢出造成的,然后散仙仔细看了下业务块的代码,在Reduce里读数据库的时候,有几个表的返回数据量比较大约有50万左右,因为具体的数量不会太大,所以没有采用分页来返回,读完后数据,采用Map集合封装,在业务处理的一段时间里,一直会停留在内存里,原来的mapred-site.xml里面的配置reduce内存比较小,只需调大此处内存即可。
hadoop2.2内存控制的几个重要参数:
如果出现异常:
可以调整yarn.nodemanager.vmem-pmem-ratio 的比率,默认是2.1,或者加大程序reduce的运行个数进行尝试,这个比率的控制影响着虚拟内存的使用,当yarn计算出来的虚拟内存,比在mapred-site.xml里的mapreduce.map.memory.mb或mapreduce.reduce.memory.mb的2.1倍还要多时,就会发生上面截图中的异常,而默认的mapreduce.map.memory.mb或
mapreduce.reduce.memory.mb得初始大小为1024M,然后根据异常中的yarn自身根据运行环境推算出来的虚拟内存来做比较,发现比1024*2.1还要大,所以就会由NodeManage守护进程kill掉AM容器,从而导致整个MR作业运行失败,现在我们只需要调大这个比率即可,避免发生这种异常。具体调大多小,可根据具体情况来设置。
最后备注一下,hadoop的环境变量的脚本配置java.sh:
关闭虚拟内存检查的参数,在阿狸的一篇博客上看过,貌似不起作用,你们用这个生效了吗?
不能笼统的说,对yarn的性能有多少影响,这个比例只是yarn根据map或reduce的堆内存乘以特定的比例(默认是2.1)推测出来的虚拟内存,有时候这个推测出来的虚拟内存,会影响程序运行,造成NM判断内存不够用的假象,所以会kill掉这个任务,但在内存吃紧的情况下,或短暂时间内不能加的时候,就可以调动这个比例,使得程序可以正常执行,跟yarn的性能没啥关系
<property> <name>mapreduce.map.memory.mb</name> <value>215</value> </property> <property> <name>mapreduce.map.java.opts</name> <value>-Xmx215M</value> </property> <property> <name>mapreduce.reduce.memory.mb</name> <value>1024</value> </property> <property> <name>mapreduce.reduce.java.opts</name> <value>-Xmx1024M</value> </property>
hadoop2.2内存控制的几个重要参数:
YARN yarn.scheduler.minimum-allocation-mb yarn.scheduler.maximum-allocation-mb yarn.nodemanager.vmem-pmem-ratio yarn.nodemanager.resource.memory.mb Mapreuce Map Memory mapreduce.map.java.opts mapreduce.map.memory.mb Reduce Memory mapreduce.reduce.java.opts mapreduce.reduce.memory.mb
如果出现异常:
Container [pid=17645,containerID=container_1415210272486_0013_01_000004] is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB physical memory used; 1.6 GB of 2.1 GB virtual memory used. Killing container. Dump of the process-tree for container_1415210272486_0013_01_000004 :
可以调整yarn.nodemanager.vmem-pmem-ratio 的比率,默认是2.1,或者加大程序reduce的运行个数进行尝试,这个比率的控制影响着虚拟内存的使用,当yarn计算出来的虚拟内存,比在mapred-site.xml里的mapreduce.map.memory.mb或mapreduce.reduce.memory.mb的2.1倍还要多时,就会发生上面截图中的异常,而默认的mapreduce.map.memory.mb或
mapreduce.reduce.memory.mb得初始大小为1024M,然后根据异常中的yarn自身根据运行环境推算出来的虚拟内存来做比较,发现比1024*2.1还要大,所以就会由NodeManage守护进程kill掉AM容器,从而导致整个MR作业运行失败,现在我们只需要调大这个比率即可,避免发生这种异常。具体调大多小,可根据具体情况来设置。
最后备注一下,hadoop的环境变量的脚本配置java.sh:
export PATH=.:$PATH export FSE_HOME="/home/search/fse2" export FSE_CONF_DIR=$FSE_HOME/conf export PATH=$PATH:$FSE_HOME/bin user="search" export JAVA_HOME="/usr/local/jdk" export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$PATH:$JAVA_HOME/bin export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export HADOOP_HOME=/home/search/hadoop export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export CLASSPATH=.:$CLASSPATH:$HADOOP_COMMON_HOME:$HADOOP_COMMON_HOMEi/lib:$HADOOP_MAPRED_HOME:$HADOOP_HDFS_HOME:$HADOOP_HDFS_HOME #export HADOOP_HOME=/home/$user/hadoop #export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop #export CLASSPATH=.:$CLASSPATH:$HADOOP_HOME/lib #export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export ANT_HOME=/usr/local/ant export CLASSPATH=$CLASSPATH:$ANT_HOME/lib export PATH=$PATH:$ANT_HOME/bin export MAVEN_HOME="/usr/local/maven" export CLASSPATH=$CLASSPATH:$MAVEN_HOME/lib export PATH=$PATH:$MAVEN_HOME/bin
评论
5 楼
qindongliang1922
2014-11-06
wwwwxiaoxiu 写道
也可以关闭物理内存与虚拟内存的检测,貌似*2.1的结果不是很准
<!--关闭java虚拟机内存检查-->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!--关闭虚拟机内存检查-->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<!--关闭java虚拟机内存检查-->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!--关闭虚拟机内存检查-->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
关闭虚拟内存检查的参数,在阿狸的一篇博客上看过,貌似不起作用,你们用这个生效了吗?
4 楼
wwwwxiaoxiu
2014-11-06
也可以关闭物理内存与虚拟内存的检测,貌似*2.1的结果不是很准
<!--关闭java虚拟机内存检查-->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!--关闭虚拟机内存检查-->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<!--关闭java虚拟机内存检查-->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!--关闭虚拟机内存检查-->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
3 楼
tenght
2014-11-06
嗯,好滴,谢谢~
2 楼
qindongliang1922
2014-11-06
tenght 写道
你好,yarn.nodemanager.vmem-pmem-ratio 的比率指的是虚拟内存/实际内存吧?如果把这个比率调小,对于yarn的性能有怎样的影响?
不能笼统的说,对yarn的性能有多少影响,这个比例只是yarn根据map或reduce的堆内存乘以特定的比例(默认是2.1)推测出来的虚拟内存,有时候这个推测出来的虚拟内存,会影响程序运行,造成NM判断内存不够用的假象,所以会kill掉这个任务,但在内存吃紧的情况下,或短暂时间内不能加的时候,就可以调动这个比例,使得程序可以正常执行,跟yarn的性能没啥关系
1 楼
tenght
2014-11-06
你好,yarn.nodemanager.vmem-pmem-ratio 的比率指的是虚拟内存/实际内存吧?如果把这个比率调小,对于yarn的性能有怎样的影响?
发表评论
-
Apache Flink在阿里的使用(译)
2019-02-21 21:18 1171Flink是未来大数据实时 ... -
计算机图形处理的一些知识
2018-04-25 17:46 1227最近在搞opencv来做一些 ... -
如何在kylin中构建一个cube
2017-07-11 19:06 1264前面的文章介绍了Apache Kylin的安装及数据仓 ... -
Apache Kylin的入门安装
2017-06-27 21:27 2142Apache Kylin™是一个开源的分布式分析引擎,提供 ... -
ES-Hadoop插件介绍
2017-04-27 18:07 1990上篇文章,写了使用spark集成es框架,并向es写入数据,虽 ... -
如何在Scala中读取Hadoop集群上的gz压缩文件
2017-04-05 18:51 2128存在Hadoop集群上的文件,大部分都会经过压缩,如果是压缩 ... -
如何收集项目日志统一发送到kafka中?
2017-02-07 19:07 2790上一篇(http://qindongliang.iteye. ... -
Storm组件介绍
2016-08-12 20:28 1084(1)Topologies 拓扑 解 ... -
Hue+Hive临时目录权限不够解决方案
2016-06-14 10:40 4700安装Hue后,可能会分配多个账户给一些业务部门操作hive,虽 ... -
Hadoop的8088页面失效问题
2016-03-31 11:21 4447前两天重启了测试的hadoop集群,今天访问集群的8088任 ... -
Hadoop+Hbase集群数据迁移问题
2016-03-23 21:00 2522数据迁移或备份是任何 ... -
如何监控你的Hadoop+Hbase集群?
2016-03-21 16:10 4917前言 监控hadoop的框架 ... -
Logstash与Kafka集成
2016-02-24 18:44 11620在ELKK的架构中,各个框架的角色分工如下: Elastic ... -
Kakfa集群搭建
2016-02-23 15:36 2644先来整体熟悉下Kafka的一些概念和架构 (一)什么是Ka ... -
大数据日志收集框架之Flume入门
2016-02-02 14:25 4185Flume是Cloudrea公司开源的一款优秀的日志收集框架 ... -
Apache Tez0.7编译笔记
2016-01-15 16:33 2520目前最新的Tez版本是0.8,但还不是稳定版,所以大家还 ... -
Bug死磕之hue集成的oozie+pig出现资源任务死锁问题
2016-01-14 15:52 3830这两天,打算给现有的 ... -
Hadoop2.7.1和Hbase0.98添加LZO压缩
2016-01-04 17:46 26021,执行命令安装一些依赖组件 yum install -y ... -
Hadoop2.7.1配置NameNode+ResourceManager高可用原理分析
2015-11-11 19:51 3176关于NameNode高可靠需要配置的文件有core-site ... -
设置Hadoop+Hbase集群pid文件存储位置
2015-10-20 13:40 2847有时候,我们对运行几 ...
相关推荐
在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理...随着对Hadoop理解的深入,你还可以探索更高级的主题,如HA(高可用性)、数据均衡、监控和调优等。不断学习和实践,你将成为一名出色的Hadoop专家。
这些内容通常涉及Hive的分区策略、Tez或Spark执行引擎的配置,以及Hive与Hadoop的性能调优。 **10. 性能优化** 为了提高Hive的性能,你可以考虑使用ORCFile或Parquet格式存储数据,这两个格式都支持列式存储,可以...
总的来说,Oozie ext-2.2.zip是一个为Oozie用户量身定制的增强工具,它通过改善Web UI的交互性和功能性,极大地提升了用户在管理Hadoop工作流时的效率和满意度。如果你正在使用Oozie进行大数据作业的调度,那么安装...
通过上述知识点的学习,读者可以全面了解Hadoop的基本概念、安装配置方法、数据处理流程以及性能调优技巧。此外,本书还提供了丰富的实战案例,帮助读者将理论知识应用于实际场景中。掌握这些内容后,无论是从事...
**2.2 配置 hadoop-env.sh 文件** - 设置JDK路径:`export JAVA_HOME=/usr/java/jdk1.7.0_79` **2.3 配置 yarn-env.sh 文件** - 类似于`hadoop-env.sh`,在此文件中也需指定JDK路径。 **2.4 配置 core-site.xml ...
- **内存分配**:根据服务器的实际可用内存,合理分配给Hadoop、Hive、NiFi和Spark等组件,确保每个组件都有足够的内存资源。 - **CPU核心分配**:根据不同组件的计算需求,合理分配CPU核心数。 - **磁盘I/O优化**:...
Phoenix提供了一系列监控指标,如查询执行时间、内存使用情况等,帮助我们了解系统状态并进行性能调优。通过调整Phoenix配置参数,如并行查询线程数、缓存大小等,可以进一步提升系统性能。 6. **安全与权限** ...
在安装CDH3之前,需要确保操作系统符合兼容性要求,通常为RHEL或CentOS的特定版本,并且硬件配置要满足Hadoop集群的基础要求,如内存、CPU和磁盘空间。 2.2 注意事项 - 启停:确保正确设置Hadoop服务的启动和停止...
首先,Apache Spark 是一个开源的大数据处理框架,以其高效的内存计算和强大的并行处理能力而受到广泛关注。Spark 2.2 版本在前一版本的基础上进行了优化,提供了更强大的SQL支持、流处理性能提升以及机器学习库...
6. **性能调优**:分析DB2的性能监控工具,如SQL诊断报告、性能监视器,以及如何通过查询优化、并行执行、内存分配等手段提升系统性能。 7. **高可用性与灾难恢复**:讨论DB2的复制技术,如纯同步复制、异步复制,...
**2.2 YARN内存配置** - **节点管理器可用内存总量**: - `yarn.nodemanager.resource.memory-mb`:设置为150000MB(150GB),确保有足够的内存资源分配给YARN容器。 - **Container内存范围**: - 最小值:`yarn....
**2.2 软件环境要求** 除了硬件配置外,还需要确保客户端已经安装了必要的软件环境,如操作系统版本、Java运行环境等。这些软件环境的要求也会随着TDH版本的不同而有所不同。 **2.3 支持的浏览器** TDH Manager...
针对Clickhouse,我们进行了如索引创建、分区策略优化、内存和磁盘使用配置等针对性的调优,以最大程度发挥其性能潜力。 3. 评测方案 3.1 生成数据集 为了模拟真实业务场景,我们创建了大量结构化数据,涵盖多种...
综上所述,“Superior调度器指南”提供了关于PAAS平台问题知识库中Hadoop环境下多租户管理、资源管理和调度策略的深入讲解。通过理解这些概念和技术细节,可以帮助用户更好地管理和优化集群资源,提高系统的整体性能...
**2.2 操作系统配置** - 调整内核参数,如文件句柄数量、网络缓冲区大小等。 - 关闭不必要的守护进程和服务,减少系统负载。 **2.3 Hadoop配置** - 配置Hadoop的核心参数,如HDFS的地址、块大小等。 - 确保Hadoop...
- **深入了解运行计划及调优:**详细解析了Spark SQL的查询优化策略,包括如何制定有效的查询计划来提高性能。 - **Spark实战应用:**通过具体案例展示了如何利用Spark SQL进行数据分析。 - **2.5 Spark ...
Hadoop HDFS、Google File System (GFS) 是其中的两个著名例子。 **7.4 分布式事务** 分布式事务是指跨越多个节点或资源管理器的事务。为了保证事务的一致性,通常采用两阶段提交 (2PC) 或三阶段提交 (3PC) 协议来...
常见的大数据计算平台有Hadoop、Spark、Flink等,根据业务场景选择适合的计算框架,考虑其处理速度、内存管理、容错机制等因素。 2.2 集群配置 设计合理的硬件集群配置,包括服务器选型、存储容量、网络带宽等,...
- **配置项说明**:对HBase中的各种配置选项进行解释,包括内存管理、日志记录等高级设置。 #### 三、基本先决条件 - **操作系统需求**:列出支持的操作系统版本和最低要求。 - **JDK版本**:指定兼容的JDK版本,...