Zookeeper环境准备(三台虚拟机)_cxy好好先生的博客-CSDN博客集群脚本的准备最近在学zookeeper,发现scp这东西真好用,可以给其他节点传输文件,非常的方便。但是拷贝文件到各个节点,节点数量少还是挺方便的,但是节点一多起来,就会发现重复的工作增加了好多,相同的命令需要输入好多次,而且接受的用户名如果改错了还会浪费时间。所以每次都用scp远程命令去拷贝不现实,所以现在编写一个分发脚本,单命令可以分发到各个节点。(以下是三台已经互相ssh免密登录的虚拟机centos7)1.创建/home/hadoop/tools 脚本存放目录(以下所有需要在ha..https://blog.csdn.net/weixin_52105111/article/details/123268361
一.jdk安装1.上传安装包
在windows系统下载jdk,我这里选择的版本是linux的17.0.2,将压缩包通过xftp软件直接上传到虚拟机hadoop01 的/home/hadoop/app 文档中
2.解压JDK(hadoop01上)
tar -zxvf 安装包名称 #进行解压
3.创建软连接
ln -s jdk-17.0.2 jdk #jdk-17.0.2文件夹名是你自己的要修改
为了方便版本的更换和学习使用,可以创建软连接jdk指向真是安装路径,可以使用以上命令
4.配置环境变量
配置文档有两种
第一:/etc/profile
如果你的计算机仅仅作为开发使用时推荐这种算法,因为所有用户的shell都有权使用这些环境变量,这些环境变量,可能会给系统带来安全性问题,这里是针对所有用户的,所有shell。
第二:~/.bashrc
这种方法更安全,它可以把这些环境变量的权限控制到用户级别,这里是只针对摸一个特定用户,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bashrc文件就可以了。(在hadoop用户下)
vim ~/.bashrc
这样jdk就配置好了
保存文件
然后
source ~/.bashrc java -version
如果出现Java版本就是配置正确。
5.将jdk 分发到其他slave节点
deploy.sh jdk17.0.2 /home/hadoop/app slave
deploy.sh 脚本的配置请参考
Zookeeper环境准备(三台虚拟机)_cxy好好先生的博客-CSDN博客集群脚本的准备最近在学zookeeper,发现scp这东西真好用,可以给其他节点传输文件,非常的方便。但是拷贝文件到各个节点,节点数量少还是挺方便的,但是节点一多起来,就会发现重复的工作增加了好多,相同的命令需要输入好多次,而且接受的用户名如果改错了还会浪费时间。所以每次都用scp远程命令去拷贝不现实,所以现在编写一个分发脚本,单命令可以分发到各个节点。(以下是三台已经互相ssh免密登录的虚拟机centos7)1.创建/home/hadoop/tools 脚本存放目录(以下所有需要在ha..https://blog.csdn.net/weixin_52105111/article/details/1232683616.其他节点也要和master节点一样创建软连接,配置环境变量,直到java -version能出现java版本
二.zookeeper集群部署1.下载zookeeper
我选择的是apache的3.6.0版本
Index of /dist/zookeeperhttp://archive.apache.org/dist/zookeeper
这里有个坑,不要下载下面那个压缩包,要下载上面那个带bin的压缩包,因为下面那个不知道什么原因zookeeper安装好后启动,没有相应的进程,当时看了半天在日志里看到了错误,去网上搜索才发现很多人用下面和我一样碰到了同样的问题。
下载好后还是用Xftp传输到 虚拟机hadoop01的/home/hadoop/app 目录下
2.解压压缩包(hadoop01上)
tar -zxvf 压缩包名称
删除压缩包
rm 压缩包名称
3.创建软连接
ln -s zk文件夹名称 zookeeper
4.配置zookeeper环境变量
先进入/home/hadoop/app/zookeeper/conf
创建一个环境变量文件,先复制zoo_sample.cfg 一个命名为zoo.cfg并进入编辑模式
cp zoo_sample.cfg zoo.cfg vim zoo.cfg
# The number of milliseconds of each tick # 这个时间是作为Zookeeper服务器之间或者客户端与服务器>之间维持心跳的时间间隔 tickTime=2000 # The number of ticks that the initial # synchronization phase can take # 配置 Zookeeper 接受客户端初始化连接时最长能接受多少>个心跳时间间隔 initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement # Leader 与 Follower 之间发送消息,请求和应答时间长度 syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. # 数据目录需提前创建 dataDir=/home/hadoop/data/zookeeper/zkdata # 日志目录需提前创建 dataLogDir=/home/hadoop/data/zookeeper/zkdatalog # the port at which the clients will connect # 访问端口号 clientPort=2181 # the maximum number of client connections. # increase this if you need to handle more clients #maxClientCnxns=60 # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1 ## Metrics Providers # https://prometheus.io Metrics Exporter #metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider #metricsProvider.httpPort=7000 #metricsProvider.exportJvmInfo=true #server.每个节点服务编号=服务器ip地址:集群通信端口:>选举端口 server.1=0.0.0.0:2888:3888 #第一个原本应该是hadoop01 ,但是有问题后来才知道本机应该用0.0.0.0,所以在hadoop02上应该是server.2 的第一个变为0.0.0.0,hadoop03应该是 server.3 的第一个变为0.0.0.0 server.2=hadoop02:2888:3888 server.3=hadoop03:2888:3888 ###这里的server.X中的X 与后面的zkdata文件夹里的myid有着联系,hadoop01 X和myid文件中就是1。
5.将zookeeper分发到各个节点
deploy.sh /home/hadoop/app/apache-zookeeper-3.5.0-bin /home/hadoop/app slave
同样也是创建软连接
不说了这里。
6.在各个节点创建data文件
runRemoteCmd.sh "mkdir -p /home/hadoop/data/zookeeper/zkdata" all runRemoteCmd.sh "mkdir -p /home/hadoop/data/zookeeper/zkdatalog" all
runRemoteCmd.sh 脚本文件配置先看:
Zookeeper环境准备(三台虚拟机)_cxy好好先生的博客-CSDN博客集群脚本的准备最近在学zookeeper,发现scp这东西真好用,可以给其他节点传输文件,非常的方便。但是拷贝文件到各个节点,节点数量少还是挺方便的,但是节点一多起来,就会发现重复的工作增加了好多,相同的命令需要输入好多次,而且接受的用户名如果改错了还会浪费时间。所以每次都用scp远程命令去拷贝不现实,所以现在编写一个分发脚本,单命令可以分发到各个节点。(以下是三台已经互相ssh免密登录的虚拟机centos7)1.创建/home/hadoop/tools 脚本存放目录(以下所有需要在ha..https://blog.csdn.net/weixin_52105111/article/details/123268361
7.修改每个节点服务编号
分别到每个节点中进入/home/hadoop/data/zookeeper/zkdata 目录中,创建文件myid,里面的内容分别填充为 1, 2 ,3. (不要有空格)
配置好后用脚本查看各个节点myid,1,2,3
runRemoteCmd.sh "cat /home/hadoop/data/zookeeper/zkdata/myid" all
三.启动zookeeper
1.在hadoop01节点用脚本启动所有节点的zookeeper
在/home/hadoop/app/zookeeper/bin/这个文件夹中有很多脚本
runRemoteCmd.sh "/home/hadoop/app/zookeeper/bin/zkServer.sh start" all
2.查看zookeeper的状态
home/hadoop/app/zookeeper/bin/zkServer.sh status" all
这就算启动成功了
四.zookeeper shell 测试运行在/home/hadoop/app/zookeeper文件夹中 进入zookeeper
bin/zkCli.sh
ls / 查看目录 (可以把zookeeper里的ls看作linux中的cd) get /zookeeper/quota 查看文件 hlep 查看操作 create /test "test" #创建一个内容和名称都为test的文件 delete /test 删除/test文件 quit #退出zookeeper



