1、集群节点规划
NameNode | node1 | node2 | |
DataNode | node1 | node2 | node3 |
JournalNode | node1 | node2 | node3 |
zookeeper | node1 | node2 | node3 |
node1:172.16.73.143
node2:172.16.73.43
node3:172.16.73.211
1.1 各节点安装软件目录规划:
JDK 目录 | /opt/package/jdk1.7.0_76 |
hadoop | /opt/package/hadoop-2.7.2 |
zookeeper | /opt/package/zookeeper-3.4.10 |
1.2 各节点临时目录规划
hadoop临时目录 | /opt/data/hadoop_tmp_dir |
journalNode 临时目录 | /opt/data/journal_tmp_dir |
zookeeper临时目录 | /opt/package/zookeeper-3.4.10/dataLogDir /opt/package/zookeeper-3.4.10/dataDir |
1.3 相关软件
JDK 1.7.0_76
Hadoop:2.7.2
zookeeper: 3.4.10
2.配置Linux环境
推荐使用root用户登录linux
2.0.1 确保各个节点可以互相ping通
如果使用虚拟,确保是桥接方式,以便虚拟机里各个主机可以ping通
2.0.2 配置hostname
vi /etc/sysconfig/network
HOSTNAME=<主机名>
2.0.3 配置/etc/hosts
需要把集群内各个节点的映射都写进来
172.16.73.143 node1
172.16.73.43 node2
172.16.73.211 node3
例如下面是node3这个节点的/etc/hosts配置,如果集群里有多个节点,每个节点的hosts文件都要列出所有节点的映射关系
2.0.4 关闭防火墙
暂时关闭防火墙
service iptables stop
永久关闭防火墙
chkconfig iptables off
查看防火墙自动运行状态
chkconfig --list|grep iptables
关闭linux 安全策略 selinux
vim /etc/sysconfig/selinux
SELINUX=disabled
2.0.5 配置ssh免密码登录
确保在集群内的所有节点都可以互相免密码登录,并且可以免密码登录到自身
检查ssh服务是否正常运行
service sshd status
openssh-daemon (pid 1850) is running...
以上提示表示正常
如果要实现从主机A上免SSH密码登录到主机B,操作如下
在A上:
产生自己的公钥和私钥
ssh-keygen -t rsa
把自己的私钥放到远程的主机上,有3种方法:
方法1:
ssh-copy-id -i username@hostname
方法2:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2
方法3:
ssh-copy-id -i hostname
如果想要实现双向免密码登录操作方法是相同的.
在一些情况下应用程序需要登录到当前自己所在的主机,叫做登录到自身主机,例如当前主机是node2,这样操作
ssh-copy-id -i ~/.ssh/id_rsa.pub node2
2.0.6 安装JDK
jdk 安装在 /opt/package/jdk1.7.0_76
修改/etc/profile,加入以下内容
export JAVA_HOME=/opt/package/jdk1.7.0_76
export HADOOP_HOME=/opt/package/hadoop-2.7.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存退出后执行
source /etc/profile
2.0.7 同步各个节点的时间
2.1 搭建zookeeper集群
zookeeper在NameNode所在的节点上运行一个FailoverContriler,它会监控NameNode的运行状态,如果一个是active一个是standby没有问题,如果NameNdoe的状态发生了变化,比如宕机zookeeper集群就能感知到这个集群的变化。集群通过FailoverContriler把相应的NameNode的状态改成active,实现自动切换。
2.1.1 解压zookeeper安装包
在node1上解压zookeeper安装包,产生zookeeper-3.4.10目录,把conf/zoo_sample.cfg重命名为zoo.cfg
并且创建两个目录dataDir和dataLogDir
修改配置文件conf/zoo.cfg
(1)
dataDar = /opt/package/zookeeper-3.4.10/dataDir
dataLogDir=/opt/package/zookeeper-3.4.10/dataLogDir
(2)增加以下内容
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
创建目录mkdir zookeeper/data
写入文件echo 1 >zookeeper/data/myid
2.2 修改Hadoop相关配置文件(hadoop-env.sh、core-site.xml、hdfs-site.xml、slaves)
在在node1上操作
2.2.1 hadoop-env.sh
export JAVA_HOME=/opt/package