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; doneBACKUP_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
總結
以上是生活随笔為你收集整理的prima evb_用Priam设置Cassandra的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 紫背万年青的养殖方法和注意事项(万年青怎
- 下一篇: Java 9:Process API的增
