Hadoop集群安装
准备
设置账号:组 hadoop:hadoop
SSH免密登录
关闭防护墙
- 显示状态:systemctl status firewalld.service
- 关闭:systemctl stop firewalld.service
- 开机时禁用:systemctl disable firewalld.service
解压
[hadoop@hadoop1 soft]$ tar zxvf hadoop-2.7.2.tar.gz -C /opt/module
配置环境变量
[hadoop@hadoop1 soft]$ sudo vim /etc/profile
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
环境变量生效
[hadoop@hadoop1 soft]$ source /etc/profile
默认配置文件目录 $HADOOP_HOME/etc/hadoop
配置文件说明
默认的配置文件:
core-default.xml: Hadoop核心的参数
hdfs-default.xml HDFS相关的参数!
mapred-default.xml: MR程序在运行时的参数!
yarn-default.xml: yarn: YARN在启动时需要的参数!
用户可以自定义的配置文件
core-site.xml: 用户自定义的设置hadoop核心的参数
hdfs-site.xml 用户自定义的HDFS相关的参数
mapred-site.xml: 用户自定义的MR程序需要的参数
yarn-site.xml: 用户自定义的YARN在启动时需要的参数
配置core-site.xml
[hadoop@hadoop1 hadoop]$ vi core-site.xml
<configuration>
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop1:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
</configuration>
配置hadoop-env.sh
[hadoop@hadoop1 hadoop]$ vi hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144
配置hdfs-site.xml
[hadoop@hadoop1 hadoop]$ vi hdfs-site.xml
<!—副本因子 -->
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop3:50090</value>
</property>
</configuration>
配置yarn-env.sh
[hadoop@hadoop1 hadoop]$ vi yarn-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144
配置yarn-site.xml
[hadoop@hadoop1 hadoop]$ vi yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop2</value>
</property>
</configuration>
配置mapred-env.sh
[hadoop@hadoop1 hadoop]$ vi mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144
配置mapred-site.xml
[hadoop@hadoop1 hadoop]$ cp mapred-site.xml.template mapred-site.xml
[hadoop@hadoop1 hadoop]$ vi mapred-site.xml
<configuration>
<!-- 指定MR运行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 配置 MapReduce JobHistory Server 地址,默认端口10020 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop3:10020</value>
</property>
<!-- 配置 MapReduce JobHistory Server web ui 地址,默认端口19888 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop3:19888</value>
</property>
</configuration>
配置slaves
[hadoop@hadoop1 hadoop]$ vi slaves
分发
hadoop1安装目录分发到其他节点
[hadoop@hadoop1 soft]$ xrsync.sh /opt/module/hadoop-2.7.2/
验证安装
NM格式化
[hadoop@hadoop1 ~]$ hadoop namenode -format
启动
启动namenode
hadoop-daemon.sh start namenode
启动datanode
hadoop-daemon.sh start datanode
启动resourcemanager
yarn-daemon.sh start resourcemanager
启动nodemanager
yarn-daemon.sh start nodemanager
启动集群HDFS
[hadoop@hadoop1 hadoop]$ start-dfs.sh
启动集群YARN
[hadoop@hadoop2 ~]$ start-yarn.sh
查看进程
停止集群
停止namenode
hadoop-daemon.sh stop namenode
停止datanode
hadoop-daemon.sh stop datanode
停止resourcemanager
yarn-daemon.sh stop resourcemanager
停止nodemanager
yarn-daemon.sh stop nodemanager
停止集群
脚本启动/停止
hadoop.sh start
hadoop.sh stop