当前位置: 首页 > news >正文

网站设计风西宁做网站好的公司

网站设计风,西宁做网站好的公司,图书馆网站建设方案设计论文,怎么创建收费网站sstableloader是cassandra提供的bulkload工具#xff0c;可以将sstable文件导入到集群中。本文详细介绍其用法和实现原理。 用法 sstableloader工具在cassandra的bin目录下面#xff0c;用法如下#xff1a; bin/sstableloader options dir_path 具体的…sstableloader是cassandra提供的bulkload工具可以将sstable文件导入到集群中。本文详细介绍其用法和实现原理。 用法 sstableloader工具在cassandra的bin目录下面用法如下 bin/sstableloader options dir_path 具体的选项可以参考官方文档的介绍常见的选项有 -d, –nodes 目标集群的nodes -u, –username 用户名 -pw, –password 密码 -t, –throttle 限速单位Mbits/s (默认不限制) -cph, –connections-per-host 和每个节点建立多少连接 dir_path参数指定要导入的sstable文件所在的目录。需要注意的是sstableloader会把目录名作为表名上一级目录名作为keyspace名称。例如sstableloader /whatever/path/test/t ...这个命令会把数据导入到test.t这个表里面。 sstableloader常见的使用场景包括 bulkload批量写入数据跨集群数据迁移从备份的snapshot文件恢复数据 bulkload批量写入 cassandra中提供了SSTableWriter这个类来实现对sstable的写入使用这个类用户可以不需要关心sstable的具体文件格式。需要注意的是使用这个类需要依赖cassandra-all而不是cassandra的java driver。如下代码示意了如何使用SSTableWriter在本地生成sstable文件 final String KS cql_keyspace7;final String TABLE table7;final String schema CREATE TABLE KS . TABLE ( k int, c1 int, c2 int, v blob, PRIMARY KEY (k, c1, c2) );File tempdir Files.createTempDir();File dataDir new File(tempdir.getAbsolutePath() File.separator KS File.separator TABLE);assert dataDir.mkdirs();CQLSSTableWriter writer CQLSSTableWriter.builder().inDirectory(dataDir).forTable(schema).using(INSERT INTO KS . TABLE (k, c1, c2, v) VALUES (?, ?, ?, textAsBlob(?))).build();writer.addRow(1, 2, 3, abc);writer.addRow(4, 5, 6, efg);writer.close(); 生成文件之后可以使用sstableloader将生成的文件导入到cassandra中。使用这种方式写入数据减少了对服务器的请求量而且写入本地文件会比向服务器写入数据要快很适合大批量数据的离线导入。 集群间数据迁移 sstableloader也可以用来做集群间的数据迁移。具体步骤如下 1 在目标集群创建要同步的表的schema。 2 停止源集群写入针对停机迁移或是开启增量数据的迁移针对不停机迁移。 3 在源集群的每个节点执行flushbin/nodetool flush。 4 在源集群节点上执行sstableloader将数据文件导入到目标集群中。 原理 sstableloader会首先通过java客户端与服务器建立连接并读取meta信息。之后在storage_port通过streaming协议将sstable文件发送到各个节点上。在这个过程中sstableloader并不是简单的把数据文件拷贝到每个节点而是根据meta中的相关信息给每个节点发送他所管理的那一段数据。 下面简单介绍一下cassandra中的streaming协议协议。 streaming协议 在Cassandra中streaming协议用来在两个节点之间同步sstable中的一段数据的过程通常用于数据修复或移动的过程。除了sstableloader以外如下场景中也可能会有streaming的过程 repairbootstrap过程gossip收到和本节点有关的REMOVED_TOKEN状态变化nodetool里面会触发数据移动或修复的命令例如repair,rebuild,removenode,move Streaming过程中两个节点的网络交互如下图所示这个过程大致可以分为如下四个阶段 1 建立连接 2 streaming准备阶段 3 streaming阶段 4 完成 1 建立连接 这个阶段主要是建立连接并把连接和StreamSession关联起来。 stream的发起节点创建一个StreamSession对象并建立两个到远端节点的连接一个用于后续的发送消息 一个用于接收消息。之后会通过这两个连接向远端发送StreamInit消息通知远端节点开启一次streaming并标明每个连接的用途。 远端收到StreamInit消息后也会创建自己的StreamSession对象并将收到StreamInit消息的两个连接和StreamSession关联起来。 连接建立完成后进入准备阶段。 2 准备阶段 这个阶段主要用于协商节点之间需要传输的文件片段。 发起节点首先发送一个PrepareMessage其中包含当前节点会向远端节点发送哪些文件或片段以及需要对方提供哪些表的哪些range的数据。 远端节点收到请求后会根据请求的range查找对应的sstable然后向发起节点返回一个PrepareMessage其中包含要发送哪些sstable的哪些片段之后远端节点进入streaming阶段。 发起节点收到PrepareMessage后记录要接收的sstable片段然后进入streaming阶段。 3 streaming阶段 这个阶段就开始进行文件传输了。发送端和接收端会分别建立相应的任务。 发送端会针对要进行streaming的文件按顺序发送FileMessage。FileMessage由消息头FileMessageHeader和文件内容的流组成。当所有文件发送完成后StreamTransferTask标记为完成。 接收端将收到的文件内容写入sstable。当一个StreamReceiveTask中的所有文件都接收完成后将sstable加入到ColumnFamilyStore中。 如果接收过程中发生错误接收端会发送一个SessionFailedMessage给发送端并关闭StreamSession。 当所有发送和接收任务都完成后进入完成阶段。 4 完成阶段 当一个节点完成所有的发送和接收任务后如果该节点已经收到了CompleteMessage则会向对方发送CompleteMessage并关闭session如果还没有收到CompleteMessage则会向对方发送CompleteMessage并等待对方返回。 原文链接 本文为云栖社区原创内容未经允许不得转载。
http://www.yutouwan.com/news/264667/

相关文章:

  • 365建站网建设网络道德教育网站不包括
  • 贵阳网站建设价格山东建设管理局网站
  • 包小盒设计网站济南做网站最好的公司
  • 商城网站模块有记事本做简易网站
  • 奉贤做网站的wordpress iis8.5
  • 轻云服务器菁英版 多个网站深圳百度关键词
  • 哪些网站推广公司大型门户网站核心技术
  • 湖南省住建云公共服务平台郑州网站优化网络建设有限公司
  • 顺德做网站的公司汉中360网站建设
  • 大同网站建设设计wordpress淘宝客个人中心
  • 青海西宁制作网站企业公司做网站费用计入什么科目
  • 品牌形象网站有哪些公司管理类培训
  • phpcms学校网站模板做同城信息网站怎么赚钱
  • 做网站哪个服务商便宜做视频背景音乐专用网站
  • 哪个网站上可以做初中数学题wordpress文章归档插件
  • 网站打开速度慢跟什么有关系南通优普网站建设团队
  • 重庆网站建设公司费用wordpress wiki使用
  • 电商网站建设赏析网站关键词seo推广公司哪家好
  • 蓬莱有做网站的吗wordpress oss upload
  • 建ic网站wordpress调用用户
  • 专门建站的公司免费商标注册查询
  • 网站定制一般价格多少网站正能量免费下载
  • 做pc端网站代理商阿里云安装wordpress
  • 资阳建设局网站软件工程的出现是由于
  • 大会的网站架构用笔记本做网站服务器
  • 自己建网站需要备案吗网上定做相册
  • 德州市建设工程质量监督站网站手机有软件做ppt下载网站有哪些内容吗
  • 可以把网站服务器放在哪里织梦网站怎么做seo优化
  • 和15岁女儿做很舒服网站爱采购卖家版下载
  • 女生冷门又高薪的职业南京seo公司哪家好