前期的准备
- 必须存在三台虚拟机,每天虚拟机配置必须完全一致。
- 防火墙必须关闭,最好永久性的关闭。
- 设置独立用户 hadoop。
- 为每台服务器设置主机名。
- 设置ip与主机名称的映射 hosts。
- 三台主机设置ssh免密登录。
- 进入到hadoop用户并将Hadoop文件进行解压
- 配置Java和Hadoop的环境变量
对服务器中的服务进行规划
主机名 | hadoop01 | hadoop02 | hadoop03 |
---|---|---|---|
NameNode | ResourceManager | SecondaryNameNode | |
DataNode | DataNode | DataNode | |
NodeManager | NodeManager | NodeManager | |
HistoryServer |
配置JAVA_HOME
- 配置hadoop-env.sh的JAVA_HOME
- 配置yarn-env.sh的JAVA_HOME
- 配置mapred-env.sh的JAVA_HOME
配置core-site.xml 文件
<configuration>
<property>
<name>fs.defaultFS</name>
<!--这里配置的是NameNode的IP地址和端口号-->
<value>hdfs://hadoop01:8020</value>
<!--hadoop01是NameNode的IP地址的映射,8020是端口号,注意端口号是 唯一的,否则会发生冲突-->
</property>
<property>
<name>hadoop.tmp.dir</name>
<!--这个文件夹会创建一个临时文件,并且存储fsimage-->
<value>/var/hadoop/data</value>
<!--这个路径不需要创建,在格式化namenode的时候会自动创建-->
</property>
</configuration>
配置hdfs-site.xml、
<configuration>
<property>
<name>dfs.replication</name>
<!--这里配置的是副本数量-->
<value>3</value>
<!--3表示有3个副本-->
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<!--配置secondarynamenode节点-->
<value>hadoop03:50090</value>
<!--hadoop03是secondarynamenode节点的IP地址的映射-->
</property>
<property>
<name>dfs.permissions.enabled</name>
<!--是否在HDFS中开启权限检查-->
<value>false</value>
</property>
</configuration>
配置yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<!--配置为:mapreduce.shuffle,在Yarn上开启MR的必须项-->
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<!--是否启用日志聚合功能,日志聚合开启后保存到HDFS上-->
<!-- 如果不启用聚合,会把日志存储在节点本地-->
<value>true</value>
</property>
<property>
<name>yarn.nodemanager.log.retain-seconds</name>
<!--配置多久后聚合后的日志文件被删除, 配置成 -1 或者一个负值就不会删除聚合日志-->
<value>10800</value>
<!--默认值为10800,单位为秒-->
</property>
<property>
<description>The hostname of the RM.</description>
<name>yarn.resourcemanager.hostname</name>
<!--RM的hostname-->
<value>hadoop02</value>
</property>
</configuration>
配置mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<!--使用yarn运行mapreduce程序-->
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<!--MapReduce JobHistory Server Web UI地址-->
<value>hadoop01:19888</value>
</property>
</configuration>
配置slaves
编辑slaves文件,在里面加入所有DataNode节点的主机名或者是IP地址。
以上的配置完成之后,需要把hadoop的配置文件分发到各个节点之上可以使用
scp 命令完成
scp -r 要发送的文件路径 目的主机名:目的路径
分发之前,别的节点上必须存在相同的目录
注意: 每一个节点上必须已经安装好JDK环境,并且配置好环境变量
安装完成之后,就可以通过 格式化命令 格式化namenode。
格式化NameNode:hadoop namenode -format
启动HDFS:start-dfs.sh或start-all.sh
关闭HDFS:stop-dfs.sh或stop-all.sh
启动YARN:start-yarn.sh
关闭YARN:stop-yarn.sh
启动历史服务器:mr-jobhistory-daemon.sh start historyserver
关闭历史服务器:mr-jobhistory-daemon.sh stop historyserver
开启resourcemanager:yarn-daemon.sh start resourcemanager
关闭resourcemanager:yarn-daemon.sh stop resourcemanager