一、前期需要准备的环境
1.1 Mac中准备7台Centos 6.5 虚拟机
具体安装过程参见:大数据之路-MAC中VMwareFusion安装CentOS6.8
Hadoop HA 集群中的机器规划如下:
主机名 | IP | 安装的软件 | 运行的进程 | 端口号 |
---|---|---|---|---|
mini1 | 172.16.29.141 | jdk、hadoop | NameNode、DFSZKFailoverController(zkfc) | 50070 |
mini2 | 172.16.29.142 | jdk、hadoop | NameNode、DFSZKFailoverController(zkfc) | 50070 |
mini3 | 172.16.29.143 | jdk、hadoop | ResourceManager | 8088 |
mini4 | 172.16.29.144 | jdk、hadoop | ResourceManager | 8088 |
mini5 | 172.16.29.145 | jdk、hadoop、zookeeper | DataNode、NodeManager、JournalNode、QuorumPeerMain | 2181、2888、3888 |
mini6 | 172.16.29.146 | jdk、hadoop、zookeeper | DataNode、NodeManager、JournalNode、QuorumPeerMain | 2181、2888、3888 |
mini7 | 172.16.29.147 | jdk、hadoop、zookeeper | DataNode、NodeManager、JournalNode、QuorumPeerMain | 2181、2888、3888 |
1.2 配置 Linux 主机名 - 7台机子都配置
[root@localhost hadoop]# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=mini1 ## hostname 每台机子分别一次配置,如: mini2 配置: hostname=mini2
1.3 配置IP - 7台机子都分别配置
[root@localhost ~]$ vim /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:30:03:5
8", ATTR{
type}=="1", KERNEL=="eth*", NAME="eth0"
~
[root@localhost ~]$ vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:50:56:30:03:58
TYPE=Ethernet
UUID=9186432d-9f75-45f1-894a-f74d8cd684de
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
~
1.4 配置主机名和IP的映射关系
[root@localhost hadoop]# vim /etc/hosts
172.16.29.141 mini1
172.16.29.142 mini2
172.16.29.143 mini3
172.16.29.144 mini4
172.16.29.145 mini5
172.16.29.146 mini6
172.16.29.147 mini7
7台机子都配置
[root@mini1 hadoop]# scp -r /etc/hosts mini2:/etc/
[root@mini1 hadoop]# scp -r /etc/hosts mini3:/etc/
[root@mini1 hadoop]# scp -r /etc/hosts mini4:/etc/
[root@mini1 hadoop]# scp -r /etc/hosts mini5:/etc/
[root@mini1 hadoop]# scp -r /etc/hosts mini6:/etc/
[root@mini1 hadoop]# scp -r /etc/hosts mini7:/etc/
1.5 配置 SSH 免密登录
[hadoop@mini1 ~]$ ssh-keygen
运行上面的命令以后,系统会出现一系列提示,可以一路回车。其中有一个问题是,要不要对私钥设置口令(passphrase),如果担心私钥的安全,这里可以设置一个。
运行结束以后,在$HOME/.ssh/目录下,会新生成两个文件:id_rsa.pub和id_rsa。前者是你的公钥,后者是你的私钥。
这时再输入下面的命令,将公钥传送到远程主机host上面:
[hadoop@mini1 ~]$ ssh-copy-id mini2
余下的几台机子依次分别执行
[hadoop@mini1 ~]$ ssh-copy-id mini3
[hadoop@mini1 ~]$ ssh-copy-id mini4
[hadoop@mini1 ~]$ ssh-copy-id mini5
[hadoop@mini1 ~]$ ssh-copy-id mini6
[hadoop@mini1 ~]$ ssh-copy-id mini7
免密登录:
[hadoop@mini1 ~]$ ssh mini7
Last login: Wed Dec 27 12:19:14 2017 from mini1 ## mini1 登录到 mini7 用户是hadoop
[hadoop@mini7 ~]$ ll ## mini7 hadoop用户下的文件列表
总用量 0
[hadoop@mini7 ~]$ su ## 切换 mini7的root用户
密码:
[root@mini7 hadoop]#
二、安装zookeeper集群
mini5、mini6、 mini7 安装zookeeper
mini5:
[hadoop@mini5 ~]$ ll
总用量 21740
-rw-r--r--. 1 hadoop hadoop 22261552 7月 29 16:05 zookeeper-3.4.8.tar.gz
2.1 hadoop用户目录下创建一个 apps文件夹
[hadoop@mini5 ~]$ mkdir apps
[hadoop@mini5 ~]$ ll
总用量 21744
drwxrwxr-x. 2 hadoop hadoop 4096 12月 27 12:50 apps
-rw-r--r--. 1 hadoop hadoop 22261552 7月 29 16:05 zookeeper-3.4.8.tar.gz
[hadoop@mini5 ~]$ pwd
/home/hadoop
[hadoop@mini5 ~]$ cd apps/
[hadoop@mini5 apps]$ pwd
/home/hadoop/apps
[hadoop@mini5 apps]$
2.2 解压 zookeeper-3.4.8.tar.gz
[hadoop@mini5 ~]$ tar -zxvf zookeeper-3.4.8.tar.gz -C /home/hadoop/apps/
2.3 修改配置文件 zoo.cfg
[hadoop@mini5 ~]$ cd /home/hadoop/apps/zookeeper-3.4.8/conf
[hadoop@mini5 conf]$ cp zoo_sample.cfg zoo.cfg
[hadoop@mini5 conf]$ ll
总用量 16
-rw-rw-r--. 1 hadoop hadoop 535 2月 6 2016 configuration.xsl
-rw-rw-r--. 1 hadoop hadoop 2161 2月 6 2016 log4j.properties
-rw-rw-r--. 1 hadoop hadoop 922 12月 27 12:56 zoo.cfg
-rw-rw-r--. 1 hadoop hadoop 922 2月 6 2016 zoo_sample.cfg
[hadoop@mini5 conf]$
2.4 zoo.cfg 中配置zookeeper数据存放位置
[hadoop@mini5 conf]$
[hadoop@mini5 conf]$ pwd
/home/hadoop/apps/zookeeper-3.4.8/conf
[hadoop@mini5 conf]$ vim zoo.cfg
dataDir=/home/hadoop/apps/data/zookeeper
并且在最后面添加如下内容:
server.1=mini5:2888:3888
server.2=mini6:2888:3888
server.3=mini7:2888:3888
创建一个上面 dataDir 指定的文件夹:
[hadoop@mini5 conf]$ mkdir -p /home/hadoop/apps/data/zookeeper
2.5 dataDir 路径下新增配置 myid
[hadoop@mini5 conf]$ pwd
/home/hadoop/apps/zookeeper-3.4.8/conf
[hadoop@mini5 conf]$
[hadoop@mini5 conf]$ echo 1 > /home/hadoop/apps/data/zookeeper/myid
[hadoop@mini5 conf]$
2.6 将配置好的zookeeper节点拷贝到 mini6、mini7服务器
[hadoop@mini5 ~]$ scp -r /home/hadoop/apps/ mini6:/home/hadoop/
[hadoop@mini5 ~]$
[hadoop@mini5 ~]$ scp -r /home/hadoop/apps/ mini7:/home/hadoop/
2.6.1 分别修改 mini6、mini7 /home/hadoop/apps/data/zookeeper/myid 的内容
mini6:
[hadoop@mini6 ~]$ echo 2 > /home/hadoop/apps/data/zookeeper/myid
[hadoop@mini6 ~]$ </