zkutil.java的简单介绍

博主:adminadmin 2022-11-24 21:53:07 54

今天给各位分享zkutil.java的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

如何使用Curator操作zookeeper

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;

虚拟机下伪分布式部署hadoop与hbase,连接hbase shell建表,logs日志报如下错误。求大神给出解决办法!

hbase的hbase-site.xml中未配置

property

namehbase.zookeeper.quorum/name

valuelocalhost/value

/property

hbase shell模式下报错

property

namehbase.zookeeper.quorum/name

valuerh02/value

/property

查看该属性配置的是否正确(hbase-site.xml中)

Hbase 启动报错 class org.apache.hadoop.hbase.master.HMaster

抱歉碰不到机器可能无法确定问题的具体原因,但从你的问题看出你可能走入了一个误区——认为Hbase启动或安装出现问题

从原理上讲,在集群中Zookeeper中会通过投票方式选举出一个Zookeeper为主,其余类似于主的热备

而主Zookeeper会指定Hmaster,并由指定的Hmaster来进行Hbase的操作

现在你的报错是ZooKeeper create failed after 4 attempts(Zookeeper尝试创建并失败4次导致最终无法创建)带来的后果就是你的Hmaster未选举出(并离线),使得你的Hbase无法管理

大概原因可能有两种

一种是因为各机器间无法正常通信导致集群脑裂Zookeeper无法进行选举

或是各主机之间权限不足导致声明Master的短命节点文件无法被创建(可能性较低)

(也许干脆就是集群数量过小无法选举?)

大概是这些可能,我也还在学习阶段无法给出太过明确的答案,不过建议你从集群互相的通讯(包括每个节点上的Zookeeper安装情况以及互信、网络情况来入手考虑一下?我和很多朋友在安装过程中因为各个节点的软件源以及互信以及软件仓库网络配置等问题纠结了很多天,还有些安装包本身是有问题的(文件损坏或是唯独nagios安装包权限为222导致错误),你可以从这方面入手试试

JAVA MD5 和NET MD5

/**

* 利用MD5进行加密

*

* @param input

* 待加密的字符串

* @return 加密后的字符串

*/

public static String EncoderByMd5(String input) {

byte[] source = input.getBytes();

String s = null;

char hexDigits[] = { // 用来将字节转换成 16 进制表示的字符

'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd',

'e', 'f' };

try {

MessageDigest md = MessageDigest.getInstance("MD5");

md.update(source);

byte tmp[] = md.digest(); // MD5 的计算结果是一个 128 位的长整数,

// 用字节表示就是 16 个字节

char str[] = new char[16 * 2]; // 每个字节用 16 进制表示的话,使用两个字符,

// 所以表示成 16 进制需要 32 个字符

int k = 0; // 表示转换结果中对应的字符位置

for (int i = 0; i 16; i++) { // 从第一个字节开始,对 MD5 的每一个字节

// 转换成 16 进制字符的转换

byte byte0 = tmp[i]; // 取第 i 个字节

str[k++] = hexDigits[byte0 4 0xf]; // 取字节中高 4 位的数字转换,

// 为逻辑右移,将符号位一起右移

str[k++] = hexDigits[byte0 0xf]; // 取字节中低 4 位的数字转换

}

s = new String(str); // 换后的结果转换为字符串

} catch (Exception e) {

e.printStackTrace();

}

return s;

}

加密原文:16||334111e549514f0aa7681394686010d8|tgyx_abcabc

加密后:5f899d929d1cc2feab528a9af7db6e66

你看这样行不?

关于zkutil.java和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-24,除非注明,否则均为首码项目网原创文章,转载请注明出处。