Hadoop 3.0.0 警告篇
一、 虚拟机安装请确保充足的内存
主机内存 | 虚拟机内存 | 虚拟机个数 |
---|---|---|
8GB | 4GB | 1 |
12GB | 4GB | 2 |
16GB | 4GB | 3 |
Hadoop的DataNode结点计算的时候所需要的最少内存为1536Mb。
集群环境下,NameNode所在主机可以不参与MapReduce的计算。
Hadoop不会智能的探测节点的物理内存总量!
修改配置文件yarn-site.xml,新增:
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>3072</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>1536</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>3072</value>
</property>
经过实测I5三代,物理机内存8GB,分配三台虚拟机,每台内存各1GB,发生内存溢出,后调至2GB,依旧发生内存溢出,Map进程被强制杀死
二、 Hostname的名称内不要带“.”,“_”,“-”等常用连字符以及特殊字符!
在集群环境下,甚至单主机模式下,配置hostname的时候,不要加常用的连字符以及特殊字符!
在配置结点机的时候,不要使用类似“node.1”,“salve.1”,“node-1”,“salve-1”,“node_1”,“salve_1”,“node\1”,“salve/1”,“node:1”,“salve:1”等名称。
推荐直接使用类似于“node1”,即“结点名称结点编号”的写法
*如果在hostname名称中加入连字符,使用HDFS文件系统的时候相应正常,但是在使用MapReduce的时候可能会导致Map到DataNo的上的任务无法正常返回,在主机上无法查询到错误日志,查询结点机就会发现,java.net.会报出到client(主机)的链接错误 *
三、 jdk环境务必使用1.8.x
最开始的时候使用的环境是9.0的jdk环境,无法正常启动结点。换成1.8.x正常
四、 hosts文件相关
集群环境下,各节点的hostname以及ip地址必须在每台集群主机上都有记录。
一般来说,要求client(客户机)必须要有所有集群结点的hosts信息,secondNameNode也必须要有所有集群结点的hosts信息,结点机不需要有全部的hosts信息,但是,结点机必须要有与client以及secondNameNode的hosts信息。
五、Job内存溢出
修改配置文件mapred-site.xml,新增:
<property>
<name>mapreduce.reduce.shuffle.memory.limit.percent</name>
<value>0.17</value>
</property>
这个配置表示,单个shuffle能够消耗的内存占reduce所有内存的比例,默认值为0.25.
六、配置自动登录
自动登录非常重要,关乎到NodeManager能否正常管理结点。
在修改hostname信息以后,可能会导致原有的ssh自动登录信息失效,需要删除结点机(DataNode)上的~/.ssh文件夹,重启主机后重新配置rsa。
七、虚拟机配置集群IP尽量使用虚拟平台自带的网络管理策略
VMware 14 手动配置的ip策略,导致虚拟机内部无法相互ping通,充值了虚拟平台网络策略后恢复。所以尽可能不要动虚拟平台默认的网络策略。
一般来说 VMware的DHCP池从128开始,配置集群环境的时候,尽可能保证ip地址不出现变动,可以手动配选3~127之间的ip段。
有些时候,vmware会将ip池内的2作为网关
Hadoop 3.0.0 安装篇
1.配置hostname
1.1.直接通过hostname配置
hostname client //修改hostname为client
1.2通过文件配置
hostname // 查看当前系统主机名
vi /etc/sysconfig/network // 编辑文件
network文件内容
NETWORKING=YES
HOSTNAME=client //将hostname修改为client