当前位置: 首页 > 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.sadfv.cn/news/378597/

相关文章:

  • 免费网络爬虫网站纯 flash 网站
  • 网站建设所需ie禁止访问网站
  • 凯里网站建设流程个人网页制作成品
  • 潍坊做网站好看wordpress极简模版
  • 网站关键词排名优化电话建设银行手机查询网站
  • 济宁建设网站看装修案例的网站
  • 泰安微信网站制作网吧手机网站模版
  • 网页设计制作一个餐饮网站网站结构图怎么画
  • 企业网站后台管理系统模板下载wordpress文章全屏
  • 应聘网站建设工程师企业seo网站优化设计
  • 专业网站建设品牌网页与网站的区别是什么
  • 网站服务器用哪个好北京装修大概多少钱一平方
  • 国外门户网站设计购物网站大全
  • 常州商城网站制作公司三合一网站有必要吗
  • 网站空间的控制面板首页提升学历选什么专业比较好
  • 网站建设专业性的评估标志设计图片
  • 网站内容维护合同做数据ppt模板下载网站
  • 免费做网站自助建站唐山专业网站建设公司
  • 传统网站建设网站做代理需要空间是多少钱
  • 佛山网站建设费用王也天 葛优
  • 辛集seo网站优化公司阿里云申请域名后网站
  • 成都大丰网站建设例表网wordpress自适应博客主题
  • 网站切图网络运维工程师需要考什么证书
  • 二手闲置平台网站怎么做百度商城网站建设
  • 网站备份信息网站维护页面 下载
  • 天津开发区建网站公司网站建设相关的博客有哪些
  • 免费ppt模板的网站网络营销要怎么做
  • 网站运营阶段大连建行网点
  • tq网站建设免费做外贸的网站建设
  • 织梦怎么做淘客网站wordpress 预订插件