`
lc_koven
  • 浏览: 354049 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

bookkeeper安装及测试体验

 
阅读更多
    随着zookeeper 3.4.0 release,bookkeeper被从zk中分离成为了一个独立的项目。这是一个轻量级的项目,代码并不复杂,可以想见未来很可能被广泛用在各种应用系统中,以提供基于日志的高可靠共享消息存储。
    bookkeeper是一个基于zookeeper实现的分布式共享消息存储服务,它提供高可靠性、高并发性,以及很高的读写性能。
    向bookkeeper写数据时,先写log,然后再写内存,内存中的数据则定期flush到磁盘上。
    这篇blog提供一个简单的入门手册,下篇blog进行一些简单的分析。
安装(以trunk为例):
  1. 下载https://svn.apache.org/repos/asf/zookeeper/bookkeeper/trunk
  2. 编译:mvn package
  3. 编译完以后,我们主要关注bookkeeper-server以及bookkeeper-benchmark
  4. 先配置和启动zookeeper,不提


    进入bookkeeper,通过bin/bookkeeper bookie可以启动集群。不过在此之前我们先修改一下conf/bk_server.conf
bookiePort=3181
journalDirectory=/disk1/bookkeeper/bk-txn (write ahead log目录)
ledgerDirectories=/disk2/bookkeeper/bk-data (data 目录,注意我们与log放在不同的磁盘,以提高写速度,目前的多目录有点坑爹,代码里硬编码了只用第一个目录,应该是个bug)
zkLedgersRootPath=/ledgers (zookeeper上的根结点)
flushInterval=100 (数据刷新到磁盘的间隔)
zkServers=192.168.0.1:2181,192.168.0.2:2181,192.168.0.3:2181
serverTcpNoDelay=true (tcp参数,如果都是几十字节以下的小请求且tps很高,可以设为false)


    ok,将配置复制到所有的bookie节点上,每台节点上执行bin/bookkeeper bookie,启动完成

    测试代码:
    可以参照benchmark下的TestClient.java,
    注意:
  • 传入BookKeeper的初始参数是zookeeper的地址而不是bookkeeper
  • 为了提高性能,write要用异步且用回调来确认是否写入成功,LedgerHandle要保证在写入中能平均分配到


    测试结果参考:
    用了和白皮书上不同的机器配置(白皮书上的测试结果见:http://wiki.apache.org/hadoop/BookKeeperPerfPage
    我的测试配置:3台zk机器,5台bookie机器。且相互独立。client只用了一个,也独立
    bookie服务器配置:2块7.5k转速,1TB seta,8core 超线程到16 E5620, 24GB内存
    replication为2,集群数为3和5时,50个LedgerHandle,共写入100w行数据。测试结果如下:
集群数数据大小tps
350B117k/s
3100B82.8k/s
3500B51.9k/s
31KB33.6k/s

集群数数据大小tps
550B119k/s
5100B107k/s
5500B55.8k/s
51KB34.7k/s


    实际测试时,观察到在50和100B的时候,client的cpu到了瓶颈,在500/1000B下,client的网卡到了瓶颈。可见server端还是有很大空闲的。并发性能还没有测试。
0
0
分享到:
评论
3 楼 penkee 2017-11-08  
为何我启动 zookKeeper bookie 10  不能创建bookies,然后客户端创建ledger时候报错
Not enough bookies to create ledger


用 zookKeeper localbookie 10 就可以
2 楼 lc_koven 2011-12-06  
wangjinpeng 写道
https://github.com/yahoo/omid 这个可以给HBase提供跨行事务管理的项目就是用BookKeeper来做事务状态记录日志记录的,貌似HBase邮件列表里面还有人想把regionserver的WAL移到BookKeeper上去的打算,说是可靠性和性能都有提升,还能说region级别的WAL,哈哈,看来BookKeeper很有人气啊~~~

这个我们己经有过测试了。暂时不能用于生产,还有很多问题没解决,需要对代码再做一次改动。不过从原理上来看,它可以线性扩展地提供事务支持,很看好!
1 楼 wangjinpeng 2011-12-06  
https://github.com/yahoo/omid 这个可以给HBase提供跨行事务管理的项目就是用BookKeeper来做事务状态记录日志记录的,貌似HBase邮件列表里面还有人想把regionserver的WAL移到BookKeeper上去的打算,说是可靠性和性能都有提升,还能说region级别的WAL,哈哈,看来BookKeeper很有人气啊~~~

相关推荐

    Apache BookKeeper

    Apache BookKeeper是一个高性能、可靠的消息存储系统,主要用于分布式系统中写前日志(write-ahead log)的可靠存储。BookKeeper最初由Yahoo!研发,现在是一个Apache顶级项目。它的核心设计理念是提供一个共享存储,...

    bookkeeper

    在IT行业中,BookKeeper是Apache分布式日志服务的一部分,它为大数据系统如Hadoop提供高可用、低延迟的持久化日志存储。BookKeeper被设计为一个可靠的、可扩展的日志存储服务,常用于分布式数据库、消息队列和其他...

    bookkeeper-4.3.0-src.tar.gz

    《Apache BookKeeper 4.3.0 源码解析》 Apache BookKeeper是一个高性能、分布式日志服务,它是Apache Pulsar、Apache ZooKeeper等项目的重要组成部分,尤其在大数据和流处理领域有着广泛的应用。在学习Hadoop生态...

    大数据存储及分层实践-1-4 BookKeeper:Apache Pulsar的存储实现.pdf

    Apache BookKeeper是Apache软件基金会的一个开源项目,主要设计用于提供持久化的、高可用的数据存储服务,尤其适合大数据和实时流处理场景。它被广泛应用于Apache Pulsar等消息流平台,作为其底层存储引擎,确保数据...

    PyPI 官网下载 | Bookkeeper-0.0.2.tar.gz

    解压“Bookkeeper-0.0.2.tar.gz”后,我们通常会得到一个名为“Bookkeeper-0.0.2”的目录,其中包含“setup.py”文件、源代码、测试用例、文档和其他资源。`setup.py`是Python项目的配置文件,用于定义项目元数据、...

    大数据存储及分层实践-1-4 BookKeeper:Apache Pulsar的存储实现.zip

    本文将深入探讨BookKeeper,它是Apache Pulsar的数据存储实现,同时也是Apache的一个独立项目,专注于提供低延迟、高可用性的日志服务。 BookKeeper作为Pulsar的底层存储引擎,它的设计目标是为实时数据流处理提供...

    bookkeeper-4.2.2-src.tar.gz_分布式框架

    《分布式框架:深入理解Bookkeeper 4.2.2源码》 Apache BookKeeper是一个开源的、分布式的、可靠的顺序持久化日志服务,广泛应用于大数据领域,特别是作为Apache Pulsar、Apache ZooKeeper等项目的底层存储。在...

    project_2_bookkeeper

    Java Spring Boot的Bookkeeper应用程序 欢迎使用Bookkeeper-使用此应用程序,您可以帮助我们建立起庞大的书籍,作者,体裁和出版商数据库! 所有信息均可通过下面列出的GET端点公开获得。 要为数据库做出贡献,并...

    Pulsar Storage on BookKeeper

    是下一代云原生分布式消息流平台,集消息、存储、轻量化函数式计算为一体,采用计算与存储分离架构设计,支持多租户、持久化存储、多机房跨区域数据复制,具有强一致性、高吞吐、低延时及高可扩展性等流数据存储特性...

    bookkeeper-4.13.0-src.tar.gz

    BookKeeper是可靠的复制日志服务。 它可用于将任何独立服务转变为高可用性的复制服务。 BookKeeper具有高可用性(无单点故障),并随着添加更多存储节点而水平扩展。bookkeeper/bookkeeper-4.13.0

    桌面账本 BookKeeper 1.0.0

    个人或者企业都适用的桌面记账软件,灵活易用,可以通过设置配置满足大多数的应用要求,霏凡已有更新版本!!!!,霏凡已有更新版本!!!!,霏凡已有更新版本!!!!

    BookKeeper源码解析之Bookie启动流程(一)

    BookKeeper(BK)启动流程 文章目录BookKeeper(BK)启动流程解析命令行参数构建bookie所需的服务构建状态(指标)服务构建BookieService构造内存分配器构造NettyServer构建Bookie BK的启动入口类是Main,Main有一个...

    Flavio Junqueira:Apache BookKeeper——高性能可靠预写式日志

    为了高效的顺序写入,较好的容错性和可扩展性,设计了BookKeeper。它的结构由他们组成:Bookie(存储节点),Ledger(日志文档),Ensemble(用一组Bookie存储Ledger)。

    基于Java的高扩展性Apache BookKeeper分布式存储系统源码分析

    该项目是采用Java语言构建的Apache BookKeeper分布式存储系统源码,包含3268个文件,涵盖2354个Java源文件、442个Markdown文档、129个XML配置文件、60个Python脚本、56个Shell脚本、40个文本文件、18个JSON文件、16...

Global site tag (gtag.js) - Google Analytics