Hadoop 高可用(HA)(一)

第1关:安装 JDK 和 Zookeeper完全分布式

任务描述

本关任务:初始化虚拟服务器,安装 JDK 和 Zookeeper 集群。

编程要求

根据提示,在右侧编辑器中初始化虚拟服务器,安装 JDK 和 Zookeeper 集群。

示例集群信息

以下表格为本教程所用示例集群节点信息:

我们准备了三台虚拟服务器,连接方式如下:

服务器SSH密码ip
masterssh 172.18.0.2123123172.18.0.2
slave1ssh 172.18.0.3123123172.18.0.3
slave2ssh 172.18.0.4123123172.18.0.4

相关步骤

1.在 evassh 服务器初始化虚拟服务器:

cd /opt
wrapdocker
ulimit -f unlimited
docker load -i ubuntu16-ssh.tar
docker-compose up -d

2.点击“新开命令行,三个命令行分别为master,slave1,slave2

 3.通过 scp 命令将 evassh 上面的 Java 安装包、Zookeeper安装包 与 Hadoop 安装包放入 master 服务器上的/opt 目录下。第一次连接,会询问是否继续连接。键盘输入 yes 并输入密码 123123 即可进行传输。

scp /opt/jdk-8u141-linux-x64.tar.gz root@172.18.0.2:/opt
scp /opt/hadoop-3.1.0.tar.gz root@172.18.0.2:/opt
scp /opt/zookeeper-3.4.5.tar.gz root@172.18.0.2:/opt

配置免密登录

4.在集群搭建过程中,我们会频繁的在各个服务器之间跳转,此过程是通过 SSH 去连接的,为了避免启动过程输入密码,我们可以配置免密登录。

# 在 master 服务器生成密钥
# 进入 master 服务器,键盘输入 yes 与 密码 123123
ssh 172.18.0.2
ssh-keygen -t rsa
# 执行命令之后,连着按三个回车键即可生成秘钥。

# 进入 salve1 服务器,键盘输入 yes 与 密码 123123
ssh 172.18.0.3
ssh-keygen -t rsa

# 进入 salve2 服务器,键盘输入 yes 与 密码 123123
ssh 172.18.0.4
ssh-keygen -t rsa

5.在 master 复制 master、slave1、slave2 的公钥。密码 123123。

cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
ssh slave1 cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
ssh slave2 cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys

6.在 slave1 复制 master 的 authorized_keys 文件。

ssh master cat ~/.ssh/authorized_keys>> ~/.ssh/authorized_keys

7.在 slave2 复制 master 的 authorized_keys 文件。

ssh master cat ~/.ssh/authorized_keys>> ~/.ssh/authorized_keys

集群安装 JavaJDK

8.在 master 服务器的 /opt 目录下有 evassh 服务器传过来的 Java 安装包与 Hadoop 安装包。解压 Java 安装包至/usr/local目录下。

tar -zxvf /opt/jdk-8u141-linux-x64.tar.gz -C /usr/local/

9.解压好JDK之后还需要在环境变量中配置JDK,才可以使用,接下来就来配置JDK。 输入命令:vim /etc/profile 编辑配置文件; 在文件末尾输入如下代码(不可以有空格):

export JAVA_HOME=/usr/local/jdk1.8.0_141
export PATH=$PATH:$JAVA_HOME/bin

10.保存并退出文件(按esc,输入:wq,回车即可保存退出)

最后:source /etc/profile使刚刚的配置生效。

输入:java -version 出现如下界面代表配置成功。

11.将解压好的JDK与配置文件通过 scp 命令发送至 slave1、slave2 中。发送完后,在slave1 和 slave2 服务器上分别执行source /etc/profile使发送来的配置生效。

#发送JDK
scp -r /usr/local/jdk1.8.0_141/ root@slave1:/usr/local/
scp -r /usr/local/jdk1.8.0_141/ root@slave2:/usr/local/
#发送配置文件
scp  /etc/profile root@slave1:/etc/
scp  /etc/profile root@slave2:/etc/

Zookeeper 安装

12.在 master上解压 evassh 传输过来的 Zookeeper 安装包,并将解压后的文件夹改名为zookeeper。

tar -zxvf /opt/zookeeper-3.4.5.tar.gz -C /usr/local/
cd /usr/local
mv zookeeper-3.4.5/ zookeeper

13.进入 Zookeeper 配置文件存放的文件夹中,将 zoo_sample.cfg 模板文件 修改名字为 zoo.cfg,并修改: 

cd /usr/local/zookeeper/conf/
mv zoo_sample.cfg zoo.cfg
vi zoo.cfg
#修改
dataDir=/usr/local/zookeeper/zkdata
#并添加(提供的虚拟机内部,已经做了ip映射)
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

添加的配置为zookeeper集群的服务器编号以及对应的主机名 选举端口号和通信端口号 (server .1 代表对应服务器编号)

14.创建 zkdata 文件夹,并创建 myid 文件夹,内容为 1。编辑完后可输入cat myid查看是否成功输出1。

cd /usr/local/zookeeper
mkdir zkdata
cd zkdata
echo 1 > myid

15.通过 scp 命令将zookeeper的文件夹发送至 slave1 和 slave2 的 /usr/local 中。

scp -r /usr/local/zookeeper slave1:/usr/local/
scp -r /usr/local/zookeeper slave2:/usr/local/

16.slave1 和 slave2 服务器分别将 /usr/local/zookeeper/zkdata 中myid 改为 2 和 3。

#slave1上执行
cd /usr/local/zookeeper/zkdata/
echo 2 > myid
#slave2上执行
cd /usr/local/zookeeper/zkdata/
echo 3 > myid

17.配置环境变量 vi /etc/profile ,配置完后,source /etc/profile使得生效。

export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

18.另外 2 台服务器也配置环境变量,source /etc/profile并使得生效

# master
scp  /etc/profile root@slave1:/etc/
scp  /etc/profile root@slave2:/etc/

19.3 台虚拟机分别使用命令zkServer.sh start启动 Zookeeper 服务(每一台都要使用该命令),启动成功后,使用命令zkServer.sh status查看状态。其中 leader 代表集群主节点,follower 代表从节点。

测试说明

平台会对你操作进行测试: 安装完成后点击评测,评测检查所有服务器进程如下:

  1. master:
  2. Jps
  3. QuorumPeerMain
  4. slave1:
  5. Jps
  6. QuorumPeerMain
  7. slave2:
  8. Jps
  9. QuorumPeerMain
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值