基础环境配置与zookeeper安装

基础环境配置与zookeeper安装
实验步骤
1.修改主机名
  本次集群搭建共有三个节点,包括一个主节点master,和两个从节点slave1和slave2。
  1.以主机点master为例,首次切换到root用户:su
  2.分别修改三台主机名为master,slave1,slave2:

•	hostnamectl set-hostname master
•	hostnamectl set-hostname slave1
•	hostnamectl set-hostname slave2

在这里插入图片描述

3.永久修改主机名,编辑/etc/sysconfig/network文件,内容如下:
在master的network文件中加入以下内容:

NETWORKING=yes
HOSTNAME=master

在slave1的network中加入以下内容:

NETWORKING=yes
HOSTNAME=slave1

在slave1的network中加入以下内容:

NETWORKING=yes
HOSTNAME=slave2

在这里插入图片描述
  注意保存退出。
  4.保存该文件,重启计算机:reboot
  5.查看是否生效:hostname
在这里插入图片描述
2.配置host文件
  使各个节点能使用对应的节点主机名连接对应的地址。
  hosts文件主要用于确定每个结点的IP地址,方便后续各结点能快速查到并访问。在上述3个虚机结点上均需要配置此文件。由于需要确定每个结点的IP地址,所以在配置hosts文件之前需要先查看当前虚机结点的IP地址是多少.
  1.可以通过ifconfig命令进行查看。
在这里插入图片描述
  2.查看节点地址之后将三个节点的ip地址以及其对应的名称写进hosts文件。这里我们设置为master、slave1、slave2。注意保存退出。
在这里插入图片描述
3.关闭防火墙
centos7中防火墙命令用firewalld取代了iptables,当其状态是dead时,即防火墙关闭。
• 关闭防火墙:systemctl stop firewalld
• 查看状态:systemctl status firewalld
在这里插入图片描述
4.时间同步
  1. 首先在时间同步之前确认是否有网络连接,如果没有网络只需要在每台机器上都输入 date -s 10:00 就可以将所有机器时间同步到10:00了,但是在有网络的情况下就可以执行下面的这种时间同步的方法:
时区一致。要保证设置主机时间准确,每台机器时区必须一致。实验中我们需要同步网络时间,因此要首先选择一样的时区。先确保时区一样,否则同步以后时间也是有时区差。
可以使用date查看自己的机器时间。
在这里插入图片描述
  2.选择时区:tzselect
在这里插入图片描述
  由于hadoop集群对时间要求很高,所以集群内主机要经常同步。我们使用ntp进行时间同步,master作为ntp服务器,其余的当做ntp客户端。
  3.下载ntp(三台机器)

•	yum install –y ntp

在这里插入图片描述
  4.master作为ntp服务器,修改ntp配置文件。(master上执行)

•	vi /etc/ntp.conf
server  127.127.1.0               # local clock
fudge   127.127.1.0   stratum 10   #stratum设置为其它值也是可以的,其范围为0~15

在这里插入图片描述
  重启ntp服务。

•	/bin/systemctl restart ntpd.service

5. 其他机器同步(slave1,slave2)
等待大概五分钟,再到其他机上同步该机器时间。

•	ntpdate master

在这里插入图片描述
5.配置ssh免密
  SSH主要通过RSA算法来产生公钥与私钥,在数据传输过程中对数据进行加密来保障数据的安全性和可靠性,公钥部分是公共部分,网络上任一结点均可以访问,私钥主要用于对数据进行加密,以防他人盗取数据。总而言之,这是一种非对称算法,想要破解还是非常有难度的。Hadoop集群的各个结点之间需要进行数据的访问,被访问的结点对于访问用户结点的可靠性必须进行验证,hadoop采用的是ssh的方法通过密钥验证及数据加解密的方式进行远程安全登录操作,当然,如果hadoop对每个结点的访问均需要进行验证,其效率将会大大降低,所以才需要配置SSH免密码的方法直接远程连入被访问结点,这样将大大提高访问效率。
  1. 每个结点分别产生公私密钥:

•	ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa(三台机器)

秘钥产生目录在用户主目录下的.ssh目录中,进入相应目录查看:cd .ssh/
在这里插入图片描述
  2.Id_dsa.pub为公钥,id_dsa为私钥,紧接着将公钥文件复制成authorized_keys文件:(仅在master机器上操作)

•	`cat id_dsa.pub >> authorized_keys(注意在.ssh/路径下操作)`

在这里插入图片描述
  在主机上连接自己,也叫做ssh内回环。

•	ssh master
 

2.让主结点master能通过SSH免密码登录两个子结点slave。(分别在slave1和slave2中操作)
  为了实现这个功能,两个slave结点的公钥文件中必须要包含主结点的公钥信息,这样
  当master就可以顺利安全地访问这两个slave结点了。
  slave1结点通过scp命令远程登录master结点,并复制master的公钥文件到当前的目录下,且重命名为master_dsa.pub,这一过程需要密码验证。
首先需要分别打开slave1节点和slave2节点的 .ssh文件夹:

•	cd .ssh
•	scp master:~/.ssh/id_dsa.pub ./master_das.pub

在这里插入图片描述
  将master结点的公钥文件追加至authorized_keys文件。

•	cat master_dsa.pub >> authorized_keys

在这里插入图片描述
  这时,master就可以连接slave1了。
在这里插入图片描述
slave1结点首次连接时需要,“yes”确认连接,这意味着master结点连接slave1结点时需要人工询问,无法自动连接,输入yes后成功接入,紧接着注销退出至master结点。
  同理slave2中也是这么操作。
  注意:两个结点的ssh免密码登录已经配置成功,还需要对主结点master也要进行上面的同样工作,因为jobtracker有可能会分布在其它结点上,jobtracker有不存在master结点上的可能性。在上一步骤中,我们已经进行过此操作,这里仅做提醒。
6.安装JDK
  1.首先在根目录下建立工作路径/usr/java

•	mkdir -p /usr/java
•	tar -zxvf /opt/soft/jdk-8u171-linux-x64.tar.gz -C /usr/java/

在这里插入图片描述
  2.修改环境变量
  修改环境变量:vi /etc/profile
在这里插入图片描述
  添加内容如下:

export JAVA_HOME=/usr/java/jdk1.8.0_171
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

生效环境变量:source /etc/profile
  查看java版本:java -version
在这里插入图片描述
  在master节点操作成功后可以使用远程复制命令将JDK远程复制到slave1和slave2节点在中:(此命令在master中操作)
scp -r /usr/java root@slave1:/usr/
scp -r /usr/java root@slave2:/usr/
在这里插入图片描述
  接下来操作slave1和slave2,配置java的环境变量:
  修改环境变量:vi /etc/profile
  添加内容如下:

export JAVA_HOME=/usr/java/jdk1.8.0_171
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

在这里插入图片描述
生效环境变量:source /etc/profile
注意:在操作完slave1和slave2之后需要更新环境变量之后才可以使用java -version去查看JDK的版本。
7.安装zookeeper
  1. 修改主机名称到IP地址映射配置。

	vi /etc/hosts
192.168.15.104 master master.root
192.168.15.127 slave1 slave1.root
192.168.15.124 slave2 slave2.root

在这里插入图片描述
  2. 修改ZooKeeper配置文件。在其中一台机器(master)上,用tar -zxvf 命令解压缩zookeeper-3.4.6.tar.gz。解压缩zookeeper-3.4.6.tar.gz
   首先创建zookeeper的工作路径:
mkdir -p /usr/zookeeper
然后解压zookeeper到刚才创建的zookeeper的工作路径中:
tar –zxvf /opt/soft/zookeeper-3.4.10.tar.gz –C /usr/zookeeper
在这里插入图片描述
  3. 配置文件conf/zoo.cfg,用cd命令进入zookeeper-3.4.10/conf目录下,将zoo_sample.cfg文件拷贝一份,命名为为“zoo.cfg”。

cp zoo_sample.cfg zoo.cfg

Zoo.cfg文件配置

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/zookeeper/zookeeper-3.4.10/zkdata
clientPort=2181
dataLogDir=/usr/zookeeper/zookeeper-3.4.10/zkdatalog
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
 

在这里插入图片描述
  4.在zookeeper的目录中,创建zkdata和zkdatalog两个文件夹。Zkdatalog文件夹,是为了指定zookeeper产生日志指定相应的路径

•	mkdir zkdata
•	mkdir zkdatalog

在这里插入图片描述
  5. 进入zkdata文件夹,创建文件myid。
在这里插入图片描述
  6.远程复制分发安装文件
  上面已经在一台机器master上配置完成ZooKeeper,现在可以将该配置好的安装文件远程拷贝到集群中的各个结点对应的目录下:

•	scp -r /usr/zookeeper root@slave1:/usr/
•	scp -r /usr/zookeeper root@slave2:/usr/

在这里插入图片描述
  7. 设置myid。在我们配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中X为什么数字,则myid文件中就输入这个数字。
  slave1中为2;

•	cd /usr/zookeeper/zookeeper-3.4.10/zkdata

在这里插入图片描述
  slave2中为3
在这里插入图片描述
  8. 配置环境变量并启动ZooKeeper。在每台机器上的 /etc/profile

•	vi /etc/profile
#set zookeeper environment    
export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.10 
PATH=$PATH:$ZOOKEEPER_HOME/bin

在这里插入图片描述
  生效:source /etc/profile
  9. 启动ZooKeeper集群
  在ZooKeeper集群的每个结点上,执行启动ZooKeeper服务的脚本,如下所示:

bin/zkServer.sh start
•	bin/zkServer.sh status

• master 节点上启动并查看zookeeper状态:
在这里插入图片描述
• slave1节点上启动并查看zookeeper状态:
在这里插入图片描述
• slave2 节点上启动并查看zookeeper状态:
在这里插入图片描述
  通过上面状态查询结果可见,一个节点是Leader,其余的结点是Follower。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值