分布式部署:
-
虚拟机,jdk
-
hostname, hosts,关闭防火墙,selinux
永久修改主机名centos6 (/etc/sysconfig/network) 或者 centos7 (/etc/hostname)
关闭selinux /etc/sysconfig/selinux (防火墙和selinux开启会使许多服务端口关闭,挺麻烦,关了吧)
- 安装hadoop,并配置
export JAVA_HOME="/opt/jdk-11.0.1"
core-site.xml | namenode,hadoop临时目录 和 checkpoint |
---|---|
hdfs-site.xml | 备份 和 secondnamenode |
slaves | datanode那些节点 |
yarn-site.xml | resourcemanager 和日志聚集 |
mapred-site.xml | 历史服务器和制定yarn |
官网很详细。
- ssh 免密 scp 分发到其他节点
免密:
ssh-keygen -t rsa #生成公钥
ssh-copy-id 节点名 #分发公钥
分发:
Hadoop根目录下的share/doc目录是存放的hadoop的文档,文件相当大,建议在分发之前将这个目录删除掉,可以节省硬盘空间并能提高分发的速度。
scp -r /opt/hadoop/mztt1:/opt/
- 格式化namenode,启动
为什么格式化 : 每次格式化,默认是创建一个集群ID,并写入NameNode和DataNode的VERSION文件中(VERSION文件所在目录为dfs/name/current 和 dfs/data/current),重新格式化时,默认会生成一个新的集群ID,如果不删除原来的目录,会导致namenode中的VERSION文件中是新的集群ID,而DataNode中是旧的集群ID,不一致时会报错。
另一种方法是格式化时指定集群ID参数,指定为旧的集群ID。
start-all.sh 或者 start-dfs.sh + start-yarn.sh