hadoop3.x集群搭建教程
0.Hadoop和Java之间的版本配套
官方描述:https://cwiki.apache.org/confluence/display/HADOOP2/HadoopJavaVersions
hadoop 3.x 版本仅支持 Java8
hadoop 2.7.x及以上版本支持Java7和Java8
hadoop 2.6.x及以下版本支持Java6
1. 准备工作节点布置
IP
|
主机名
|
描述
|
部署软件
|
节点job
|
172.66.66.37
|
hadoop01
|
主节点/数据节点
|
jdk,hadoop
|
nn/dn
|
172.66.66.38
|
hadoop02
|
数据节点
|
jdk,hadoop
|
dn
|
172.66.66.39
|
hadoop03
|
数据节点/辅助节点
|
jdk,hadoop
|
dn/snn
|
2.所有节点配置hostname
# 永久生效,修改文件/etc/hostname #临时生效 hostnamectl set-hostname name
3.所有节点配置hosts
vim /etc/hosts 172.66.66.36 hadoop01 172.66.66.37 hadoop02 172.66.66.38 hadoop03
4.所有节点配置集群内节点免密登录
ssh-keygen -t rsa ssh-copy-id hadoop01 ssh-copy-id hadoop02 ssh-copy-id hadoop03
5.准备hadoop二进制包,jdk二进制包,并配置环境变量
vim /etc/profile export JAVA_HOME=/opt/jdk1.8.0_351 export HADOOP_HOME=/opt/hadoop-3.2.4 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin source /etc/profile
6.修改hadoop配置文件
vim hadoop-env.sh #配置JAVA_HOME HADOOP_HOME export JAVA_HOME=/opt/jdk1.8.0_351 export HADOOP_HOME=/opt/hadoop-3.2.4 #设置用户以执行对应角色shell命令 export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_SECONDARYNAMENODE_USER=root export YARN_RESOURCEMANAGER_USER=root export YARN_NODEMANAGER_USER=root
vim core-site.xml <configuration> <!-- HA集群名称,该值要和hdfs-site.xml中的配置保持一致 --> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop01:8020</value> </property> <!-- hadoop本地磁盘存放数据的公共目录 --> <property> <name>hadoop.tmp.dir</name> <value>/opt/tmp_data</value> </property> <!-- 配置允许通过代理访问的主机节点--> <property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property> <!-- 配置允许通过代理访问的用户所属组--> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property> <!-- 回收站中的文件多少分钟后会被系统永久删除--> <property> <name>fs.trash.interval</name> <value>1440</value> </property> <!-- 后两次检查点的创建时间间隔(单位也是分钟)--> <property> <name>fs.trash.checkpoint.interval</name> <value>0</value> </property> <!-- 配置HDFS网页登录使用的静态用户为hadoop --> <property> <name>hadoop.http.staticuser.user</name> <value>root</value> </property> </configuration>
vim hdfs-site.xml <configuration> <!-- nn的http通信地址 --> <property> <name>dfs.namenode.http-address</name> <value>hadoop01:9870</value> </property> <!-- nn的https通信地址 --> <property> <name>dfs.namenode.https-address</name> <value>hadoop01:9871</value> </property> <!-- snn的http通信地址 --> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop03:9868</value> </property> <!-- snn的https通信地址 --> <property> <name>dfs.namenode.secondary.https-address</name> <value>hadoop03:9869</value> </property> <!-- 指定文件切片的副本个数 --> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration>
vim mapred-site.xml <configuration> <!--用于执行MapReduce作业的运行时框架--> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <!-- 设置历史任务的主机和端口 --> <property> <name>mapreduce.jobhistory.address</name> <value>hadoop01:10020</value> </property> <!-- 设置网页访问历史任务的主机和端口 --> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>hadoop01:19888</value> </property> <!-- 设置网页访问历史任务的主机和端口 --> <property> <name>mapreduce.jobhistory.webapp.https.address</name> <value>hadoop01:19890</value> </property> <!-- 历史服务器的WEB UI上最多显示50000个历史的作业记录信息 --> <property> <name>mapreduce.jobhistory.joblist.cache.size</name> <value>50000</value> </property> </configuration>
vim yarn-site.xml <configuration> <!-- 指定RM的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop02</value> </property> <!--NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序--> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 开启yarn日志聚合功能,收集每个容器的日志集中存储在一个地方 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!-- 日志保留时间 --> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>2592000</value> </property> <property> <name>yarn.log.server.url</name> <value>http://hadoop01:19888/jobhistory/logs</value> </property> </configuration>
vim workers hadoop01 hadoop02 hadoop03
7.启动集群
在hadoop01(主节点)上格式化
hdfs namenode -format
在hadoop01(主节点)上启动dfs
start-dfs.sh
在hadoop02上启动yarn
start-yarn.sh