一、集群部署规划
hadoop100:NameNode、DataNode、NodeManager
hadoop101:SecondaryNameNode、DataNode、ResourceManager、NodeManager
二、首先修改hosts文件
vi /etc/hosts
三 、配置系统必须的环境变量(java+hadoop)
# 1、修改配置文件
vi /etc/profile
#==========分界线 start=============
# set java home
JAVA_HOME=/usr/local/jdk1.8
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
# set hadoop home
export HADOOP_HOME=/opt/hadoop-3.2.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
#==========分界线 end===============
# 2、让环境变量生效
source /etc/profile
四、设置ssh免密登录
# 1、生成公钥和私钥
ssh-keygen -t rsa
# 2、将私钥copy到目标服务器
ssh-copy-id hadoop100
ssh-copy-id hadoop101
五、hadoop配置文件修改
- 修改core-site.xml
1.1 修改 hadoop-env.sh<configuration> <!--指定NameNode地址--> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop100:9000</value> </property> <!--指定Hadoop运行时产生文件的存放路径--> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop-3.2.2/data/tmp</value> </property> </configuration>
# 1、设置java环境变量 export JAVA_HOME=/usr/local/jdk1.8 # 2、配置用户名 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
- 修改 hdfs-site.xml
<configuration>
<!--设置文件存储的副本数-->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!--设置secondaryNameNode地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop101:50090</value>
</property>
</configuration>
3.1 修改 yarn-env.sh
# 设置java环境变量
export JAVA_HOME=/usr/local/jdk1.8
3.2 修改 yarn-site.xml
<configuration>
<!--Reducer获取数据的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--ResourceManager地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop101</value>
</property>
<!--日志聚合-->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!--日志保留时间-->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>3600</value>
</property>
</configuration>
4.1 修改mapred-env.sh
# 设置java环境变量
export JAVA_HOME=/usr/local/jdk1.8
4.2 修改 mapred-site.xml
<configuration>
<!--指定MR运行在yarn上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!--指定历史服务器地址-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop101:10020</value>
</property>
<!--指定历史服务器web端地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop101:19888</value>
</property>
</configuration>
- 修改workers文件
vi workers
#===hadoop程序会读取workers文件中的内容,作为集群的依据=======
hadoop100
hadoop101
六、格式化NameNode
# 这里如果不是第一次启动,请将 /data 以及 /logs 目录及文件全部删除
# 在 NameNode 所在的服务器 Hadoop100上,执行如下命令进行格式化
hadoop namenode -format
七、群起测试
# 启动 NameNode与 DataNode
start-dfs.sh
# 启动yarn必须在resourceManager的节点上执行
start-yarn.sh
# 查看启动情况
jps