环境准备
- 主机服务器 CentOS 7.x X3
- Hadoop 7.2
- JDK 1.8
环境准备
-
主机
teacher1192.168.52.133
teacher2192.168.52.135
teacher3192.168.52.136
-
集群部署规划
节点 | teacher1 | teacher2 | teacher3 |
---|---|---|---|
HDFS | NameNode,DataNode | DataNode | DataNode,secondarynamenode |
YARN | NodeManager | ResourceManager,NodeManager | NodeManager |
- host 配置
分别对三台主机进行host配置vim /etc/hosts
- teacher1
192.168.52.133 teacher1 192.168.52.135 teacher2 192.168.52.136 teacher3
- teacher2
192.168.52.133 teacher1 192.168.52.135 teacher2 192.168.52.136 teacher3
- teacher3
192.168.52.133 teacher1 192.168.52.135 teacher2 192.168.52.136 teacher3
- SSH互通设置
ssh-keygen -t rsa ssh-copy-id -i ~/.ssh/id_rsa.pub root@teacher1 ssh-copy-id -i ~/.ssh/id_rsa.pub root@teacher2 ssh-copy-id -i ~/.ssh/id_rsa.pub root@teacher3
JDK 卸载安装
- centos安装后,默认会自带openjdk 这里我们使用卸载自带的,安装自己的 1.8版本。
- 查看系统自带jdk
命令rpm -qa | grep Java
- 删除
rpm -e --nodeps
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.221-2.6.18.1.el7.x86_64 rpm -e --nodeps java-1.8.0-openjdk-1.8.0.222.b03-1.el7.x86_64 rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.222.b03-1.el7.x86_64 rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.221-2.6.18.1.el7.x86_64
- 安装自己的jdk 这里不介绍。
hadoop安装
- 下载
下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/
- 解压
在teacher1解压,解压路径/opt/hadoop
- 环境配置
分别配置三台主机的hadoop环境export HADOOP_HOME=/opt/hadoop/hadoop-2.7.2 export PATH=$PATH:$HADOOP_HOME/bin
source /etc/profile
验证hadoop version
集群环境配置
hadoop配置文件在解压路径的 etc下 /opt/hadoop/hadoop-2.7.2/etc/hadoop
-
配置hadoop运行环境
vim hadoop-env.sh
找到JAVA_HOME 配置 更新为自己的JDK安装路径
这里可以还可以通过echo $JAVE_HOME$
javahome环境配置路径
export JAVA_HOME=/opt/jdk/jdk1.8.0_191
-
核心配置文件:core-site.xml(hdfs的核心配置文件)
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://teacher1:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/hadoop-2.7.2/data/tmp</value>
</property>
- hdfs配置文件 hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--secondarynamenode的地址--> 辅助namenode工作
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>teacher3:50090</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/opt/data/hadoop/name/</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/opt/data/hadoop/data/</value>
</property>
- yarn配置文件 yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>teacher2</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>3072</value>
</property>
- mapreduce配置文件
首先复制[root@teacher1 hadoop]# cp mapred-site.xml.template mapred-site.xml
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
- 配置集群中从节点信息
teacher1
teacher2
teacher3
- 分发文件
将teacher1中hadoop目录下的软件拷贝到其他机器,前提是前面的免密认证已经配置完成
scp -r hadoop-2.7.2 teacher1:/opt/hadoop/
scp -r hadoop-2.7.2 teacher2:/opt/hadoop/
集群启动
-
如果果集群是第一次启动,需要格式化NameNode(格式化只进行一次)
命令hadoop namenode -format
- 1.各个服务组件逐一启动/停止(集群某个进程挂掉使用这种方式重启 )
(1)分别启动/停止hdfs组件
hadoop-daemon.sh start|stop namenode|datanode|secondarynamenode
- 2)启动/停止yarn.
yarn-daemon.sh start|stop resourcemanager|nodemanager
- 1.各个服务组件逐一启动/停止(集群某个进程挂掉使用这种方式重启 )
-
2、分模块启动,集群启动方式
各个模块分开启动/停止(配置ssh是前提)常用(1)整体启动/停止hdfs(在namenode节点启动) start-dfs.sh stop-dfs.sh (2)整体启动/停止yarn (在resourcemanager节点启动) start-yarn.sh stop-yarn.sh
集群测试
Yarn的web页面查看地址:http://192.168.52.135:8088/
web端查看SecondaryNameNode http://192.168.52.136:50090/status.html
这里我配置的host是在虚拟机配置的,宿主机直接ip访问了,当然也可以配置和虚拟机一样的hosts,通过host访问。