龙空技术网

生产调优手册_NN内存设置---大数据之hadoop3.x工作笔记0158

添财程序猿 83

前言:

目前各位老铁们对“hadoop内存配置”大致比较注重,各位老铁们都想要剖析一些“hadoop内存配置”的相关资讯。那么小编也在网络上收集了一些关于“hadoop内存配置””的相关文章,希望同学们能喜欢,我们一起来了解一下吧!

然后我们再来看,

首先namenode节点,我们说用来存,元数据的

如果一台服务器是128G的内存,那么,在namenode的文件块每个,占用150byte.

这个服务器就可以存储,9.1亿个文件块...这样的话,基本上,就够用了.

可以看到我们的服务器内存是4G对吧

在hadoop2.x中,namenode的内存,默认是2000m,如果我们的服务器内存是4G,那么给

namenode配置可以配置3G,因为要留下1G给操作系统,和其他软件使用

在hadoop2.x 中,可以配置hadoop-env.sh 文件,来配置namenode的内存

但是到了hadoop3.x,namenode的内存,就变成了动态配置的了.

就是说,如果你不配置的话,他会自动的去配置

我们可以去看一下这个配置

走到cd /opt/module/hadoop-3.1.3/

然后继续进入

cd etc/hadoop/

然后编辑

vim hadoop-env.sh

找到上面这里,可以看到

可以看到解释也说了,如果不配置就自动配置

现在我们没有配置,我们看一下他自动配置的话

配置了多少

cd /opt/module/hadoop-3.1.3/

根据文档我们去执行去看看

首先我们新开个hadoop102的窗口,然后

cd /opt/module/hadoop-3.1.3/

然后执行

myhadoop.sh start

然后我们执行jpsall 去看看各个进程 可以看到namenode的,进程号是6788

比如我们要查看一下 namenode的,占用内存情况

jmap -heap 6788 可以看到

hadoop3.x 自动给namenode分配的内存是 984.0MB对吧

为什么是984MB呢,我们知道我们的服务器有4G的内存

但是他才给namenode分了984mb,有些少对吧.

肯定是不符合要求的...太少了...

这也体现了hadoop3.x自动给分配的不合理性,所以我们一般都是自己去设置

因为如果你内容比较多,984MB不够用了,到时候程序就可能崩掉了.

我们再去看看jmap -heap 6956

这个是给datanode自动分配的内存

可以看到也是分配了984MB对吧..

这就说明,hadoop3.x自己自动分配的内存,有时候不是我们想要的,因为我们有4G的内存,作为namenode节点,我完全可以给他多一些内存对吧,至少1,2g 是可以的对吧,但是他自动分配的

却很少..所以这里我们需要修改它

修改怎么修改呢,按照什么标准呢?

可以看到上面有个网址...这个就是CDH给咱们总结的

可以进去看看

可以去打开这个网址去看看,可以看到

namenode 要设置内存,最小要设置1G,然后每增加1000000 100万个block,每增加100万个文件块,

就给他增加1G的内存就可以对吧.

具体就是修改上面这个hadoop-env.sh文件

然后我们去看一下,找到这个文件,然后

我们搜索 /NAMENODE

搜索到了以后,我们这里比如要把namenode的内存,设置成1G

可以看到上面的设置,参数之间都是用 空格加上一个-然后后面是参数设置的

可以看到我们也这样设置,加上红色部分的字样

然后我们再去搜一下DATANODE去看看设置

然后我们去设置就可以了,可以看到在原来的基础上,加上

export HDFS_NAMENODE_OPTS = -Dhadoop.security.logger=info,rfas -Xmx1024m

-Xmx1024m 加上了这一块. 然后给DATANODE也加上这一块,然后保存提交就可以了.

然后我们修改完配置文件,再去分发配置文件

xsync hadoop-env.sh

分发完了以后,我们再去重启,集群,让配置生效就可以了

myhadoop.sh stop 先关闭集群

然后再去myhadoop.sh start 再去启动集群

启动以后我们再去看一下,现在namenode和datanode的 内存是多少了

先把进程号记录下来,8599 8768对吧

首先我们先去看看namenode的内存

jmap -heap 8599

可以看到现在就是我们设置的内存是1024mb了对吧

然后我们再去看datanode的

jmap -heap 8768 可以看到

可以看到datanode的,占用内存也已经变成了,我们设置的1024mb了对吧.

标签: #hadoop内存配置