windows系统如何将文件上传zookeeper

windows系统如何将文件上传zookeeper,第1张

只胡肢槐要获取到 Zookeeper 的饥猛压缩包并解压到某个目录如:C:\zookeeper-3.4.5\下,Zookeeper 的启动脚本在 bin 目录下,Windows 下裤友的启动脚本是 zkServer.cmd。

Curator是Netflix开源的一套ZooKeeper客户端框架,用它来 *** 作zookeeper更加简单方迹哗便,按Curator官方所比喻的,guava to JAVA, Curator to Zookeeper,Curator采用了fluent风格的代码,非常简洁。

主要看下,使用curator *** 作zookeeper的一些基础例子:

主要的功能:

1,在zk上添加,或更新数据

2,删除zk节点上数据

3,读取某个节点上的数据

4,上传一些本地文件到zk节点上

5,检查zookeeper上是否存在某个节点路径

核姿尺行心代码如下:

package com.qin.curator.zk

import java.io.File

import java.util.List

import org.apache.commons.io.FileUtils

import org.apache.curator.CuratorZookeeperClient

import org.apache.curator.RetryPolicy

import org.apache.curator.framework.CuratorFramework

import org.apache.curator.framework.CuratorFrameworkFactory

import org.apache.curator.framework.CuratorFrameworkFactory.Builder

import org.apache.curator.framework.api.CreateBuilder

import org.apache.curator.retry.ExponentialBackoffRetry

import org.apache.zookeeper.WatchedEvent

import org.apache.zookeeper.Watcher

import org.apache.zookeeper.ZKUtil

import framework.CrudExamples

/**

* @author qindongliang

* curator *** 作zookeeper的

* 基本例子

* **/

public class CuratorTools {

static CuratorFramework zkclient=null

static String nameSpace="php"困团

static {

String zkhost="192.168.46.22:2181"//zk的host

RetryPolicy rp=new ExponentialBackoffRetry(1000, 3)//重试机制

Builder builder = CuratorFrameworkFactory.builder().connectString(zkhost)

.connectionTimeoutMs(5000)

.sessionTimeoutMs(5000)

.retryPolicy(rp)

builder.namespace(nameSpace)

CuratorFramework zclient = builder.build()

zkclient=zclient

zkclient.start()// 放在这前面执行

zkclient.newNamespaceAwareEnsurePath(nameSpace)

}

public static void main(String[] args)throws Exception {

CuratorTools ct=new CuratorTools()

//ct.getListChildren("/zk/bb")

//ct.upload("/jianli/123.txt", "D:\\123.txt")

//ct.createrOrUpdate("/zk/cc334/zzz","c")

//ct.delete("/qinb/bb")

//ct.checkExist("/zk")

ct.read("/jianli/123.txt")

zkclient.close()

}

/**

* 创建或更新一个节点

*

* @param path 路径

* @param content 内容

* **/

public void createrOrUpdate(String path,String content)throws Exception{

zkclient.newNamespaceAwareEnsurePath(path).ensure(zkclient.getZookeeperClient())

zkclient.setData().forPath(path,content.getBytes())

System.out.println("添加成功!!!")

}

/**

* 删除zk节点

* @param path 删除节点的路径

*

* **/

public void delete(String path)throws Exception{

zkclient.delete().guaranteed().deletingChildrenIfNeeded().forPath(path)

System.out.println("删除成功!")

}

/**

* 判断路径是否存在

* @param path

* **/

public void checkExist(String path)throws Exception{

if(zkclient.checkExists().forPath(path)==null){

System.out.println("路径不存在!")

}else{

System.out.println("路径已经存在!")

}

}

/**

* 读取的路径

* @param path

* **/

public void read(String path)throws Exception{

String data=new String(zkclient.getData().forPath(path),"gbk")

System.out.println("读取的数据:" data)

}

/**

* @param path 路径

* 获取某个节点下的所有子文件

* */

public void getListChildren(String path)throws Exception{

List<String>paths=zkclient.getChildren().forPath(path)

for(String p:paths){

System.out.println(p)

}

}

/**

* @param zkPath zk上的路径

* @param localpath 本地上的文件路径

*

* **/

public void upload(String zkPath,String localpath)throws Exception{

createrOrUpdate(zkPath, "")//创建路径

byte[] bs=FileUtils.readFileToByteArray(new File(localpath))

zkclient.setData().forPath(zkPath, bs)

System.out.println("上传文件成功!")

}

}

安装zookeeper首先要安装JDK,Linux有自带的OPENJDK,要卸载然后重新安装。

1. java -version 查看JDK版本

2. rpm -qa | grep java 查找有哪些java相关的包

3. rpm -e --nodeps tzdata-java-2015e-1.e16.noarch  卸载,--nodeps 就是no depends的意思,忽略相关依赖强制卸载

4. mkdir /export/server 创建zookeeper和 JDK安装的目录

5.

mv jdk1.8.0_65.tar.gz /export/server 把jdk安装包移动到/export/server文件夹 

cd /export/server  进入该文件夹, ls查看可以看到安装包

tar -zxvf jdk1.8.0_65.tar.gz   把JDK上传到linux系统中,然后执行tar解压 *** 作 

6. vi /etc/profile 编辑/etc目录下的profile文件,也就是配置环境变量的配置文件。

7. 打开文件后,按大写的G直接跳到文件的最后一行,然后按 i 进入编辑文件状闹弯态,在末尾添加这三行配置信息

export JAVA_HOME=/export/server/jdk.1.8.0_65     配置一个JAVA_HOME的变量,值是jdk安装的目录,这个JAVA_HOME在下面两行会用到

export PATH=$PATH:$JAVA_HOME/bin                    

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

编辑完毕,按ESC退出文件编辑状态,然后输入 指令  :wq (冒号+wq) 回车退出并保存该文件。

8. source /etc/profile   刷新profile文件到系统内存。

9. 在任意目录下 输入  java -v 查看JDK版本

以上JDK安装完毕,接下来安装zookeeper。

10. 和上传JDK一样,把zookeeper-3.4.10.tar.gz文件放到/export/server目录下,并进行解压。(忘记了就去看第5步)

       tar -zxvf zookeeper-3.4.10.tar.gz

  解压之后要进行相关的配置(软件安装无非就是解压+配置)

这里主要有两个重要要改的地方:1.zookeeper服务启动后数据文件保存在哪里? 2. zookeeper通常是会集群化,也就是启动好几台zookeeper同时提供服务的,因此在每台zookeeper服务的配置文件里面都要配置上其它zookeeper服务的ip和端口。 第二点不懂的话直接看配置文件就好了。

11.  首先实现第一点,创建zookeeper数据保存目录

mkdir /export/data/zkdata 创建zkdata文件夹,用于存在zookeeper数据.(这条如果报错了,说明你应该先执行mkdir /export/data/创建data目录)

12. 接下来进行配置

cd zookeeper/conf/  配置文件放在该目录下,ll可以查看有哪些文件,如图

其中有个zoo_sample.cfg 文件,这个文件是自带的一个模板,就是告诉你配置文件要照着这个样子去抄。。。

然后有个重要的东西就是:zookeeper启动的时候,默认是会读取该文件路径下配置文件zoo.cfg的,但是这里默认是i没有这个文件的。所以我们直接复制一个zoo_sample.cfg 重命名为zoo.cfg就OK了。但液春闷是要进去做自己的相关配置改动。 复制文件命令是:

cp zoo_sample.cfg zoo.cfg

13. vi zoo.cfg  开始编辑配置文件了,打开可以看见一堆你可能看不懂的东西,但是不重要因为大多数都是注释掉的东西。新手就别管那么多了。

这里我们主要要修改的是两个东西,哪两个? 前面黑体字有说过了:数森歼据存放目录,集群中各个zookeeper服务的ip port。

同样的,按 i 进入编辑模式,找到dataDir=/tmp。。。这一行。 这一行就是设置数据存放的目录。 把它改成我们自己新建的目录:

dataDir=/export/data/zkdata/ 这样第一点就配置完了。

实际上到这里一台zookeeper服务已经安装完毕了,但是说过了,zookeeper是集群,所以得多搞几个服务器。我这里用了三台虚拟机,复制三台。ip分别是192.168.209.128  / 192.168.209.129 / 192.168.209.130,这三台同样的安装JDK 和zookeeper。 重复前面的 *** 作就行,也可以直接复制虚拟机。

同样的在zoo.cfg里面,大写的G到最后一行。在末尾加上这三行配置:

server.1=192.168.209.128:2888:3888    #三台服务对应server 1 2 3 ,对应三个ip。 后面两个端口分别是 心跳端口2888 和选举端口。

server.2=192.168.209.129:2888:3888

server.3=192.168.209.130:2888:3888

然后保存退出就OK了。

13. 最后一步: 就是给三台zookeeper服务设置id。在哪里设置呢?

就是在zookeeper保存文件的目录下创建一个/export/data/zkdata/myid 文件。 文件名不能乱写,就得是是这个,选举的时候很关键的。

我们有三台zookeeper server,每台的myid文件数字 不一样,你得进入三台服务器分别编辑这个文件。

第一台服务器,vi myid  编辑该文件,写入一个数字 1 

第二台服务器,vi myid  编辑该文件,写入一个数字 2

第三台服务器,vi myid  编辑该文件,写入一个数字 3

14. 最后你启动一下zookeeper试试安装成功了没 。

/export/server/zookeeper/bin/zkServer.sh start   启动zookeeper的指令。可以看到日志打印出来的是默认Using zoo.cfg这个配置文件。三台服务你都要启动,zookeeper会根据你配置的三个ip port去发送心跳,自动建立集群。 并且根据myid去选举哪个server是leader,哪个是follower。 

【这里呢就安装完毕了! 动手 *** 作也就14步是不是很简单。但是搞清楚原理才是最主要的。】


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12144254.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存