前面已经解释了如何在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

用Priam设置Cassandra相关推荐

  1. prima evb_用Priam设置Cassandra

    prima evb 前面已经解释了如何在AWS中设置Cassandra . 所描述的设置有效,但在某些情况下可能还不够. 例如,它不能为您提供制作和还原备份的简便方法,添加新节点依赖于自定义pytho ...

  2. aws集群重启_在AWS中设置Cassandra集群

    aws集群重启 Apache Cassandra是一个NoSQL数据库,它使用一致的哈希机制可以轻松进行水平扩展. 七年前,我尝试了它,并决定不将其用于我的附带项目,因为它太新了. 现在情况有所不同, ...

  3. 在AWS中设置Cassandra集群

    Apache Cassandra是一个NoSQL数据库,它使用一致的哈希机制可以轻松进行水平扩展. 七年前,我尝试了它,并决定不将其用于我的附带项目,因为它太新了. 现在情况有所不同,Cassandr ...

  4. cassandra 备份_使用sstableloader恢复Cassandra Priam备份

    cassandra 备份 我之前曾写过关于设置Cassandra和Priam进行备份和集群管理的文章. 但是,我在此处提供的用于备份还原的示例并不适用于所有情况,例如,它可能不适用于完全独立的群集. ...

  5. 使用sstableloader恢复Cassandra Priam备份

    之前,我曾写过关于设置Cassandra和Priam进行备份和集群管理的文章. 但是,我在此处提供的用于备份还原的示例并不适用于所有情况,例如,它可能不适用于完全独立的群集. 或者在部分还原到一个表而 ...

  6. 介绍Cassandra中的压缩

    在<如何安装和配置Cassandra>中,我们可以在DataFileDirectories中配置数据的存放位置. 当Cassandra启动后,向其中插入的数据就会放在DataFileDir ...

  7. cassandra可视化_容器化Spring Data Cassandra应用程序

    cassandra可视化 我正在继续学习Docker的旅程. 在这一点上,我仍然保持简单. 这次,我将解决将Spring和Cassandra应用程序转换为使用容器而不是在主机上本地运行的问题. 更确切 ...

  8. 容器化Spring Data Cassandra应用程序

    我正在继续学习Docker的旅程. 在这一点上,我仍然保持简单. 这次,我将解决将Spring和Cassandra应用程序转换为使用容器而不是在主机上本地运行的问题. 更准确地说,使用Spring D ...

  9. Cassandra 简介

    Cassandra 简介 Apache Cassandra是一个高度可扩展的高性能分布式数据库,用于处理大量商用服务器上的大量数据,提供高可用性,无单点故障.这是一种NoSQL类型的数据库. 让我们先 ...

最新文章

  1. 如何才能正确的关闭Socket连接
  2. GCN-Based User Representation Learning for Unifying Robust Recommendation and Fraudster Detection
  3. 面试官是如何发掘有潜力的产品经理的?
  4. 如何预防销售人员带走客户?
  5. 实用的 Python —— os.system() 在 python 语句中执行 dos 命令
  6. BZOJ4241历史研究题解
  7. ENVI 5.6/IDL 8.8 新特性介绍
  8. 换硬盘也杀不掉的“BMW病毒”现身 危害远超CIH_360安全公告
  9. Java连接HBase数据库,操作HBase数据库
  10. Typora免费版官网下载
  11. 域名排名(前100万)
  12. 麦子学院Linux教程:环境搭建
  13. 手机wifi的mac地址是什么??
  14. informix数据库常用的命令
  15. 【UVa11584】划分成回文串
  16. 百度360腾讯竞购搜狗
  17. 2021年,微博打了一手好牌?
  18. Android与HEIF格式图片适配方法
  19. nasmc++ 读取FAT12文件系统
  20. JDK的安装配置 - Windows(结尾附视频)

热门文章

  1. JavaFX鼠标移动事件
  2. 阿里巴巴对Java编程【注释规约】的规约
  3. bootstrap样式代码案例
  4. JAVA---DOS命令学习
  5. centos7 切换中文输入法 无需安装
  6. git 拉取gitlab代码
  7. java 泛型参数的类型_Java获得泛型参数类型
  8. html5圆形旋转菜单js,jquery 圆形旋转图片滚动切换效果
  9. android 按键消息,在android中模拟键盘消息(shell命令的方法)
  10. 微型计算机使用键盘上的alt键称为,微型计算机使用的键盘上的Alt键称为_____。...