prima evb_用Priam设置Cassandra

prima evb

前面已经解释了如何在AWS中设置Cassandra 。 所描述的设置有效,但在某些情况下可能还不够。 例如,它不能为您提供制作和还原备份的简便方法,添加新节点依赖于自定义python脚本,该脚本会随机选择一个种子。

因此,现在我将解释如何设置Netflix 的Cassandra帮助器工具Priam 。

我对其进行设置的主要原因是它提供的备份/还原功能。 所有其他备份方法都非常繁琐,Priam恰好实现了重要部分-快照和增量备份 。

但是,Priam有点棘手。 设置指南不是太详细,也不容易找到(这是Wiki中的最后一项,不是立即可见的项目)。 首先,每个Cassandra版本都有一个分支,因此您必须签出适当的分支并进行构建。 我立即在这里碰到一个问题,因为它们的命名不允许eclipse导入gradle项目。 在24小时内,我报告了3个问题,这并不理想。 Priam不支持动态SimpleDB名称,也不允许您通过命令行覆盖捆绑的属性。 我希望没有更大的问题。 我遇到的那些问题,我进行了修复并提出了拉取请求 。

设置是什么样的?

  • 将javaagent附加到JVM选项
  • 运行Priam网站
  • 它会自动替换大部分cassandra.yaml,包括种子提供程序(即,节点如何在集群中找到其他节点)
  • 运行卡桑德拉
  • 它获取种子信息(存储在AWS SimpleDB中)并连接到集群

我决定使用独立的跳船赛跑者来运行war文件,而不是安装tomcat。 就shell脚本而言,核心位看起来像这样(除了在节点初始化时运行的原始文章中的shell脚本 ):

# Get the Priam war file and jar file
aws s3 cp s3://$BUCKET_NAME/priam-web-3.12.0-SNAPSHOT.war ~/
aws s3 cp s3://$BUCKET_NAME/priam-cass-extensions-3.12.0-SNAPSHOT.jar /usr/share/cassandra/lib/priam-cass-extensions.jar
# Set the Priam agent
echo "-javaagent:/usr/share/cassandra/lib/priam-cass-extensions.jar" >> /etc/cassandra/conf/jvm.options# Download jetty-runner to be able to run the Priam war file from the command line
wget http://central.maven.org/maven2/org/eclipse/jetty/jetty-runner/9.4.8.v20171121/jetty-runner-9.4.8.v20171121.jar
nohup java -Dpriam.clustername=LogSentinelCluster -Dpriam.sdb.instanceIdentity.region=$EC2_REGION -Dpriam.s3.bucket=$BACKUP_BUCKET \
-Dpriam.sdb.instanceidentity.domain=$INSTANCE_IDENTITY_DOMAIN -Dpriam.sdb.properties.domain=$PROPERTIES_DOMAIN \
-Dpriam.client.sslEnabled=true -Dpriam.internodeEncryption=all -Dpriam.rpc.server.type=sync \
-Dpriam.partitioner=org.apache.cassandra.dht.Murmur3Partitioner -Dpriam.backup.retention.days=7 \
-Dpriam.backup.hour=$BACKUP_HOUR -Dpriam.vnodes.numTokens=256 -Dpriam.thrift.enabled=false \
-jar jetty-runner-9.4.8.v20171121.jar --path /Priam ~/priam-web-3.12.0-SNAPSHOT.war &while ! echo exit | nc $BIND_IP 8080; do sleep 10; doneecho "Started Priam web package"service cassandra start
chkconfig cassandra onwhile ! echo exit | nc $BIND_IP 9042; do sleep 10; done

BACKUP_BUCKET,PROPERTIES_DOMAIN和INSTANCE_DOMAIN是通过CloudFormation脚本提供的(因为我们无法事先知道确切的名称,尤其是对于SimpleDB)。 请注意,这些属性在主存储库中不起作用-我在请求请求中添加了它们。

为了使其正常工作,您需要创建两个SimpleDB域(例如,通过CloudFormation)。 您可以将SimpleDB替换为某些其他数据存储(而不依赖于AWS​​),但这暂时不在范围之内。

运行Priam的结果是您在SimpleDB中拥有了Cassandra节点(您可以使用此chrome扩展名浏览它,因为AWS不提供任何UI),并且当然,备份将在备份S3存储桶中自动创建。

然后,您可以通过登录到每个节点并执行以下操作来还原备份:

curl http://localhost:8080/Priam/REST/v1/restore?daterange=201803180000,201803191200®ion=eu-west-1&keyspaces=your_keyspace

您指定还原的时间范围。 仍然不理想,因为人们希望进行一键式还原,但是比推出自己的备份和还原基础结构要好得多。

这里有一个非常重要的说明–不支持vnode。 我最初的群集默认每台计算机有256个vnode,现在只有1个,因为Priam不支持1个以外的任何功能。这很遗憾,因为vnode是设置Cassandra的推荐方法。 显然,Netflix不使用那些。 有一个进行中的分支机构在5年前就被放弃了。 幸运的是,有一个新的带有Vnode支持的拉取请求 ,可以与我从该分支发出的拉取请求一起使用。

Priam用其他值替换了一些Cassandra默认值,因此您可能要比较当前设置和新生成的cassandra.yaml。 总体而言,它还没有准备好进行超级制作,但显然是这样,因为Netflix正在将其用于制作。

翻译自: https://www.javacodegeeks.com/2018/03/setting-up-cassandra-with-priam.html

prima evb

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 9:Process API的增强

Java 9对Process API进行了各种改进,用于控制和管理操作系统进程。 获取有关流程的信息 有一个新的ProcessHandle类,提供了进程的pid,父级和后代,以及有关开始时间和累积CPU时间的信息。 jshell> Process p new ProcessBui…

HTTP的操作过程

HTTP的操作过程 HTTP协议定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。HTTP是面向事务(一系列的信息交换,不可分割的整体)的应用层协议,它是万维网上能够可靠…

什么是绝对值?

绝对值是指一个数在数轴上所对应点到原点的距离,用 | | 来表示。|b-a| 或 |a-b| 表示数轴上“表示a的点”和“表示b的点”的距离。 正数 x 的绝对值表达式:| x | x,负数 x 的绝对值表达式:| x | -x,0 绝对值表达式&…

viewer vue 文档_vue中使用viewerjs

项目创建vue init webpack mytest001安装viewerjsnpm install viewerjs删掉生成的项目里面的helloWord.vue 修改路由 创建一个index.vueindex.vue代码:import Viewer from viewerjs;import viewerjs/dist/viewer.css;export default {name: HelloWorld,data() {return {imgArr:…

junit junit_JSON的JUnit Hamcrest Matcher

junit junit这篇文章展示了如何编写JUnit测试来检查对象是否与JSON字符串匹配。 如果您要实现REST服务并想测试您的服务是否产生了预期的JSON响应,那么这非常重要。 JSONassert是比较JSON对象的有用库。 首先,您必须将Java对象转换为JSON字符串&#xf…

HTTP报文格式

HTTP报文格式 HTTP规范[RFC 1945;RFC 26167;RFC 7540:包含了对HTTP 报文格式的定义。HTTP 报文有两种:请求报文和响应报文。 HTTP请求报文 从客户向服务器发送请求报文。 结构如图: 开始行 第一行为开始行也叫做…

什么是公倍数

公倍数(common multiple)是指在两个或两个以上的自然数中,如果它们有相同的倍数,这些倍数就是它们的公倍数。公倍数中最小的,就称为这些整数的最小公倍数(lowest common multiple)。 A和B,A/BC&#xff0c…

代理服务器

代理服务器 是一种网络实体,又称万维网高速缓存。代理服务器把最近的一些请求和响应暂存在本地磁盘中。 当新请求到达时, 若代理服务器发现这个请求与暂时存放的请求相同, 就返回暂存的响应, 而不需要按URL的地址再次去互联网访问…

json解析对象时指定解析_不解析,使用解析对象

json解析对象时指定解析将面向对象的后端与外部系统集成的传统方式是通过数据传输对象 ,这些对象在外出之前先序列化为JSON,然后在返回时反序列化。 这种方法很流行,而且是错误的。 序列化部分应该由打印机代替,我在前面已经解释过…

centos7设置键盘类型_CentOS 7 系统区域(语言)和键盘设置

即使是在window中,平常说的语言设置这一项也是归类为系统区域,CentOS可以通过修改/etc/locale.conf配置文件或使用localectl命令来进行设置,一般在安装时设置为默认选择(英文、美式键盘)即可。 修改locale.conf [root@localhost ~]#vim /etc/locale.conf LANG="en_US.U…

什么是公约数/公因数

公约数,亦称“公因数”。它是指能同时整除几个整数的数。如果一个整数同时是几个整数的约数,称这个整数为它们的“公约数”;公约数中最大的称为最大公约数。对任意的若干个正整数,1总是它们的公因数。 例如: 12 和 15…

vue对象拼接_vue 俩个数组对象合并成一个

情况是这样的后端给了几个接口数据 我合成一个 前端小白 勿喷 data(){return{list:[{date:20201, mc : 1 }, {date:20202, mc : 2 }, {date:20203, mc : 3 }, {date:20204, mc : 4, } ], newlist:[ {date:20201, mc : 6, age:12 }, {date:20202, mc : 3, age:12 }, {date:20203…

jdk8 获取上一个月时间_JDK 10:FutureTask获取一个toString()

jdk8 获取上一个月时间我已经很长时间了,对于大多数具有独特属性的Java类,开发人员应该花些时间重写Object.toString() ,即使它仅是由IDE生成的实现或使用诸如Apache之类的库类来实现Commons Lang的ToStringBuilder 。…

什么是质数

质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。 质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。…

计算机网络笔记----应用层

应用层应用层协议原理网络应用程序的体系结构客户-服务器体系结构P2P体系结构进程通信进程与计算机网络之间的接口进程寻址可供应用程序使用的运输服务可靠数据传输吞吐量定时安全性因特网提供的运输服务TCP服务面向连接的服务可靠的数据传送服务拥塞控制TCP安全UDP服务应用层协…

js 导出pdf上传至oss_js实现oss文件上传及一些问题

关于兼容性问题,ie8以下的可以使用4.x的版本一、引入sdk和jq二、基本配置var client newOSS.Wrapper({region:,accessKeyId:‘,accessKeySecret:,bucket:})region:阿里云服务器地址accessKeyId:您的keyaccessKeySecret:您的密码&a…

缓冲池java_了解Java缓冲池

缓冲池java了解Java缓冲池 缓冲池空间位于垃圾收集器管理的内存之外。 这是分配本地堆外内存的一种方法。 使用缓冲池有什么好处? 为了回答这个问题,让我们首先了解什么是字节缓冲区。 字节缓冲区 非直接缓冲区 ByteBuffer类附带了java.nio包。 它允许我…

什么是合数

合数指自然数中除了能被1和本身整除外,还能被其他数(0除外)整除的数。 合数是指在大于1的整数中除了能被1和本身整除外,还能被其他数(0除外)整除的数。与之相对的是质数,而1既不属于质数也不属…

计算机网络应用层笔记--域名系统DNS

域名系统DNS标识因特网上主机的方式主机名IP地址域名系统(DNS)工作过程互联网的域名结构顶级域名国家顶级域名nTLD通用顶级域名gTLD基础结构域名二级域名类别域名行政区域名域名树DNS规定域名服务器域名服务器的层次根域名服务器顶级域名服务器(TLD服务器)权限域名服务器本地域…

protobuf3 自定义option_Protobuf3 语法指南

以前我翻译了 Protobuf2 语法指南,现在 千念飞羽把protobuf3的语法指南也翻译了,我也转载一下,读者可以有个参考。 译文地址是: Protobuf3语言指南。英文原文:Language Guide (proto3)中文出处:Protobuf语言指南[译]Pr…