zookeeper数据存储及查看hbase信息

本文介绍了Zookeeper的数据存储机制,包括内存和磁盘数据存储,并详细讲解了如何使用zookeeper-shell命令查看节点ACL信息、Zookeeper根目录、节点目录以及HBase在Zookeeper中的相关信息,如regionserver信息和表锁状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

zookeeper数据存储及查看hbase信息

1.zookeeper数据存储:

1.1内存数据存储、磁盘数据存储.

 内存数据存储: 
 数据模型是一棵树。包括所有节点路径,节点信息,ACL等。
 DataTree:所有节点信息
 DataNode:数据存储最小单元

1.2磁盘数据存储:

目录在配置zookeeper的文件中。
ls /tmp/zookeeper/
myid  version-2/zookeeper_server.pid 
其中version-2是事务日志格式版本号,内部文件为事务日志
ls /tmp/zookeeper/version-2/
acceptedEpoch  currentEpoch  log.100000001  log.200000001  snapshot.100000000
查看日志:java -cp ..jar org.apache.zookeeper.server.LogFormatter /tmp/zookeeper/version-2/log.100000001

1.3其中snapshot.100000000为某一时刻的全量内存数据内容

2.zookeeper-shell命令式使用:

进入zookeeper:/zookeeper/bin/zkCli.sh

查看使用命令:help

ZooKeeper -server host:port cmd args

    stat path [watch]
    
    set path data [version]
    
    ls path [watch]
    
    delquota [-n|-b] path
    
    ls2 path [watch]
    
    setAcl path acl
    
    setquota -n|-b val path
    
    history 
    
    redo cmdno
    
    printwatches on|off
    
    delete path [version]
    
    sync path
    
    listquota path
    
    rmr path
    
    get path [watch]
    
    create [-s] [-e] path data acl
    
    addauth scheme auth
    
    quit 
    
    getAcl path
    
    close 
    
    connect host:port
    

ls:查看当前 ZooKeeper 中所包含的内容

ls2:查看当前节点数据并能看到更新次数等数据

create:创建一个新的 znode

get:获取znode数据信息

rmr:删除该节点

...........

查看节点acl信息:

[zk: localhost:2181(CONNECTED) 16] getAcl /hbase
'world,'anyone
: cdrwa

查看zookeeper根目录存储:

ls /根目录:
zookeeper   hbase两个节点

查看zookeeper节点目录

ls2 /zookeeper
[quota]
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1

查看hbase节点信息:

ls2 /hbasehbase节点
[replication, meta-region-server, rs, splitWAL, backup-masters, table-lock, flush-table-proc, region-in-transition, online-snapshot, switch, master, running, recovering-regions, draining, namespace, hbaseid, table]
cZxid = 0x100000002
ctime = Mon Nov 27 18:08:47 CST 2017
mZxid = 0x100000002
mtime = Mon Nov 27 18:08:47 CST 2017
pZxid = 0x200000430
cversion = 49
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 17

查看hbase集群在zookeeper记录的信息,比如:regionserver1-slave-1,regionserver2-slave-2

ls2 /hbase/rs
[slave-2,16020,1511853261863, slave-1,16020,1511853261718]
cZxid = 0x100000004
ctime = Mon Nov 27 18:08:47 CST 2017
mZxid = 0x100000004
mtime = Mon Nov 27 18:08:47 CST 2017
pZxid = 0x200000426
cversion = 22
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 2

表锁节点会有所有表。

[zk: localhost:2181(CONNECTED) 10] ls2 /hbase/table-lock
[dd, hbase:namespace]
cZxid = 0x100000009
ctime = Mon Nov 27 18:08:47 CST 2017
mZxid = 0x100000009
mtime = Mon Nov 27 18:08:47 CST 2017
pZxid = 0x20000046f
cversion = 23
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 23

查看所有表

[zk: localhost:2181(CONNECTED) 11] ls2 /hbase/table
[aa,hbase:meta, hbase:namespace]
cZxid = 0x100000006
ctime = Mon Nov 27 18:08:47 CST 2017
mZxid = 0x100000006
mtime = Mon Nov 27 18:08:47 CST 2017
pZxid = 0x200000478
cversion = 56
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 24

查看hbase的meta表信息,内涵server信息。

[zk: localhost:2181(CONNECTED) 14] get /hbase/table/hbase:meta
�master:16000�S�!��X�PBUF
cZxid = 0x200000034
ctime = Mon Nov 27 18:16:58 CST 2017
mZxid = 0x200000035
mtime = Mon Nov 27 18:16:58 CST 2017
pZxid = 0x200000034
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 31
numChildren = 0
在使用Python将数据从Flume、ZooKeeper和Kafka传输到HBase的过程中,通常会涉及以下几个步骤: 1. **Flume**:Flume是一个分布式、可靠、高可用的数据收集系统。你可以通过Flume的Source(数据源),如JDBC Source(数据库)、HTTP Source(网络请求)等,读取数据。然后创建ChanneL(通道)存储数据,最后通过Sink(数据 sink)如HDFS或Avro sink将数据发送到Kafka。 ```python from flume import Source, Channel, Sink source = Source('jdbc', ...) channel = Channel('memory') sink = Sink('kafka', brokers=['localhost:9092'], topic='your-topic') # 配置并启动Flume source.set_channel(channel) channel.add_sink(sink) ``` 2. **ZooKeeper**: ZooKeeper提供了一个协调服务,用于管理Flume的配置信息。你需要在ZooKeeper中配置Flume的拓扑结构,包括各个组件的位置和连接参数。 3. **Kafka**:Flume发送的数据最终会被推送到Kafka主题。在Python中,可以使用`kafka-python`库操作Kafka,例如生产者(Producer)将数据发布到指定topic。 ```python from kafka import KafkaProducer producer = KafkaProducer(bootstrap_servers='localhost:9092') producer.send('your-topic', key=b'the-key', value=data) ``` 4. **数据路由到HBase**: 数据从Kafka到达后,一般会有一个HBase消费者应用负责监听这个主题,并通过Kafka的消息队列模型消费数据。在Python中,可以用`hbase`库(不是Apache HBase官方提供的,而是基于Thrift接口的客户端)来操作HBase。 ```python from hbase import HBaseClient hbase = HBaseClient(hosts='localhost:9090', table_name='your-table') row_key, column_family, column_qualifier = ..., ..., ... hbase.put(row_key, {column_family: {column_qualifier: data}}) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奈文摩尔ST

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值