环境准备
依然沿用之前Centos7搭建zookeeper集群的机器,基本配置如下,关闭防火墙,selinux,修改hostname,
配置免密互信
配置hosts文件
vim /etc/hosts
10.15.5.240 zk-master
10.15.5.241 zk-node1
10.15.5.242 zk-node2
使其可以通过hostname 通信(三台都需要配置)
配置ssh 免密
在三台主机都执行
ssh-keygen -t rsa
ssh-copy-id zk-master
ssh-copy-id zk-node1
ssh-copy-id zk-node1
执行过程中需要输入yes 以及密码,完成之后可以直接通过ssh+主机名登录,不需要输入密码。
集群规划
节点名称NN1NN2DNRMNM
zk-masterNameNodeDataNodeNodeManagerzk-node1SecondaryNameNodeDataNodeResourceManagerNodeManagerzk-node2DataNodeNodeManager
下载安装包
wget https://mirror.olnevhost.net/pub/apache/hadoop/common/hadoop-2.10.1/hadoop-2.10.1.tar.gz
解压安装
tar xf hadoop-2.10.1.tar.gz -C /opt/module
修改配置文件
配置文件主要存放路径为:/opt/module/hadoop-2.10.1/etc/hadoop
cd /opt/module/hadoop-2.10.1/etc/hadoop
## 修改core-site.xml
vim core-site.xml
<configuration>
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://zk-master:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.10.1/data/full/tmp</value>
</property>
</configuration>
mkdir -p /opt/module/hadoop-2.10.1/data/full/tmp
## 修改hadoop-env.sh
vim hadoop-env.sh
export JAVA_HOME=/usr
PS:这里我的java是直接用的rpm包安装的,如果是编译安装的,则写你自己的地址~xxx/jdk/
## 修改hdfs-site.xml
vim hdfs-site.xml
[admin@node21 hadoop]$ vi hdfs-site.xml
<configuration>
<!-- 设置dfs副本数,不设置默认是3个 -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!-- 设置secondname的端口 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>zk-node1:50090</value>
</property>
</configuration>
修改slaves
vim slaves
zk-master
zk-node1
zk-node2
修改mapred-env.sh
vim mapred-env.sh
exportJAVA_HOME=/usr
修改mapred-site.xml
[admin@node21 hadoop]# mv mapred-site.xml.template mapred-site.xml
[admin@node21 hadoop]$ vi mapred-site.xml
<configuration>
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改yarn-env.sh
vim yarn-env.sh
export JAVA_HOME=/usr
修改yarn-site.xml
vim yarn-site.xml
[admin@node21 hadoop]$ vi yarn-site.xml
<configuration>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>zk-node1</value>
</property>
</configuration>
copy 到其他节点
scp -rp /opt/module/hadoop-2.10.1/ zk-node1:/opt/module/
scp -rp /opt/module/hadoop-2.10.1/ zk-node2:/opt/module/
配置环境变量(全部执行)
echo "export PATH=$PATH:/usr/local/scala/scala-2.11.8/bin/" >>/etc/profile
source /etc/profile
启动集群
格式化namenode
hdfs-config.sh namenode -format
启动集群
start-dfs.sh
启动Yarn
注意:Namenode和ResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn。
start-yarn.sh
查看进程
jps
Hadoop启动停止方法
1)各个服务组件逐一启动
分别启动hdfs组件: hadoop-daemon.sh start|stop namenode|datanode|secondarynamenode
启动yarn: yarn-daemon.sh start|stop resourcemanager|nodemanager
2)各个模块分开启动(配置ssh是前提)常用
start|stop-dfs.sh start|stop-yarn.sh
3)全部启动(不建议使用)
start|stop-all.sh